在 Django RazorPay 支付网关中获取客户信息

Getting customer information in Django RazorPay payment gateway

我刚刚在我的 django 项目中集成了 Razorpay 支付网关,我是这个支付网关的新手。当我启动付款时,razorpay 会向我展示一个 付款界面(像这张图片) 并且有写 [= 的选项21=]客户联系人和电子邮件。这是我的问题,当 customer 单击继续按钮时,我如何才能取回这两个字段 contact 和 email

这是我的代码: 模板文件

            <h2>Product Checkout</h2>
            <p>Product: {{ order_obj.product.name }}</p>
            <p>Total: {{ order_obj.total }}</p>

 <form method="POST"> {% csrf_token %}
    <script src="https://checkout.razorpay.com/v1/checkout.js"
    data-key="rxxxxxxxxxxxxitP7h"
    data-amount= {{order_amount }}
    data-currency={{order_currency}}
    data-buttontext="Pay with Razorpay"
    data-name="xxxxxInc"
    data-description="We are listning"
    data-image="https://www.bihhs.in/wp-content/uploads/2020/05/jj-logo.png"
    data-prefill.name="company name"
    data-prefill.email="abc@gmail.com"
    data-theme.color="#F37254">
</script><input type="hidden" custom="Hidden Element" name="hidden">
</form>

Views.py 文件

client = razorpay.Client(auth=("rzxxxxxxxaitP7h", "dZH5xxxxxxxxFmzG"))
payment = client.order.create(dict(amount=order_amount, currency=order_currency))
if payment:
   order_obj.mark_paid()  
   print(payment)
   print(payment.get('email'))

您应该在响应 json 中得到一个 id。根据此处的文档 RazorpayAPI Reference,然后您可以使用该 ID 获取订单的详细信息。然后您使用该订单 ID 创建付款,付款完成后您将获得一个付款 ID。有一些方法可以使用 Payment ID 获取付款,如果用户已填写,则应该包含这些详细信息。

为了您的参考,这些是 python Razorpay 的方法指南: Payment Reference Python Razorpay

这是更改的伪代码:

client = razorpay.Client(auth=("rzxxxxxxxaitP7h", "dZH5xxxxxxxxFmzG"))
order_details = client.order.create(dict(amount=order_amount, currency=order_currency))
if payment:
   order_obj.mark_paid()
   payment_id= client.order.payments(str(order_details["id"]))
   payment_details= client.payment.fetch(str(payment_id)
   payment_email= payment_details["email"]
   print (payment)
   print(payment_details)