印度支付平台接口文档解析
作为印度支付系统专家,我将为您解析常见的印度支付平台接口文档要点:
主要印度支付网关
-
UPI (统一支付接口)
- 即时银行间转账标准
- 支持VPA(虚拟支付地址)如username@bankname
-
Paytm
- 印度最大移动钱包和支付网关
- 支持UPI、钱包、网银、信用卡等多种方式
-
Razorpay
- 开发者友好的全渠道聚合支付解决方案
- REST API设计良好,文档完善
-
PhonePe
- Flipkart旗下的流行UPI应用
- UPI交易市场份额领先
-
其他: BharatPe, MobiKwik, Amazon Pay等
通用API结构要素
认证方式
- API密钥认证(通常放在请求头)
- OAuth2.0(部分高级接口)
- IP白名单(可选额外安全层)
HTTP方法使用惯例
- GET: 查询操作(如订单状态)
- POST: 创建资源(如发起付款)
- PUT/PATCH:更新操作
API端点示例结构
https://api.paymentgateway.com/v{版本号}/{资源路径}
UPI相关特殊参数
{
"vpa": "user@upi",
"amount": "1000",
"currency": "INR",
"transaction_note": "",
"merchant_id": "",
"callback_url": ""
}
Webhook处理要点
- 验证签名: HMAC SHA256验证请求真实性
- 幂等性处理: payment_id+status应唯一
- 状态码规范:
200 OK //成功接收webhook
400 Bad Request //格式错误
4xx/5xx //触发重试机制 “`
PCI DSS合规要求
1️⃣ PAN数据不得日志记录
2️⃣ CVV不存储即使加密后也不行
3️⃣ TLS1.+强制要求
如需特定平台的详细解析或具体实现建议,请告知您关注的某个具体系统。
印度支付接口深入解析
1. UPI 2.0 增强功能实现细节
a. 授权收款(Mandate)流程:
// 创建预授权请求示例
{
"type": "CREATE_MANDATE",
"payerVpa": "customer@upi",
"payeeVpa": "merchant@upi",
"amount": {
"value": "50000", // paise单位(1INR=100paise)
"currency": "INR"
},
validity: {
start: "2024-01-01T00:00:00+05:30", // IST时区
end: 2024-12-31T23:59:59+05:30"
},
"recurrence":"MONTHLY",// WEEKLY/DAILY等
"ruleType":"FIXED" // VARIABLE允许金额变更
}
b.发票支付流程特殊参数:
▸ invoice_expiry
: GST合规要求的有效期(分钟)
▸ gst_breakup
: GST税率明细数组
▸ billing_tl_number
: 税务登记号
2.Razorpay高级集成模式
分账支付(Split Payments):
# Python SDK使用示例
payment = razorpay.Payment.create({
amount':200000, # paise单位
currency':'INR',
'transfers':[
{ #主商户收款80%
account':'acc_ABC123',
amount':160000,
currency':'INR'
},{ #分销商收款20%
account':'acc_DEF456',
amount':40000,
metadata:{'profit_type':'commission'}
}
]
})
智能重试策略配置:
# razorpay-retry.yaml配置示例
retry_rules:
upi_timeout:
max_attempts:3,
backoff_factor:2,#指数退避基数(秒)
conditions:
- error_code:'gateway_timeout'
payment_methods:[‘upi’]
fallback_action:‘trigger_card_payment’
3.Paytm特殊业务场景处理
a.COD转在线支付流:
需要额外传递:
{
cod_to_online:true,
original_order_id:"ORDER_COD_123",//原货到付款订单ID
reason_code:"CUSTOMER_REQUEST" // enum值需符合Paytm规范
}
b.离线UPI QR码生成:
动态内容包含:
upi://pay?pn=MerchantName&pa=vpa@bank&am={amount}&tn={orderId}&cu=INR&sign={SHA256(payload+secret)}
⚠️签名算法必须使用NPCI规定的最新标准
4.BharatQR互操作性要点
多网关兼容方案需注意:
字段 | HDFC Bank | ICICI | Axis |
---|---|---|---|
二维码版本 | v4 | v5+ | v4 |
商户ID格式 | MID + TerminalID组合|纯数字MID|字母数字混合 |
建议采用qrcode.composite=true
参数触发自动适配模式。
发表回复