Token支付
适用于:发起Token支付 - 信用卡
付款用户在YabandPay托管的支付页面完成一次标准信用卡交易并同意授权,YabandPay将持卡人敏感数据转换成一串随机数字(即Token)以去除身份信息。使用Token可以发起如下支付:
- 用户可以在结账页面一键完成付款,无需输入信用卡信息。
- 商户可以使用此Token来执行定期付款或订阅收费等。
[!TIP|style:flat] 使用流程
激活Token。联系您的客户经理开通Token支付功能。
用户授权。为消费者启用快捷支付(Token支付)时您有义务明确告知用户并获得授权,以避免可能的纠纷。
获取Token。要获得Token,首先需要发起一个标准的信用卡交易,YabandPay将会返回支付url,用户通过该url完成支付并同意授权后,YabandPay将会通过异步通知返回Token,参数是
payment_token_object
。发起Token支付。请包含Token在变量
payment_token_object
中。如果Token校验正确,YabandPay将执行Token支付;如果Token校验失败,YabandPay将返回错误信息,这时建议重新通过发起标准信用卡交易以获取Token并再次发起支付。
API URL:https://mapi.yabandpay.com/Payments
Method:POST
POST data type:Json
参数 | 类型 | 描述 | 是否必填 |
---|---|---|---|
user | String | 收银员账号的UID | 必填 |
sign | String | 签名 | 必填 |
method | String | v3.CreateCardPayments | 必填 |
time | Long | 时间戳 | 必填 |
- 参数
Parameter | Type | Description | 是否必填 |
---|---|---|---|
pay_method | String | online | 必填 |
sub_pay_method | String | Token | 必填 |
operation | String | 11.Token for sales 12.Token for authorisation; | 必填 |
order_id | String | 商户的订单ID | 必填 |
amount | String | 金额数字。例如 € 24.99 应该写成24.99 | 必填 |
currency | String | 货币代码,ISO 4217,例如EUR,CHF | 必填 |
payment_token_object | String | 支付Token | 必填 |
description | String | 订单描述 | 必填 |
demo | String | 自定义字段 | 选填 |
timeout | String | 过期时间0-1440 分钟,如不设置默认1440分钟 | 必填 |
notify_url | String | 支付完成后异步通知地址 | 必填 |
request_id | String | 请求id需保持唯一,建议24以上位数字+字母 | 必填 |
签名示例:
拼接为URL方式并排序后的字符串
"3ds_initiate=01&amount=1¤cy=EUR&description=test&method=v3.CreateCardPayments¬ify_url=https://www.yabandpay.com/notify&operation=11&order_id=1725875388&pay_method=online&payment_token_object=&request_id=dxktqiedfpkswnripi631ppg6fl2uoym&sub_pay_method=Cards HPP Token&time=1725875388&timeout=0&user=016683"
得到的 stringA 使用 secret_key做签名
得到的签名如下:
"e0b025e3cb5e3dbd6bb662a82f95ca55ad2045947670098208396cb6d3e4e8d8"
提交示例:
{
"user": "016683",
"sign": "e0b025e3cb5e3dbd6bb662a82f95ca55ad2045947670098208396cb6d3e4e8d8",
"method": "v3.CreateCardPayments",
"time": 1725875543,
"data": {
"description": "test",
"timeout": "0",
"pay_method": "online",
"sub_pay_method": "Token",
"operation": "11",
"order_id": 1725875543,
"amount": "1",
"currency": "EUR",
"payment_token_object": "VnXaRabcsedfsSlPFZXavcsdfasdEFDd",
"notify_url": "https://www.yabandpay.com/notify",
"request_id": "hjf5lv32i40lh7oh86j6az98tnscwv37"
}
}
返回示例:
{
"status": true,
"code": "200",
"data": {
"order_id": "1725875543",
"trade_id": "109bb0e9-e1fb-49cb-c537-ec944f33c388",
"amount": "1.00",
"currency": "EUR",
"state": "paid"
},
"message": "",
"response_id": "202409091752241912726578"
}
更多信息:
返回结果:
若调用成功,则返回
"status": true
若调用失败,则返回
"status": fales
。这时如得到Invalid Token,建议重新调用HPP Token获取新的Token。
接口调用后将会同步返回支付状态。我们强烈建议同时使用订单查询和异步通知来同步和更新支付状态,以确保支付信息的实时准确性。 a) 如果订单状态state
为paid
,即支付成功; b) 如果订单状态state
为authorized
,即预授权成功。 预授权成功后如需要请款调用预授权请款接口。
返回代码:
Status | Code | Message |
---|---|---|
true | 200 | |
fales | -1000 | Internal error |
fales | -403 | The signature Error |
fales | -2001 | The user not exist |
fales | -3001 | Required field is missing |
fales | -4118 | Incorrect request ID |
fales | -4119 | Invalid Token |
fales | -4120 | No operational permissions |