如何使用PHP在razorpay中验证付款签名?

时间:2019-11-19 11:28:55

标签: php razorpay

我无法验证付款签名。

  

这是razorpay提供的代码。

 $attributes  = array('razorpay_signature'  => $razorpay_signature,  'razorpay_payment_id'  => $razorpay_payment_id , 'razorpay_order_id' => $razorpay_order_id);
 $signatureVerified  = $api->utility->verifyPaymentSignature($attributes);
  

当我检查它时。

if($signatureVerified) {
    echo 'signature verified';
} else {
   echo "signature didn't verify";
}

我所能得到的,签名没有得到验证。

P.s:我有razorpay的付款签名,orderId和paymentID。

2 个答案:

答案 0 :(得分:1)

该函数不返回任何内容,仅在签名不匹配时抛出异常。这似乎使很多人感到困惑,因此有一个PR要添加一个返回值:Link。将包含在下一个版本中。

答案 1 :(得分:1)

实际上,您不需要分配变量来验证付款。
您需要将其放入try catch块中以执行验证
这样。

         try{
            $attributes = array(
                'razorpay_order_id' => $request->razorpay_order_id,
                'razorpay_payment_id' => $request->razorpay_payment_id,
                'razorpay_signature' => $request->razorpay_signature
            );
            $api->utility->verifyPaymentSignature($attributes);
        }
        catch(SignatureVerificationError $e){
            $response = 'failure' ;       
            $error = 'Razorpay Error : ' . $e->getMessage();
        }
   return response('success');

因此,如果失败,它将进入catch块,否则它将返回成功