剃刀支付:verify_payment

时间:2021-02-11 17:38:40

标签: razorpay

根据 Razor 支付文档,您使用卡/钱包支付成功后,您需要验证支付。 [https://razorpay.com/docs/payment-gateway/quick-integration/][1]
“这是一个强制性步骤,允许您确认返回到结帐表单的详细信息的真实性,以便成功付款。”
以下python代码已作为示例提供:

import razorpay

client = razorpay.Client(auth = ('<key_id>', '<key_secret>'))
params_dict = {
    'razorpay_order_id': '12122',
    'razorpay_payment_id': '332',
    'razorpay_signature': '23233'
}
client.utility.verify_payment_signature(params_dict)

但我没有看到客户端对象没有名称为:实用程序的成员。 我找不到任何好的工作样本。 请提供有关此步骤的一些帮助。 提前致谢!

1 个答案:

答案 0 :(得分:0)

这就是我如何实例化实用程序类的方法。 如果转到VSCode(F12)中razorpay.Client的定义,可以看到它导入了实用程序类。 from . import resources, utility

现在,如果您转到实用程序类的定义,您可以看到它是如何启动的。 enter image description here

基于此,我想出了以下代码。请注意 verify_payment_signature() 不返回任何值。但如果有任何问题,它会作为一个例外。 (例如:从输入中删除一个参数并再次执行)。

# Install from VSCode command line : >python -m pip install razorpay
import razorpay

# this is your account credentials got from the dash board
client = razorpay.Client(auth = ('rzp_test_xxx', 'yyy'))

# These values are got from Razor pay paymentUI response
params_dict = {
    'razorpay_order_id': 'order_xxx',
    'razorpay_payment_id': 'pay_yyy',
    'razorpay_signature': 'zzzzz'
}

try:
    util = razorpay.Utility(client)

    util.verify_payment_signature(params_dict)
    
except Exception as e:
    print("Unexpected error:", e)