预填充在 razorpay 中不起作用
prefill not working in razorpay
$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 集成,一切正常,但在预填充中,我得到了一个默认值。如何将此值更改为自定义值?
您可以通过从数据库中获取这些值或通过 ulr 参数传递这些值来轻松更改默认值,就像我在 php 中所做的那样。
通过url参数或post请求获取订单id
$orderid = $_GET['orderid'];
run php mysql query to fetch data from database based on order id(i
have used 2 table one for payment details and another one for
userdetails)
$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'];
now in your data array add above variables in data array
$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,
];
and now in checkout/automatic page in block fetch values from
data array and store in data attribute as below
<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>
在预填充中,您将获得预填充对象中给定的值。就像您传递 $amount 和 $razorpayOrderId 一样,您可以使用 $name 和 $email 等,这可能是您从文本框或类似内容中获得的值。将这些名称和电子邮件存储在变量中并将其传递给预填充。
$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 集成,一切正常,但在预填充中,我得到了一个默认值。如何将此值更改为自定义值?
您可以通过从数据库中获取这些值或通过 ulr 参数传递这些值来轻松更改默认值,就像我在 php 中所做的那样。
通过url参数或post请求获取订单id
$orderid = $_GET['orderid'];
run php mysql query to fetch data from database based on order id(i have used 2 table one for payment details and another one for userdetails)
$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'];
now in your data array add above variables in data array
$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,
];
and now in checkout/automatic page in block fetch values from data array and store in data attribute as below
<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>
在预填充中,您将获得预填充对象中给定的值。就像您传递 $amount 和 $razorpayOrderId 一样,您可以使用 $name 和 $email 等,这可能是您从文本框或类似内容中获得的值。将这些名称和电子邮件存储在变量中并将其传递给预填充。