【问题标题】:prefill not working in razorpay预填充在 razorpay 中不起作用
【发布时间】:2018-12-10 07:40:53
【问题描述】:
$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 集成,一切正常,但在预填充中,我得到了一个默认值。如何将此值更改为自定义值?

【问题讨论】:

    标签: php payment-gateway razorpay


    【解决方案1】:

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

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

    $orderid = $_GET['orderid'];

    运行 php mysql 查询以根据订单 ID 从数据库中获取数据(i 已使用 2 个表,其中一个用于付款详细信息,另一个用于 用户详细信息)

    $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>
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-04
        • 1970-01-01
        • 2011-04-06
        • 2018-01-19
        • 1970-01-01
        相关资源
        最近更新 更多