一、集成步骤概括
商户通过直接与PayerMax服务端交互的方式进行下单请求,通过该服务,商户可在移动Web集成印度、印尼、菲律宾等国多种在线收款方式,如借记卡、信用卡、电子钱包等,轻松具备印度业务收款能力。
1.调用API请求下单
2.根据PayerMax返回的URL,打开H5收银台供用户支付
3.接收异步回调通知,根据支付结果处理订单
二、API下单接口参数说明
请求和响应数据格式:application/json
1.请求参数
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
merchantId | String | 是 | 30 | PayerMax分配给商户的唯一标识 | SP12345678 |
bizType | String | 是 | 30 | 对应所签约的收款服务权限,可问询商务,印度跨境传"IN_CB",其他地区传"CUSTOMIZE" | IN_CB |
version | String | 是 | 5 | 接口版本。当前值为:2.3 | 2.3 |
sign | String | 是 | 64 | 采用MD5字符串签名, | DD6F959727F2724B7FFTY164DFF036F1 |
orderId | String | 是 | 64 | 商户订单号,只能包含字母、数字、下划线。每次调用下单时不能重复 | 1535433516669 |
userId | String | 是 | 64 | 商户用户ID | ZNW3e |
subject | String | 是 | 256 | 订单标题,用于收银台界面显示,建议传入商品名称 | 3510Gigs |
countryCode | String | 否 | 10 | 国家代码,大写字母,如果所传的国家码与币种不匹配,则以币种对应的地区展示收银台, | IN |
currency | String | 是 | 3 | 货币代码,大写字母, | INR |
totalAmount | String | 是 | 12 | 商户传入的交易金额,取值范围:[1,100000000],小数点后最多支持2位。 注意:印尼、台湾地区不支持带小数金额。 | 150.00 |
frontCallBackUrl | String | 是 | 256 | 商户指定的跳转URL,用户完成支付后会被跳转到该地址,以http/https开头 | https: |
callbackUrl | String | 否 | 256 | 服务端回调通知URL,在商户平台配置后可不传,以http/https开头 | https: |
description | String | 否 | 256 | 订单附加说明 | recharge 3510 Gigs |
+ paymentDetail | String | 否 | 256 | 定义支付方式信息,如正确传入可跳过付款人信息搜集页。内容是Json格式字符, | {"paymentType":"00","accountNo":"test@yesbank"} |
└ paymentType | String | 否 | 20 | 支付方式编码,参见【各国收款方式列表 - paymentType Code】 ,定义'paymentType'后,可跳过支付方式选择页,直接进入指定支付方式的信息录入页;如果没有设置此参数,则直接进入收银台首页,展示所有支付方式 | 00 |
└ accountNo | String | 否 | 64 | 支付账号,针对部分钱包和UPI支付可以在下单参数中 传入账号信息缩短用户的支付流程,详情参见【账号字段说明】 | test@yesbank |
+ userDetail | String | 否 | 512 | 供商户提交付款人信息,如正确传入可跳过付款人信息搜集页。内容是Json格式字符。 各地区参数参见【UserDetail填写规则】 | {"name":"CustName","email":"com@iup","phoneNumber":"50000000","districtCode":"965"} |
└ name | String | 否 | 45 | 付款人姓名5-45位,凡支付渠道需用户填写姓名,将默认取该值供用户便利选择 | |
String | 否 | 32 | 付款人邮箱,凡支付渠道需用户填写邮箱,将默认取该值供用户便利选择 | xxx@gmail.com | |
└ phoneNumber | String | 否 | 15 | 付款人手机号,凡支付渠道需用户填写手机号,将默认取该值供用户便利选择 | 9101234123 |
└ districtCode | String | 否 | 付款人手机的国际区号 | ||
└ citizenIdNo | String | 否 | 10 | 为付款人身份证件号 | EBZPV8569H |
└ deviceId | String | 否 | 付款人设备标识 | ||
└ ip | String | 否 | 付款人设备IP地址 | 127.0.0.1 | |
reference | String | 否 | 512 | 可供商户自定义,且在回调中反馈的字段 | item157 |
language | String | 否 | 8 | 语言设置,小写字母,用来指定收银台的展示语言,如果不传,我们会结合用户的实际情况提供适合的语言来展示收银台,参见 | en |
showResult | String | 否 | 8 | 是否使用PayerMax支付结果页0:不使用1:使用 | 1 |
expireTime | String | 否 | 10 | 订单有效时长,单位为秒,该字段仅在bizType=CUSTOMIZE并且是印度地区时有效。最长可定义至72小时,默认30分钟(1800秒)。 此字段仅在countryCode为“IN”时生效 | 1800 |
请求报文:
json
{
"merchantId": "SP12345678",
"bizType": "IN_CB",
"version": "2.3",
"sign": "DD6F959727F2724B7FFFE164DFF7756F1",
"orderId": "1535433513349",
"userId": "ZNW3e",
"subject": "3510 Gigs",
"countryCode": "IN",
"currency": "INR",
"totalAmount": "150.00",
"frontCallBackUrl": "https://****.com/redirect/developer.html",
"callbackUrl": "https://****.com/payermax/rechargeNotify",
"description": "recharge 3510 Gigs",
"paymentDetail": "{\"paymentType\":\"00\",\"accountNo\":\"test@yesbank\"}",
"userDetail": "{\"name\":\"James\",\"phoneNumber\":\"95562642\"}",
"reference": "Item157",
"language": "en",
"showResult": "1",
"expireTime": "1800"
}
2.响应参数
参数 | 类型 | 是否必返 | 最大长度 | 描述 | 示例值 |
bizCode | String | 是 | 10 | 返回码 | 0000 |
data | Object | 是 | 返回数据体,由**公共参数和特定参数**组成,详见下方的【data参数】 | ||
message | String | 否 | 256 | 返回描述,接口报错原因提示 |
data参数
2.1.公共参数
参数 | 类型 | 是否必返 | 最大长度 | 描述 | 示例值 |
tradeNo | String | 是 | 64 | payermax平台订单号 | TRADE20190815020832881447141 |
orderId | String | 是 | 64 | 商户订单号 | 15354453516149 |
requestUrl | String | 是 | 1024 | 跳转结果地址 | https://****.com/redirect/developer.html |
status | Number | 是 | 2 | 订单状态:0-待支付,1-支付成功,2-支付失败 | 0 |
sign | String | 是 | 64 | 采用MD5字符串签名, | DB73C116DE2F220A68BB96542885E171 |
响应报文:
json
{
"data": {
"tradeNo": "TRADE20190815055232111447141",
"orderId": "1535433533149",
"requestUrl": "http://cashier-dev.payermax.com/index.html#/paySDKH5/cashierH5?merchantId=SP4189603&token=HrUbWDQkd6jcFp68AW2N7DOOHjb%2F9kh7RkljKNaLR7sgSfxVG5TvBbW89RNX%2ByQIU8P9auBWBCskuJJQxtO9HNZ%2BwhMG8lYR7l12k3%2FLaP%2BxhLEBDOjICucJS1bASn0V&tradeNo=TRADE20190815020832111447141&identifyId=8641043&language=en&usePayResultType=1&frontCallBackUrl=https%3A%2F%2Fxxx.com%2Fredirect%2Fdeveloper.html",
"status": 0,
"sign": "DB73C116DE2F220A68BB96567885E171"
},
"bizCode": "0000"
}
响应参数处理示例
js
//响应成功
if(bizCode == "0000"){
if(status == 0){
//跳转到requestUrl
} else if(status == 1){
//支付成功
} else {
//支付失败
}
}
2.2.特定参数
特定参数在指定场景下返回,目前仅限于下指定方式为 印度尼西亚运营商 时返回。 该运营商参数,适用于需要自行包装支付引导画面的商户使用。如商户无此需求,可忽略该参数。详情可参阅 【运营商参数】。
3.UserDetail填写规范
参数名 | 地区 | 描述 | 示例 |
citizenIdNo | 印度 | 为付款人的Pan卡号,10位数 | EBZPV8569H |
巴西 | 为付款人的CPF卡号,11位数字 | 007.408.869-67 | |
智利 | 为付款人的CI卡号, 8-9位数字 | ||
哥伦比亚 | 为付款人的CC卡号, 6-10位数字 | ||
墨西哥 | 为付款人的CURP卡号,10-18位字符,含数字或字母 | ||
秘鲁 | 为付款人的DNI卡号, 8-9位数字 | ||
巴拉圭 | 为付款人的CI卡号,5-20位数字 | ||
乌拉圭 | 为付款人的CI卡号,6-8位数字 |
4.产品编码
bizType | 服务权限名称 |
CUSTOMIZE | 自定义API收款 |
IN_CB | 印度跨境收款 |
三、账号字段说明
对API下单接口请求参数字段【accountNo】的说明
下述支付方式,如正确传入对应的accountNo,可跳过PayerMax收银台,直接进入对应的支付页面,缩短用户操作路径。
地区 | 支付类型 | 指定支付方式 | 备注 |
印度 | UPI | UPI collect | 'accountNo' 字段需传入用户 UPI 账号 |
钱包 | Paytm Wallet | 'accountNo' 字段需传入用户 Paytm 账号 | |
FreeCharge | 'accountNo' 字段需传入用户 FreeCharge 手机号 |
四、特定参数-运营商参数
1.当请求参数paymentType 取值为 Telkomsel 下单成功时将返回运营商参数如下:
参数 | 类型 | 是否必返 | 最大长度 | 描述 | 示例值 |
carrierBilling | Json | 否 | 运营商参数 | ||
└ keyWord | String | 否 | 32 | 关键字 | REDS10K |
└ smsCode | String | 否 | 16 | 短信代码 | 39351 |
└ shortCode | String | 否 | 16 | 收件人 | 99899 |
└ phoneNumber | String | 否 | 32 | 手机号码 | 081329041338 |
响应代码举例
json
{
"bizCode": "0000",
"message": "success",
"data": {
"orderId": "20200724072000000009910",
"requestUrl": "https://cashier-alpha.shareitpay.in/index.html#/sms/instruction?merchantId=M36977092608&orderId=20200724072000000002410&countryCode=ID&language=en&tradeNo=TM000600202007290000001170430000&token=3T147T%2Fl0bGBb1g6IB33x9LwkCqUCH3nOWogtrxORXNsN71KJBHvMIWyf%2BG1el%2FS0TzHf73x9PORt3YN%2FghALnoaFc%2FzwUVn2Ok7q79oaVrSnNNCgAnZjB35CKgQaK%2Fo&identifyId=9738338&usePayResultType=0&frontCallBackUrl=http%3A%2F%2Fwww.baidu.com&payOrderNo=CP000600202007290000000550750000¤cy=IDR&preTaxAmount=5000.00&afterTaxAmount=5500.00&phoneNumber=081329041338&smsKeyword=REDS5K&smsCode=46421&smsShortCode=99899&smsType=0",
"tradeNo": "TM000600202007290005501170430000",
"status": 0,
"sign": "AB73C116DE2F130A67BB965428995E564",
"carrierBilling": "{\"phoneNumber\":\"0813290413638\",\"smsCode\":\"46421\",\"shortCode\":\"99899\",\"keyWord\":\"REDS5K\"}"
}
}
2.当请求参数paymentType 取值为 Tri、XL、Smartfren、Indosat 下单成功时将返回运营商参数如下:
参数 | 类型 | 是否必返 | 最大长度 | 描述 | 示例值 |
carrierBilling | Json | 否 | 运营商参数 | ||
└ phoneNumber | String | 否 | 32 | 手机号码 | 081329041333 |
响应代码举例
json
{
"bizCode": "0000",
"message": "success",
"data": {
"orderId": "20200724072000000055414",
"requestUrl": "http://cashier-dev.shareitpay.in/index.html#/sms/instruction?merchantId=SP12345678&orderId=20200724072000000055414&countryCode=ID&language=en&tradeNo=TM014900202007296600004501170000&token=SdNY%7GzFsRKX91MTzQMCiB5Em0unfUXPy6oqmtgnTqtLRcItAzxoTccs%2BJD9CW57UhiIJAY2X8y3XVrTxJE%2FNhmBp1NtX4wZgsYlLnw%2BTG2Abrvb4xOLPu4tDSqhv7KC6&identifyId=9738338&usePayResultType=0&frontCallBackUrl=http%3A%2F%2Fwww.baidu.com&payOrderNo=CP014900202007290000005670090000¤cy=IDR&preTaxAmount=5000.00&afterTaxAmount=5688.00&phoneNumber=087803428358&smsKeyword=&smsCode=&smsShortCode=&smsType=1",
"tradeNo": "TM014900202007290000004661170000",
"status": 0,
"sign": "DB73C116DE2F220A67BB96542849E175",
"carrierBilling": "{\"phoneNumber\":\"087803447320\"}"
}
}