Unified Payments Interface (UPI) 通过启用 UPI 的智能手机应用程序进行实时数字支付,使用户能够在单个应用程序中一步发送和接收资金、即时支付账单和授权交易。
UPI 的产品特性如下表所示:
注意:以下不同终端的支付流程代表该支付方式在不同终端类型上的流程,仅供参考。关于支持的商户终端类型,请咨询 Antom 技术支持。
以下为使用 UPI 支付的流程:
- 买家选择 UPI 进行支付。
- 买家跳转到 PayU 的支付页面。
- 买家输入 UPI ID。
- 买家收到银行应用发送的通知后,打开银行应用并确认支付订单。
- 买家跳转回商户结果页面。
- 买家选择 UPI 进行支付。
- 买家跳转到 PayU 的支付页面。
- 买家输入 UPI ID。
- 买家收到银行应用发送的通知后,打开银行应用并确认支付订单。
- 买家跳转回商户结果页面。
- 买家选择 UPI 进行支付。
- 买家跳转到 PayU 的支付页面。
- 买家打开发卡机构的应用程序并扫描二维码。
- 买家在应用程序中确认支付信息。
- 买家跳转回商户结果页面。
- 买家选择 UPI 进行支付。
- 买家跳转到 PayU 的钱包列表页面。
- 买家选择一个钱包进行支付。
- 买家跳转到钱包应用程序并确认支付信息。
- 买家跳转回商户结果页面。
Antom 提供了一系列针对每种支付方式量身定制的集成选项。每种支付方式可能支持不同的线上支付集成选项,可根据您的业务需求进行灵活配置。下表提供了有关每种支付方式可用的特定集成的详细信息:
请注意以下集成建议,以确保支付流程顺畅,并为您的买家提供最佳体验:
强烈建议您在调用 pay(单笔支付)接口时传入以下买家信息相关参数,买家可以直接进入支付流程,无需额外操作;否则,UPI 会展示额外的中间页收集这些信息: - order.buyer.buyerName.firstName
- order.buyer.buyerName.lastName
- order.shipping.shippingAddress.zipCode(由于集成要求,传入此参数时必须同时传入 order.shipping.shippingAddress.region)
以下代码展示了一个请求示例:
{
"productCode": "CASHIER_PAYMENT",
"paymentRequestId": "antom_1234567",
"paymentAmount": {
"currency": "INR",
"value": 100000
},
"paymentMethod": {
"paymentMethodType": "UPI"
},
"paymentRedirectUrl": "https://www.google.com",
"paymentNotifyUrl": "https://test.net:8080/amsdemote/result",
"order": {
"referenceOrderId": "123456",
"orderAmount": {
"currency": "INR",
"value": 100000
},
"orderDescription": "Coins",
"buyer": {
"referenceBuyerId": "123456789",
"buyerName": {
"firstName": "****",
"lastName": "Govind Pal"
}
},
"shipping": {
"shippingAddress": {
"region": "**",
"zipCode": "600042"
}
}
},
"env": {
"terminalType": "WAP",
"osType": "ANDROID"
},
"settlementStrategy": {
"settlementCurrency": "USD"
}
}
如果您属于旅游行业商户,需要注意印度的自由化汇款计划(Liberalised Remittance Scheme, LRS)规定。该规定对个人跨境交易设有额度限制,支付方式会对此进行前置校验以避免交易失败。
强烈建议您在调用 pay(单笔支付)接口时传入以下买家信息相关参数,以在 UPI 中间页预填相关信息,无需买家手动输入;否则,UPI 中间页会要求重新收集这些信息并进行校验: - order.buyer.buyerName.firstName
- order.buyer.buyerName.lastName
- order.shipping.shippingAddress.zipCode(由于集成要求,传入此参数时必须同时传入 order.shipping.shippingAddress.region)
- paymentMethod.paymentMethodMetaData.dateOfBirth
以下代码展示了一个请求示例:
{
"productCode": "CASHIER_PAYMENT",
"paymentRequestId": "antom_1234567",
"paymentAmount": {
"currency": "INR",
"value": 100000
},
"paymentMethod": {
"paymentMethodType": "UPI",
"paymentMethodMetaData": {
"dateOfBirth": "xxx"
}
},
"paymentRedirectUrl": "https://www.google.com",
"paymentNotifyUrl": "https://test.net:8080/amsdemote/result",
"order": {
"referenceOrderId": "123456",
"orderAmount": {
"currency": "INR",
"value": 100000
},
"orderDescription": "Coins",
"buyer": {
"referenceBuyerId": "123456789",
"buyerName": {
"firstName": "****",
"lastName": "Govind Pal"
}
},
"shipping": {
"shippingAddress": {
"region": "**",
"zipCode": "600042"
}
}
},
"env": {
"terminalType": "WAP",
"osType": "ANDROID"
},
"settlementStrategy": {
"settlementCurrency": "USD"
}
}