当前位置: 首页 > 知识库问答 >
问题:

如何使用PHP验证razorpay中的支付签名?

岳嘉悦
2023-03-14

我无法验证付款签名。

这就是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";
}

我得到的只是,签名没有验证。

附言:我有付款签名,订单

共有2个答案

耿星雨
2023-03-14

实际上,您不需要为验证付款分配变量
您需要将其放入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 block,否则它将返回成功

姚高爽
2023-03-14

函数不返回任何内容,只是在签名不匹配时抛出异常。这似乎让很多人感到困惑,所以有一个PR来增加回报值:链接。将包含在下一版本中。

 类似资料:
  • 我已经添加了razorpay测试版本和支付流程工程,但当我试图验证时,我得到以下错误 通知:未定义的索引:razorpay_order_id在C:\用户\阿明\文档\NetBeansProjects\OLX\付款\verify.php行24您的付款失败 Razorpay错误:传递的签名无效 我在这里遵循了代码结构形式https://github.com/razorpay/razorpay-php-

  • 我在Android应用程序中使用Razorpay进行支付。 目前,支付工作正常。 现在我需要使用Razorpay实现经常性支付(自动续订/订阅)。 我找不到任何干净的文件。请随时为我更新有价值的信息。

  • 因为node-forge(一个非常方便的加密工具)还不支持“ECDSA with SHA256”(链接),我找不到其他替代品。我转向OpenSSL。经过一些调查,签名似乎是以“CMS签名数据”格式打包的。所以我发现openssl手册中的这个命令应该可以完成以下任务: openssl cms-verify-informed DER-in signature.DER-content content.t

  • 我计划将Razorpay支付网关集成到我的客户网站中,该网站已在WordPress中开发,其中的场景如下。 用户将填写他的需求查询表。 然后根据客户的要求,业主将回复成本和一些代码给客户(通过移动/电子邮件通信)。 客户将在网站的支付页面提交表单(姓名,金额,代码为备注和电子邮件ID),该表单将重定向到支付网关页面。 在WordPress网站上,该插件(Razorpay Quick Payment

  • 链接是:https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/#look-up-a-payment-using-the-rest-api 谢谢你的建议

  • 我们使用Paypal Express作为结账,使用Omnipay php库。现在买家输入密码并同意在paypal站点上付款后,他会被返回到首页的成功页面。 我现在想知道,我如何才能验证支付真的是成功的?手动调用成功页面并不是很难实现虚假的成功支付... 我得到一个付款ID和一个标记在后面-重定向。 多谢帮忙。