Я использую Razorpay API для приема платежей и отслеживания платежей, мне приходится использовать веб-перехватчики, так как подход против веб-перехватчиков, похоже, не работает эффективно и действенно. .
* У меня вопрос, как остановить выполнение веб-перехватчиков, когда заказ оплачен ... Я хочу, чтобы на моей странице веб-перехватчика было условие если статус заказа == 'оплачен 'больше не выполняются веб-перехватчики .. Прекратить получать веб-перехватчики при оплате заказа ...
Я добавляю комиссию в кошелек пользователя, поэтому, когда статус заказа оплачен, добавьте комиссию в свою учетную запись и остановитесь на этом ... Я не хочу предоставлять комиссию несколько раз одному и тому же пользователю ...
Вот что я сделал до сих пор ..
require __DIR__ . '/vendor/autoload.php';
use Razorpay\Api\Api;
include 'credentials.php';
$api = new Api(api_key, api_secret);
$json = file_get_contents('php://input');
$webhookBody = json_decode($json, true);
$webhookSecret='1234556777';
try {
$webhookSignature = hash_hmac('sha256', $json, $webhookSecret);
$api->utility->verifyWebhookSignature($json, $webhookSignature, $webhookSecret);
file_put_contents('data.txt', $json);
if($webhookBody['event'] == 'order.paid') {
//Grant Commission - Don't want to execute it multiple times..
}
header("HTTP/1.1 200 OK"); //Sending Status to Razorpay
}
catch (SignatureVerificationError $e) {
//Invalid Signature
}
Ответ веб-перехватчика
{
"entity":"event",
"account_id":"acc_BFQ7uQEaa7j2z7",
"event":"order.paid",
"contains":[
"payment",
"order"
],
"payload":{
"payment":{
"entity":{
"id":"pay_DESlfW9H8K9uqM",
"entity":"payment",
"amount":100,
"currency":"INR",
"status":"captured",
"order_id":"order_DESlLckIVRkHWj",
"invoice_id":null,
"international":false,
"method":"netbanking",
"amount_refunded":0,
"refund_status":null,
"captured":true,
"description":null,
"card_id":null,
"bank":"HDFC",
"wallet":null,
"vpa":null,
"email":"gaurav.kumar@example.com",
"contact":"+919876543210",
"notes":[],
"fee":2,
"tax":0,
"error_code":null,
"error_description":null,
"created_at":1567674599
}
},
"order":{
"entity":{
"id":"order_DESlLckIVRkHWj",
"entity":"order",
"amount":100,
"amount_paid":100,
"amount_due":0,
"currency":"INR",
"receipt":"rcptid #1",
"offer_id":null,
"status":"paid",
"attempts":1,
"notes":[],
"created_at":1567674581
}
}
},
"created_at":1567674606
}