当前位置: 首页 > 知识库问答 >
问题:

prefill不在razorpay工作

金钧
2023-03-14
$data = [
        "key"               => $api_key,
        "amount"            => $amount,
        "name"              => "DJ Tiesto",
        "description"       => "Tron Legacy",
        "image"             => "logo.png",
        "prefill"           => [
                                    "name"     => "Daft Punk",
                                    "email"    => "customer@merchant.com",
                                    "contact"  => "9999999999",
                               ],
        "notes"             => [
                                    "address"           => "Hello World",
                                    "merchant_order_id" => "12312321",
                               ],
        "theme"             => [
                                    "color"    => "#F37254"
                               ],
        "order_id"          => $razorpayOrderId,
    ];

我正在尝试将razorpay与php集成,一切正常,但在prefill中,我得到了一个默认值。如何将此值更改为自定义值?

共有2个答案

萧嘉禧
2023-03-14

通过从数据库中获取这些值,或者像我在php中所做的那样,通过ulr参数传递这些值,可以轻松地更改默认值。

通过url参数或post请求获取订单id

$orderid=$_GET['orderid'];

运行php mysql查询,根据订单id从数据库中获取数据(我使用了两个表,一个用于支付详细信息,另一个用于用户详细信息)

$query = "SELECT ud.Name, ud.lname,
ud.MobileId,ud.EmailID,opd.pay_amount, opd.receipt, opd.transaction_id
FROM online_payment_details as opd
INNER JOIN userdetails as ud 
ON opd.user_id=ud.UserID
WHERE order_id='$orderid';";
$result = mysqli_query($con, $query);
$row = mysqli_fetch_assoc($result);
$name = $row['Name'].' '.$row['lname'];


$razorpayOrderId    = $orderid;
$amount_pay         = $row['pay_amount'];
$receipt            = $row['receipt'];
$transaction_id     = $row['transaction_id'];
$displayAmount      = $amount_pay ;
$corporateName      = '';
$email              = $row['EmailID'];
$contact            = $row['MobileId'];

现在在数据数组中,在数据数组中添加上述变量

$data = [
        "key"               => $keyId,
        "amount"            => $amount_pay,
        "name"              => $name,
        "description"       => "",
        "image"             => "",
        "prefill"           => [
        "name"              => $corporateName,
        "email"             => $email,
        "contact"           => $contact,
        ],
        "notes"             => [
        "address"           => "Hello World",
        "merchant_order_id" => $transaction_id,
        ],
        "theme"             => [
        "color"             => "#F37254"
        ],
        "order_id"          => $razorpayOrderId,
        "receipt"           => $receipt,
    ];

现在,在块中的签出/自动页面中,从数据数组中获取值并存储在数据属性中,如下所示

<script
    src="https://checkout.razorpay.com/v1/checkout.js"
    data-key="<?php echo $data['key']?>"
    data-amount="<?php echo $data['amount']?>"
    data-currency="INR"
    data-name="<?php echo $data['name']?>"
    data-image="<?php echo $data['image']?>"
    data-description="<?php echo $data['description']?>"
    data-prefill.name="<?php echo $data['prefill']['name']?>"
    data-prefill.email="<?php echo $data['prefill']['email']?>"
    data-prefill.contact="<?php echo $data['prefill']['contact']?>"
    data-notes.shopping_order_id="<?php echo $data['receipt']?>" 
    data-order_id="<?php echo $data['order_id']?>"

    <?php if ($displayCurrency !== 'INR') { ?> data-display_amount="<?php echo $data['display_amount']?>" <?php } ?>
    <?php if ($displayCurrency !== 'INR') { ?> data-display_currency="<?php echo $data['display_currency']?>" <?php } ?>
  >
  </script>
郗鹏
2023-03-14

在pre填充中,您将获得pre填充对象中给出的值。就像您传入$金额和$razorpay OrderId一样,您可以使用$name和$email等,这可能是您从文本框或类似内容中获得的值。将这些名称和电子邮件存储在一个变量中,并将其传递到pre填充中。

 类似资料:
  • 我已经将剃刀支付集成到我的收银台。 我需要从我下的订单中获取金额,如何动态获取。 下面是razorpay配置。

  • 我在flutter应用程序中实现了一个支付网关。所以Razorpay建议我使用Orders API。但我没有任何方法来实现Orders API。 我参考了以下文件。它包含java、PHP等的示例,但没有找到颤振/飞镖的示例。 https://razorpay.com/docs/payment-gateway/orders/integration/#example 提前谢谢。

  • 我想在付款失败时从Razorpay获得付款/交易id 我在付款成功期间获得付款ID,但在付款失败期间,付款ID似乎为空。付款失败时如何获取付款/交易ID?

  • 我计划将Razorpay支付网关集成到我的客户网站中,该网站已在WordPress中开发,其中的场景如下。 用户将填写他的需求查询表。 然后根据客户的要求,业主将回复成本和一些代码给客户(通过移动/电子邮件通信)。 客户将在网站的支付页面提交表单(姓名,金额,代码为备注和电子邮件ID),该表单将重定向到支付网关页面。 在WordPress网站上,该插件(Razorpay Quick Payment

  • 我使用javascript将Razorpay集成到web应用程序中,我想显示从仪表板添加的报价列表。 请参考以下链接以整合报价https://razorpay.com/docs/offers/integration/ 下面是java脚本代码 结帐时,根据razorpay doc,我没有发现任何报价下拉列表,如果我错了,请纠正我 谢谢

  • 我想通过Webview将Razorpay支付网关集成到Android中。 下面是这里提供的步骤! 我还有一个回调URL,它将被传递来处理传入的POST请求。 在通过Razorpay URL作为base_URL发送付款结帐后,我无法从webview重新控制应用程序。 有人能帮我解决整个过程中缺失的部分吗?