获取Token
适用于:通过YabandPay托管支付页面获取Token
YabandPay的托管支付页面 (HPP) 是一个现成的支付页面,由 YabandPay 全面维护。它使商家能够通过在 YabandPay 系统上托管敏感的 PCI 数据来安全地接受付款。该表单可以作为 iframe 或重定向页面嵌入到商家的结帐流程中。
付款用户在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 | Cards HPP | 必填 |
operation | String | 10.Create Token only; 11.Token for sales; 12.Token for authorisation | 必填 |
order_id | String | 商户的订单ID | 必填 |
3ds_initiate | String | 3ds设置。 01. 开启3ds验证; 02. 不开启3ds验证 | 必填 |
amount | String | 金额数字。例如 € 24.99 应该写成24.99。如果operation为10,请设置amount=0 | 必填 |
currency | String | 货币代码,ISO 4217,例如EUR,CHF | 必填 |
description | String | 订单描述 | 必填 |
form_type | String | 返回的url类型,默认01。 01.completed, 02.iframe | 选填 |
demo | String | 自定义字段 | 选填 |
timeout | String | 过期时间0-1440 分钟,如不设置默认1440分钟 | 必填 |
redirect_url | String | 支付完成后跳转地址 | 选填 |
notify_url | String | 支付完成后异步通知地址 | 必填 |
request_id | String | 请求id需保持唯一,建议24以上位数字+字母 | 必填 |
签名示例:
拼接为URL方式并排序后的字符串
"3ds_initiate=01&amount=1¤cy=EUR&description=test&form_type=01&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做签名
得到的签名如下:
"a13c6fb9574aa4fbeaf9d068012e21a6c6f85f7fb371f325145b3050c1f940fa"
提交示例:
{
"user": "016683",
"sign": "a13c6fb9574aa4fbeaf9d068012e21a6c6f85f7fb371f325145b3050c1f940fa",
"method": "v3.CreateCardPayments",
"time": 1725875388,
"data": {
"description": "test",
"3ds_initiate": "01",
"timeout": "0",
"pay_method": "online",
"sub_pay_method": "Cards HPP",
"operation": "11",
"form_type": "01",
"order_id": 1725875388,
"amount": "0.1",
"currency": "EUR",
"notify_url": "https://www.yabandpay.com/notify",
"request_id": "dxktqiedfpkswnripi631ppg6fl2uoym"
}
}
返回示例:
{
"status": true,
"code": "200",
"data": {
"order_id": "1725875388",
"trade_id": "2b2aa1af-6e97-4c01-8c52-86200bf66c82",
"amount": "0.1",
"currency": "EUR",
"url": "https://pay.yabandpay.com/pay_method/Y3JlZGl0Y2FyZA==/MmIyYWExYWYtNmU5Ny00YzAxLThjNTItODYyMDBiZjY2Yzgy",
"state": "processing"
},
"message": "",
"response_id": "202409091749500451314672"
}
更多信息:
返回支付结果:
若调用成功,则返回
"status": true
若调用失败,则返回
"status": fales
您需要跳转返回的url
。用户在此url
输入卡号信息并完成支付后,会同步跳转回redirect_url
。我们强烈建议同时使用订单查询和异步通知来同步和更新支付状态,以确保支付信息的实时准确性。
返回Token:
当用户同意授权并支付成功以后,YabandPay将通过异步通知返回
payment_token_object
;如果用户不同意授权或未完成支付,在异步通知中不将返回
payment_token_object
。
返回代码:
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 | -4120 | No operational permissions |