prefill не работает в razorpay

$data = [
"key"               => $api_key,
"amount"            => $amount,
"name"              => "DJ Tiesto",
"description"       => "Tron Legacy",
"image"             => "logo.png",
"prefill"           => [
"name"     => "Daft Punk",
"email"    => "[email protected]",
"contact"  => "9999999999",
],
"notes"             => [
"address"           => "Hello World",
"merchant_order_id" => "12312321",
],
"theme"             => [
"color"    => "#F37254"],
"order_id"          => $razorpayOrderId,
];

Я пытаюсь интегрировать razorpay с php, все в порядке, но в prefill я получаю значение по умолчанию. как я могу изменить это значение на пользовательское значение?

4

Решение

В prefill вы получите значение, которое вы даете в объекте prefill. Точно так же, как вы пропустили $ amount и $ razorpayOrderId, вы можете использовать $ name и $ email и т. Д., Которые могут быть значением, которое вы получаете из текстового поля или что-то в этом роде. Сохраните эти имена и адрес электронной почты в переменной и передайте их в prefill.

1

Другие решения

Вы можете легко изменить значение по умолчанию, извлекая эти значения из базы данных или передавая эти значения через параметры ulr, как я делал в php.

получить идентификатор заказа через параметр URL или после запроса

$ orderid = $ _GET [‘orderid’];

запустить запрос php mysql для извлечения данных из базы данных на основе идентификатора заказа (я
использовали 2 таблицы один для деталей платежа и еще один для
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'];

Теперь в вашем массиве данных добавьте вышеуказанные переменные в массив данных

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

По вопросам рекламы [email protected]