在Razorpay web API文档中,给出了在成功付款时,有三样东西会返回到结帐表单,即razorpay_order_id, razorpay_payment_id和razorpay_signature。为了验证,我们需要从order_id(这是我们从订单创建中获得的) , razorpay_payment_id和从仪表板获得的key_secret中生成一个签名。如果生成的签名和razorpay_signature匹配,则验证支付。我的问题是,我们在这里验证什么(如果跳过这一步会发生什么?,即这一步的目的),我还认为如果付款成功,那么我们得到的razorpay_order_id将与order_id相同。为什么我们不比较一下order_id和razorpay_order_id
发布于 2021-04-18 02:05:00
这是一个强制步骤,允许您确认返回到结帐表单的详细信息的真实性,以确保成功付款。
这个想法并不是简单地比较orderIds,orderId是UI的一部分,并且对于视图源代码是可见的。
比方说,我们只期待orderId和paymentId。
黑客随机生成支付id,并通过orderId(源码可见)和paymentId触发支付成功回调。我们如何在这里识别paymentId是有效的呢?
如果您在服务器上生成的签名与“结帐”表单返回给您的razorpay_signature相匹配,则收到的付款来源是可信的。
当我们验证签名时,我们能够索引这是来自Razorpay服务器的有效回调
https://stackoverflow.com/questions/67126090
复制相似问题