Как остановить выполнение веб-перехватчика при выполнении определенного условия? - PullRequest
0 голосов
/ 11 июля 2020

Я использую 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
}
...