我无法验证付款签名。
这是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。
答案 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块,否则它将返回成功