首页 >后端开发 >Python教程 >如何使用razorpay api并集成支付网关

如何使用razorpay api并集成支付网关

PHPz
PHPz原创
2024-07-24 15:23:13874浏览

介绍

Razorpay 是印度领先的支付处理商,为企业和个人提供端到端解决方案。 Razorpay 提供一整套支付解决方案,从支付网关服务到处理交易和结算资金。
我们将在本文中讨论其中一些。我们将在这里使用 python 代码,但它可以轻松地用其他语言复制,因为我们在这里不使用任何 SDK。
如果您需要 SDK 示例,请在评论中告诉我。

此处为 razorpay api 的示例代码
API 文档可以在这里找到
测试卡详细信息 - 这里

第 1 步:注册 Razorpay 商家帐户

要开始使用 Razopay API,您需要在 Razorpay 网站上注册商家帐户。这将为您提供必要的凭据以及对 API 文档的访问权限。
帐户注册链接 - https://dashboard.razorpay.com/
在这里注册并进入测试模式,因为我们的目标是测试 api 和支付流程。

第 2 步:获取 API 凭证

设置商家帐户后,您将需要获取 API 凭据。这些凭据将用于验证您对 Razorpay API 的请求。

您可以像这样获取凭证 -

  1. 转到 razorpay 仪表板并选择转到类似于下图所示的测试模式。
    Razorpay test mode example

  2. 前往帐户设置 ->网站和应用程序设置 -> API 密钥 ->生成 api 凭证。
    您也可以直接使用。

第 3 步:设置您的开发环境

在继续之前,我们需要开发环境。我们需要 2 个环境。
一个用于后端,另一个用于前端。

在这里,我们将使用 python 作为后端语言。
对于前端,我们将使用简单的 HTML(不是任何专门的语言,如 React 或 Angular)。

第 4 步:了解 Razorpay API 端点

Razorpay API 提供了多个端点,您可以使用它们来发起付款、检查付款状态以及管理集成的其他方面。了解不同的端点及其各自的参数对于确保集成过程顺利进行非常重要。

  1. 我们将重点关注这里并创建订单并获取 order_id。
  2. 我们将在前端的 payment_gateway 中使用该 order_id。
  3. Razorpay 在 postman 上有很好的 api 文档。

第 5 步:实施支付流程

要使用 Razorpay API 发起付款,您需要向 /v1/orders 端点发出 POST 请求。该接口需要支付金额、币种、收据、备注等各种参数。

您可以在此处查看 api 的各种示例。

  • 在此示例中,我们仅查找 order_api 并生成 order_id。
  • Token可以通过base64(api_key:api_secret)生成。
def create_order_id(amount:int):
    url = "https://api.razorpay.com/v1/orders"
    token = ""  # token can be created by  base64(api_key:api_secret)
    headers = {
        'Content-Type': 'application/json',
        'Authorization': 'Basic ' + token
    }

    data = {
        "amount": amount * 100,
        "currency": "INR",
        "receipt": "Receipt for amount "+str(amount),
        "notes": {
            "notes_key_1": "payment",
        }
    }

    response = requests.post(url, headers=headers, json=data)
    if response.status_code == 200:
        return response.json()
    else:
        return "Failed to create order_id"

第 6 步:在前端集成支付网关

我们主要有 2 个选项来在前端集成支付网关。

在前端集成支付网关之前,您需要准备一些东西。

  • RAZORPAY_ORDER_ID - 从 api 密钥生成的 order_id
  • YOUR_KEY_ID - 之前生成的您的 API key_id
  • CALLBACK_URL - 支付成功回调URL
  • CANCEL_URL - 付款失败时的回调网址
  • YOUR_ORG_NAME - 将在支付网关上显示的组织名称
  • ORG_DESC - 将在支付网关上显示的组织描述
  • ORG_LOGO - 组织徽标图像 URL
  • CUSTOMER_NAME
  • CUSTOMER_MOBILE
  • CUSTOMER_EMAIL

要生成 CALLBACK_URL 和 CANCEL_URL,您可以使用这个简单的网站来测试回调。
https://webhook.site/

1. Razorpay 托管集成

您可以按照这个简单的代码集成支付网关,以便可以从前端发送POST请求。

您也可以按照这个例子。

<form method="POST" action="https://api.razorpay.com/v1/checkout/embedded">
  <input type="hidden" name="key_id" value="YOUR_KEY_ID"/>
  <input type="hidden" name="amount" value=1001/>
  <input type="hidden" name="order_id" value="RAZORPAY_ORDER_ID"/>
  <input type="hidden" name="name" value="YOUR_ORG_NAME"/>
  <input type="hidden" name="description" value="ORG_DESC"/>
  <input type="hidden" name="ORG_LOGO"/>
  <input type="hidden" name="prefill[name]" value="CUSTOMER_NAME"/>
  <input type="hidden" name="prefill[contact]" value="CUSTOMER_MOBILE"/>
  <input type="hidden" name="prefill[email]" value="CUSTOMER_EMAIL"/>
  <input type="hidden" name="callback_url" value="CALLBACK_URL"/>
  <input type="hidden" name="cancel_url" value="CANCEL_URL"/>
  <button>Submit</button>
</form>

2. 自定义 Web 集成

您还可以使用 Razorpay js 库并在您的网站上进行支付集成,而不是转移到其他 razorpay 托管网站。

<button id="rzp-button1">Pay</button>
<script src="https://checkout.razorpay.com/v1/checkout.js"></script>
<script>
var options = {
    "key": "YOUR_KEY_ID", // Enter the Key ID generated from the Dashboard
    "amount": "50000", // Amount is in currency subunits. Default currency is INR. Hence, 50000 refers to 50000 paise
    "currency": "INR",
    "name": "ORG_NAME", //your business name
    "description": "ORG_DESC",
    "image": "ORG_LOGO",
    "order_id": "RAZORPAY_ORDER_ID", //This is a sample Order ID. Pass the `id` obtained in the response of Step 1
    "callback_url": "CALLBACK_URL",
    "prefill": { //We recommend using the prefill parameter to auto-fill customer's contact information especially their phone number
        "name": "CUSTOMER_NAME", //your customer's name
        "email": "CUSTOMER_EMAIL",
        "contact": "CUSTOMER_MOBILE" //Provide the customer's phone number for better conversion rates 
    },
    "notes": {
        "note 1": "Some notes "
    },
    "theme": {
        "color": "#3399cc"
    }
};
var rzp1 = new Razorpay(options);
document.getElementById('rzp-button1').onclick = function(e){
    rzp1.open();
    e.preventDefault();
}
</script>

3. 其他集成 -

还有不同平台上的其他集成可以使用,例如 Android、ios、flutter 等。您可以在此处查看文档。

第 7 步:处理付款回调

发起支付后,Razorpya 会向指定的回调 URL 或取消 URL 发送回调。正确处理此回调对于确保无缝的支付体验非常重要。回调通常包含有关付款状态、交易 ID 和其他相关详细信息的信息。

以上是如何使用razorpay api并集成支付网关的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn