直接支付
支付步骤
该接口支付采用服务器端对接,即 Server-To-Server 模式,具体流程如下:
1. 网店下订单
2. 商户支付页面收集支付卡信息
3. 把订单信息(包括信用卡信息)提交到 pacypay 直连支付接口
4. pacypay 提交支付信息至银行系统,将支付结果返回商户
5. 商户服务器处理返回的支付结果
注:第3步 ~ 第4步为服务器提交数据,浏览器 URL 不会改变。
根据3-D Secure 2的规则和条款,pacypay应收集额外的客户信息进行3-D Secure 2验证。我们强烈建议您提供所有可用的信息,以增加实现无障碍流程和更高的授权率的可能性。
使用此接口需要商户拥有PCI资质
接口地址
POST https://sandbox-pg.pacypay.com/payment Content-Type:application/x-www-form-urlencoded
请求参数
参数名 | 类型 | 长度 | 必填 | 描述 |
---|---|---|---|---|
merchantNo | String | 5 | 是 | 【商户号】 |
transactionId | String | 50 | 是 | 【商户订单号】该订单号不允许重复。若商户交易订单失败后,需要重新发起支付,可在此订单号后面加上随机数。避免造成订单号重复 |
transactionType | String | 50 | 是 | 【交易类型】直接支付默认填写Sale 交易类型 |
transactionMethod | String | 16 | 否 | 【交易方法】该参数用于指定本地支付方式,默认可不传,若接入本地支付,此参数必填。详见附录:交易方法 |
do3ds | String | 16 | 否 | 【是否进行3DS验证】 dynamic :pacypay将依照现有3DS校验逻辑结果上送至收单行 ; enable : pacypay将此笔交易走3DS的结果上送至收单行; disable : pacypay将此笔交易不走3DS的结果上送至收单行 ; (此参数不传时,默认是“dynamic”)使用此参数,需要联系Pacypay先进行配置 |
currency | String | 3 | 是 | 【交易币种】 |
amount | String | 15 | 是 | 【交易总金额】包括订单的其他所有金额之和,只能为数字。可保留两位小数 |
products | String | 5000 | 是 | 【产品名称】商品名称,如果有多个商品,将商品名称拼接成字符串传入。 |
returnUrl | String | 255 | 是 | 【同步返回地址】客户支付完成后,Pacypay将跳转到此url,并将支付结果传给商户。以GET接收。 |
notifyUrl | String | 500 | 是 | 【异步返回地址】客户支付完成后,Pacypay将通过此地址,给商户发生支付结果的通知。发送方式:POST 内容:json |
transactionIp | String | 50 | 是 | 【持卡人IP】 |
transactionWebSite | String | 2000 | 是 | 【来源网址】即购物的网站域名 |
cardHolder | String | 64 | 是 | 【持卡人姓名】注:姓和名,中间需要以空格隔开 | |
cardNumber | String | 200 | 是 | 【卡号】(需要 Base64 加密) 说明:支付时信用卡的卡号 注:此参数在参数支付Token 有值的时不需要传值 |
month | String | 2 | 是 | 【信用卡有效月份】(需要 Base64 加密) 示例:05 有效月份:大于等于当前月份 注:此参数在参数支付Token 有值的时不需要传值 |
year | String | 4 | 是 | 【信用卡有效年份】(需要 Base64 加密) 示例:2020 注:此参数在参数支付Token 有值的时不需要传值 |
cvv | String | 4 | 是 | 【安全码】(需要 Base64 加密) 信用卡背面签名条一串数字的后 3-4位 注:此参数在使用 Token 支付时不需要传值 |
tokenization | bool | 否 | 默认为 false,当等于 true 的时候会为交易的卡创建支付Token | |
merchantUserId | String | 64 | 否 | 【持卡人的唯一ID】该参数配置Token支付使用,默认可以不传。如果要使用Token,该参数必填。 |
transactionOrderNo | String | 100 | 否 | 【商户原始订单号】该订单号可重复。用来记录商户的原始订单号。若同一笔订单有成功交易,后面相同订单号将会直接拒绝。避免订单重复成功 |
firstName | String | 100 | 是 | 【账单名字】 |
lastName | String | 100 | 是 | 【账单姓氏】 |
address | String | 500 | 是 | 【账单地址】 |
city | String | 100 | 是 | 【账单城市】 |
state | String | 100 | 是 | 【账单所在州】注:如果国家是美国(US)或加拿大(CA),需传ISO 2 位。如:American Samoa 传 AS。 |
country | String | 2 | 是 | 【账单国家】简称.ISO 2 位 如美国:US |
zipCode | String | 100 | 是 | 【账单邮政编码】 |
String | 100 | 是 | 【账单电子邮件】 | |
phone | String | 50 | 是 | 【账单电话】 |
shippingFirstName | String | 100 | 是 | 【收货人名】 |
shippingLastName | String | 100 | 是 | 【收货人姓】 |
shippingAddress | String | 500 | 是 | 【收货人详细地址】 |
shippingCity | String | 100 | 是 | 【收货人城市】全称. |
shippingState | String | 100 | 是 | 【收货人的所在州】注:如果国家是美国(US)或加拿大(CA),需传ISO 2 位。如:American Samoa 传 AS。 |
shippingCountry | String | 2 | 是 | 【收货人国家】ISO 国家代码。如美国为:US |
shippingZipCode | String | 100 | 是 | 【收货人邮编】 |
shippingEmail | String | 100 | 是 | 【收货人邮箱】 |
shippingPhone | String | 50 | 是 | 【收货人的联系电话】 |
street | String | 255 | 否 | 【持卡人街道】当使用本地支付时,此参数必传。 |
identityNumber | String | 64 | 否 | 【持卡人身份证号】 当使用本地支付时,此参数必传。 |
eftCode | String | 64 | 否 | 【银行名称】 当使用本地支付时,并且支付方式为EFT时,此参数必传。详情见eftCode |
java_enabled | String | 10 | 是 | 【是否启用 java】 持卡人浏览器是否启用 Java (true/false) |
color_depth | String | 50 | 是 | 【显示器色深】 持卡人显示器色深,值从 screen.colorDepth 获取 |
screen_height | String | 10 | 是 | 【屏幕分辨率】持卡人浏览器分辨率高,如 1080 |
screen_width | String | 10 | 是 | 【屏幕分辨率】持卡人浏览器分辨率宽,如 1920 |
time_zone_offset | String | 50 | 是 | 【时区】持卡人浏览器本地时间和 UTC 时间之间的时差,以 分钟为单位。值从 getTimezoneOffset()方法返回 |
accept | String | 50 | 是 | 【浏览器语言】持卡人浏览器 Accept 请求头。如'application/json' |
user_agent | String | 100 | 是 | 【浏览器类型】持卡人浏览器 User-Agent 请求头 |
content_length | String | 50 | 是 | 持卡人浏览器 content length 报头以外的内容长度。 |
language | String | 50 | 是 | 持卡人浏览器语言 |
sign | String | 64 | 是 | 【签名信息】将传入接口的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
3DS验证的处理
当商户接收到Pacypay接口响应后,判断responseCode == 86 时,证明该交易,需要做3DS验证。此时商户因该重定向到响应参数中的url参数上。做跳转,让持卡人完成3DS验证。
响应参数
3DS响应示例:
{
"responseCode": 86,
"merchantNo": "2003",
"uniqueId": "2003217214113369655",
"transactionId": "order636036277",
"status": "REDIRECT",
"message": "Redirect by 3d.",
"currency": "EUR",
"amount": "124.00",
"timestamp": 1625206295563,
"url": "https://staging.gate.e-comprocessing.net/threeds/authentication/40f8897c20b66ffe3ac4bb8367d91dae",
"transactionType": "Sale",
"transactionMethod": "CreditCard",
"sign": "f14e415355afe03fa416c83bdf7e3455f7c1ac7f96cf78cc9ebfde161d40b533",
"billingDescriptor": "test",
"email": "test@onerway.com",
"firstName": "firstName",
"lastName": "lastName"
}
成功交易响应示例:
{
"responseCode": 88,
"merchantNo": "2003",
"uniqueId": "2003217214113369655",
"transactionId": "order636036277",
"status": "SUCCESS",
"message": "Payment Success.",
"currency": "EUR",
"amount": "124.00",
"timestamp": 1625206302467,
"transactionType": "Sale",
"transactionMethod": "CreditCard",
"sign": "acfa3ce736ff76780863d74f49ceaaa3fd9695fa91b39117ba080a8e160314da",
"billingDescriptor": "test",
"email": "test@onerway.com",
"firstName": "firstName",
"lastName": "lastName"
}
参数名 | 描述 |
---|---|
responseCode | 【返回结果码】88:成功,86:需做3DS验证,其余全部算作失败 (此参数用作判断交易是否成功) |
transactionId | 【商户订单号】 |
uniqueId | 【交易流水号】Pacypay返回的唯一流水号 |
message | 【交易结果信息】 |
merchantNo | 【商户号】 |
status | 【交易状态】注:此状态,不能用来判断交易是否成功。 |
transactionMethod | 【支付方式】 |
url | 【3DS验证地址】商户需要跳转到此地址上 |
transactionType | 【交易类型】 |
amount | 【交易总金额】 |
currency | 【交易币种】 |
timestamp | 【时间戳】 |
sign | 【数据签名】将接收到的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
responsibility | 【责任转移】 00:ACS服务不可用 01: 商户承担 02: 发卡行承担 |
【持卡人邮箱】 | |
firstName | 【持卡人名字】 |
lastName | 【持卡人姓氏】 |
注:验证签名时,需要按照接口实际返回的参数为准。
收银台支付
支付步骤
- 商户发起交易请求,使用http协议,通过浏览器重定向到支付系统。
- 支付系统处理交易请求,并提交到银行进行消费交易。
- 交易完成后,支付系统把支付结果相关参数重定向到商户的交易返回地址,并发送交易结果通知。
接口地址
POST https://sandbox-pg.pacypay.com/payment Content-Type:application/x-www-form-urlencoded
请求参数
参数名 | 类型 | 长度 | 必填 | 描述 |
---|---|---|---|---|
merchantNo | String | 5 | 是 | 【商户号】 |
transactionId | String | 64 | 是 | 【商户订单号】该订单号不允许重复。若商户交易订单失败后,需要重新发起支付,可在此订单号后面加上随机数。避免造成订单号重复 |
transactionType | String | 32 | 是 | 【交易类型】收银台支付默认填写Checkout 交易类型 |
transactionMethod | String | 16 | 否 | 【交易方法】该参数用于指定本地支付方式,默认可不传,若接入本地支付,此参数必填。详见附录:交易方法 |
do3ds | String | 16 | 否 | 【是否进行3DS验证】 dynamic :pacypay将依照现有3DS校验逻辑结果上送至收单行 ; enable : pacypay将此笔交易走3DS的结果上送至收单行; disable : pacypay将此笔交易不走3DS的结果上送至收单行 ; (此参数不传时,默认是“dynamic”)使用此参数,需要联系Pacypay先进行配置 |
currency | String | 3 | 是 | 【交易币种】 |
amount | String | 15 | 是 | 【交易总金额】包括订单的其他所有金额之和,只能为数字。可保留两位小数 |
products | String | 255 | 是 | 【产品名称】商品名称,如果有多个商品,将商品名称拼接成字符串传入。 |
returnUrl | String | 255 | 是 | 【同步返回地址】客户支付完成后,Pacypay将跳转到此url,并将支付结果传给商户。以GET接收。 |
notifyUrl | String | 500 | 是 | 【异步返回地址】客户支付完成后,Pacypay将通过此地址,给商户发生支付结果的通知。发送方式:POST 内容:json |
tokenization | bool | 否 | 默认为 false,当等于 true 的时候会为交易的卡创建支付Token | |
merchantUserId | String | 64 位 | 否 | 【持卡人的唯一ID】该参数配置Token支付使用,默认可以不传。如果要使用Token,该参数必填。 |
transactionOrderNo | String | 100 位 | 否 | 【商户原始订单号】该订单号可重复。用来记录商户的原始订单号。若同一笔订单有成功交易,后面相同订单号将会直接拒绝。避免订单重复成功 |
firstName | String | 100 位 | 是 | 【账单名】 |
lastName | String | 100 位 | 是 | 【账单姓】 |
address | String | 500 位 | 是 | 【账单地址】 |
city | String | 100 位 | 是 | 【账单城市】 |
state | String | 100 位 | 是 | 【账单所在州】注:如果国家是美国(US)或加拿大(CA),需传ISO 2 位。如:American Samoa 传 AS。 |
country | String | 2 位 | 是 | 【账单国家】简称.ISO 2 位 如美国:US |
zipCode | String | 100 位 | 是 | 【账单邮政编码】 |
String | 100 位 | 是 | 【账单电子邮件】 | |
phone | String | 50 位 | 是 | 【账单电话】 |
shippingFirstName | String | 100 位 | 是 | 【收货人名】 |
shippingLastName | String | 100 位 | 是 | 【收货人姓】 |
shippingAddress | String | 500 位 | 是 | 【收货人详细地址】 |
shippingCity | String | 100 位 | 是 | 【收货人城市】全称. |
shippingState | String | 100 位 | 是 | 【收货人的所在州】注:如果国家是美国(US)或加拿大(CA),需传ISO 2 位。如:American Samoa 传 AS。 |
shippingCountry | String | 2 位 | 是 | 【收货人国家】ISO 国家代码。如美国为:US |
shippingZipCode | String | 100 位 | 是 | 【收货人邮编】 |
shippingEmail | String | 100 位 | 是 | 【收货人邮箱】 |
shippingPhone | String | 50 位 | 是 | 【收货人的联系电话】 |
street | String | 255 位 | 否 | 【持卡人街道】 |
identityNumber | String | 64 位 | 否 | 【持卡人身份证号】 当使用本地支付时,此参数必传。 |
eftCode | String | 64 | 否 | 【银行名称】 当使用本地支付时,并且支付方式为EFT时,此参数必传。详情见eftCode |
sign | String | 64 位 | 是 | 【签名信息】将传入接口的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
响应参数
请求收银台成功响应示例:
{
"responseCode": 80,
"merchantNo": "2003",
"uniqueId": "2003217151647416311",
"transactionId": "836382",
"status": "REDIRECT",
"message": "Show Checkout.",
"currency": "USD",
"amount": "1.00",
"timestamp": 1626338824173,
"url": "https://sandbox-pg.pacypay.com/payment/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdGFydCI6MTYyNjMzODgyNDE3MCwiZW5kIjoxNjI2MzQwNjI0MTcwLCJ0IjoxNzA2OTd9.1TY4toKkq0A4b0FIHHDiv_I_xrSOritiTklXXqHvJAQ",
"transactionType": "Checkout",
"transactionMethod": "CreditCard",
"sign": "DD902EDFEAD76EA3A4F6DA5FFF9701D7",
"email": "test@test.com",
"firstName": "test",
"lastName": "test"
}
交易成功响应示例:
{
"responseCode": 88,
"merchantNo": "2003",
"uniqueId": "2003217151647416311",
"transactionId": "836382",
"status": "SUCCESS",
"message": "Payment Success.",
"currency": "USD",
"amount": "1.00",
"timestamp": 1626338829803,
"transactionType": "Checkout",
"transactionMethod": "CreditCard",
"sign": "AA85A2ABC7D725C14A5BC5AD2F0E7B78",
"billingDescriptor": "test",
"email": "test@test.com",
"firstName": "test",
"lastName": "test"
}
参数名 | 描述 |
---|---|
responseCode | 返回结果码】80: 请求收银台接口成功 88:成功,28:取消,其余全部算作失败 |
transactionId | 【商户订单号】 |
uniqueId | 【交易流水号】Pacypay返回的唯一流水号 |
message | 【交易结果信息】 |
merchantNo | 【商户号】 |
transactionMethod | 【支付方式】 |
transactionType | 【交易类型】 |
amount | 【交易总金额】 |
currency | 【交易币种】 |
timestamp | 【时间戳】 |
sign | 【数据签名】将接收到的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
responsibility | 【责任转移】 00:ACS服务不可用 01: 商户承担 02: 发卡行承担 |
【持卡人邮箱】 | |
firstName | 【持卡人名字】 |
lastName | 【持卡人姓氏】 |
注:验证签名时,已接口实际返回参数为准。
预授权请款
接口地址
POST https://sandbox-pg.pacypay.com/payment Content-Type:application/x-www-form-urlencoded
请求参数
参数名称 | 类型 | 长度 | 必填 | 描述 |
---|---|---|---|---|
merchantNo | String | 5 位 | 是 | 【商户号】 |
transactionId | String | 50 位 | 是 | 商户下单时提供的唯一订单号 (不能和预授权的 transactionId 相同) |
transactionType | String | 50 位 | 是 | 【交易类型】默认填写Capture |
uniqueId | String | 50 位 | 是 | 预授权订单返回的 Pacypay 交易唯一订单号 |
amount | String | 18 位 | 是 | 【请款金额】以元为单位(币种和原始订单一致) |
sign | String | 64 位 | 是 | 【签名信息】将传入接口的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
响应参数
扣款响应参数示例:
{
"responseCode": 88,
"merchantNo": "2003",
"uniqueId": "200321751765262818",
"transactionId": "639160895",
"status": "SUCCESS",
"message": "Payment Success.",
"currency": "USD",
"amount": "1.00",
"timestamp": 1625476013237,
"transactionType": "Capture",
"transactionMethod": "CreditCard",
"sign": "5325BB427BFB6014B4EC6857EEED4F8D",
"originalUniqueId": "20032175175541322",
"billingDescriptor": "test",
"email": "test@test.com",
"firstName": "test",
"lastName": "test"
}
参数名称 | 描述 |
---|---|
responseCode | 【返回结果码】88:成功,其余全部算作失败 (此参数用作判断交易是否成功) |
merchantNo | 【商户号】 |
uniqueId | 【请款流水号】 |
transactionId | 【商户订单号】 |
status | 【状态】此状态不能用作判定交易是否成功 |
message | 【返回信息】 |
currency | 【交易币种】 |
amount | 【请款金额】 |
timestamp | 【时间戳】 |
transactionType | 【交易类型】 |
transactionMethod | 【交易方法】 |
originalUniqueId | 【授权订单流水号】 |
billingDescriptor | 【账单描述】 |
【持卡人邮箱】 | |
firstName | 【持卡人名字】 |
lastName | 【持卡人姓氏】 |
sign | 【签名信息】将接收到的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
预授权取消
接口地址
POST https://sandbox-pg.pacypay.com/payment Content-Type:application/x-www-form-urlencoded
请求参数
参数名称 | 类型 | 长度 | 必填 | 描述 |
---|---|---|---|---|
merchantNo | String | 5 位 | 是 | 【商户号】 |
transactionId | String | 50 位 | 是 | 商户下单时提供的唯一订单号 (不能和预授权的 transactionId 相同) |
transactionType | String | 50 位 | 是 | 【交易类型】默认填写Void |
uniqueId | String | 50 位 | 是 | 预授权订单返回的 Pacypay 交易唯一订单号 |
sign | String | 64 位 | 是 | 【签名信息】将传入接口的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
响应参数
取消授权响应参数示例:
{
"responseCode": 67,
"merchantNo": "2003",
"uniqueId": "2003217714182916533",
"transactionId": "110284854",
"status": "SUCCESS",
"message": "Authorize transactions : Void Success",
"currency": "USD",
"amount": "1.00",
"timestamp": 1625638709731,
"transactionType": "Void",
"transactionMethod": "CreditCard",
"sign": "DD0A007DC2E1500269D50860BC8BB35D",
"originalUniqueId": "2003217714173262851",
"billingDescriptor": "test",
"email": "test@test.com",
"firstName": "test",
"lastName": "test"
}
参数名称 | 描述 |
---|---|
responseCode | 【返回结果码】67:撤销成功,其余全部算作失败 (此参数用作判断交易是否成功) |
merchantNo | 【商户号】 |
uniqueId | 【请款流水号】 |
transactionId | 【商户订单号】 |
status | 【状态】此状态不能用作判定交易是否成功 |
message | 【返回信息】 |
currency | 【交易币种】 |
amount | 【请款金额】 |
timestamp | 【时间戳】 |
transactionType | 【交易类型】 |
transactionMethod | 【交易方法】 |
originalUniqueId | 【授权订单流水号】 |
billingDescriptor | 【账单描述】 |
【持卡人邮箱】 | |
firstName | 【持卡人名字】 |
lastName | 【持卡人姓氏】 |
sign | 【签名信息】将接收到的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
退款接口
接口地址
POST https://sandbox-pg.pacypay.com/payment
请求参数
参数名称 | 类型 | 长度 | 必填 | 描述 |
---|---|---|---|---|
merchantNo | String | 5 | 是 | 【商户号】 |
transactionType | String | 32 | 是 | 【交易类型】默认填写Refund |
uniqueId | String | 50 | 是 | 成功交易订单返回的 Pacypay 交易唯一订单号。 |
merchantRefundId | String | 50 | 否 | 商户退款唯一 ID |
amount | String | 18 | 是 | 退款金额(币种与原交易币种一致) |
sign | String | 255 | 是 | 【签名信息】将传入接口的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
响应参数
响应参数示例
{
"responseCode": 91,
"merchantNo": "2003",
"uniqueId": "2003217714582098638",
"transactionId": "357542",
"status": "SUCCESS",
"message": "Successful refund request.",
"currency": "USD",
"amount": "1.00",
"timestamp": 1625641150366,
"refundAmount": "1",
"refundId": "421683371703406592",
"transactionType": "Refund",
"transactionMethod": "CreditCard",
"sign": "9bdd1f3f3b33d041d9e16118435f406ca9a5e62ca4280973bea8a170d46c4a23",
"billingDescriptor": "test",
"email": "test@test.com",
"firstName": "test",
"lastName": "test"
}
参数名称 | 类型 | 长度 | 描述 |
---|---|---|---|
responseCode | String | 5 | 【返回结果码】91:退款请求成功,其余全部算作失败 (此参数用作判断退款请求是否成功) |
merchantNo | String | 8 | 【商户号】 |
uniqueId | String | 100 | Pacypay 交易唯一订单号 |
transactionId | String | 100 | 商户交易订单号 |
status | String | 50 | 交易返回状态 |
message | String | 500 | 返回信息 |
currency | String | 10 | 交易币种 |
amount | String | 10 | 交易金额 |
timestamp | String | 100 | 时间戳,本条信息返回时间 |
refundAmount | String | 10 | 退款金额 |
merchantRefundId | String | 100 | 商户退款唯一订单号 |
refundId | String | 100 | Pacypay 退款唯一 ID |
transactionType | String | 50 | 交易类型 |
transactionMethod | String | 50 | 交易方法 |
String | 50 | 【持卡人邮箱】 | |
firstName | String | 50 | 【持卡人名字】 |
lastName | String | 50 | 【持卡人姓氏】 |
sign | String | 100 | 【签名信息】将接收到的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
绑卡Token支付
支付步骤
该接口支付采用服务器端对接,即 Server-To-Server 模式,具体流程如下:
1. 网店下订单
2. 商户支付页面收集支付卡信息
3. 把订单信息(包括信用卡信息)提交到 pacypay 绑卡支付接口
4. pacypay 提交支付信息至银行系统,将绑卡结果返回商户
5. 商户服务器处理返回的支付结果,并保存Pacypay返回到支付Token (本次绑卡支付,不会进行扣款)
6. 下一次,同一持卡人再次交易时,就能使用Token + CVV 进行支付。无需再填写卡信息
接口地址
POST https://sandbox-pg.pacypay.com/tokenization/create application/x-www-form-urlencoded
请求参数
参数名 | 类型 | 长度 | 必填 | 描述 |
---|---|---|---|---|
merchantNo | String | 5 | 是 | 【商户号】 |
merchantUserId | String | 50 | 是 | 【购物者ID】 |
transactionWebSite | String | 50 | 是 | 【商户进行交易的网址】 |
returnUrl | String | 100 | 是 | 【同步返回地址】客户支付完成后,Pacypay将跳转到此url,并将支付结果传给商户。以GET接收。 |
notifyUrl | String | 100 | 是 | 【异步返回地址】客户支付完成后,Pacypay将通过此地址,给商户发生支付结果的通知。发送方式:POST 内容:json |
cardHolder | String | 100 | 是 | 【持卡人姓名】注:姓和名,中间需要以空格隔开 |
cardNumber | String | 100 | 是 | 【信用卡卡号】 |
month | String | 2 | 是 | 【信用卡有效月份】 |
year | String | 4 | 是 | 【信用卡有效年份】 |
cvv | String | 4 | 是 | 【安全码】信用卡背面签名条一串数字的后 3-4位 |
firstName | String | 100 | 是 | 【账单名字】 |
lastName | String | 100 | 是 | 【账单姓氏】 |
phone | String | 50 | 是 | 【账单电话】 |
String | 50 | 是 | 【账单电子邮件】 | |
zipCode | String | 50 | 是 | 【账单邮政编码】 |
address | String | 100 | 是 | 【账单地址】 |
country | String | 2 | 是 | 【账单国家】简称.ISO 2 位 如美国:US |
state | String | 50 | 是 | 【账单所在州】注:如果国家是美国(US)或加拿大(CA),需传ISO 2 位。如:American Samoa 传 AS。 |
java_enabled | String | 10 | 是 | 【是否启用 java】 持卡人浏览器是否启用 Java (true/false) |
color_depth | String | 10 | 是 | 【显示器色深】 持卡人显示器色深,值从 screen.colorDepth 获取 |
screen_height | String | 10 | 是 | 【屏幕分辨率】持卡人浏览器分辨率高,如 1080 |
screen_width | String | 10 | 是 | 【屏幕分辨率】持卡人浏览器分辨率宽,如 1920 |
time_zone_offset | String | 10 | 是 | 【时区】持卡人浏览器本地时间和 UTC 时间之间的时差,以 分钟为单位。值从 getTimezoneOffset()方法返回 | |
accept | String | 50 | 是 | 【浏览器语言】持卡人浏览器 Accept 请求头。如'application/json' |
user_agent | String | 50 | 是 | 【浏览器类型】持卡人浏览器 User-Agent 请求头 |
content_length | String | 10 | 是 | 持卡人浏览器 content length 报头以外的内容长度。 |
language | String | 10 | 是 | 持卡人浏览器语言 |
sign | String | 50 | 是 | 【签名信息】将传入接口的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
响应参数
响应示例:
{
"responseCode": 98,
"merchantNo": "2003",
"transactionId": "2003217717304844463",
"status": "SUCCESS",
"message": "Create Tokenization Success.",
"timestamp": 1625650251059,
"sign": "7f80c48683e53234e704a76a9157cb9d1ed6000e601fd4bff1a4fc69f89a1199",
"tokenization": "e84028e9767f4a13b0015d553636b13f",
"cardNo": "471110******0000"
}
参数名 | 类型 | 长度 | 描述 |
---|---|---|---|
responseCode | String | 5 位 | 【返回结果码】98:成功,其余全部算作失败 (此参数用作判断交易是否成功) |
transactionId | String | 50 位 | 【商户订单号】 |
message | String | 200 位 | 【提示信息】 |
merchantNo | String | 8 位 | 【商户号】 |
timestamp | String | 50 位 | 【时间戳】 |
status | String | 10 位 | 【交易返回状态】 |
tokenization | String | 50 位 | 【支付Token】 |
cardNo | String | 50 位 | 持卡人的卡号 |
sign | String | 100 位 | 【数据签名】将接收到的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
注:验证签名时,需要按照接口实际返回的参数为准。
使用 Tokenization
支付步骤
该接口支付采用服务器端对接,即 Server-To-Server 模式,具体流程如下:
1. 创建Tokenization后,接收支付公司返回的支付token
2. 对同一个用户可以使用Token进行支付
注:使用此接口,需要商户有PCI资质
接口地址
POST https://sandbox-pg.pacypay.com/payment Content-Type:application/x-www-form-urlencoded
请求参数
参数名 | 类型 | 长度 | 必填 | 描述 |
---|---|---|---|---|
merchantNo | String | 5 | 是 | 【商户号】 |
merchantUserId | String | 8 | 是 | 【购物者ID】 |
tokenization | String | 50 | 是 | 【支付Token】Pacypay返回的支付Token |
transactionId | String | 3 | 是 | 【商户订单号】该订单号不允许重复。若商户交易订单失败后,需要重新发起支付,可在此订单号后面加上随机数。避免造成订单号重复 |
transactionType | String | 15 | 是 | 【交易类型】收银台支付默认填写TokenizationSale |
currency | String | 64 | 是 | 【交易币种】 |
amount | String | 10 | 是 | 【交易总金额】包括订单的其他所有金额之和,只能为数字。可保留两位小数 |
products | String | 50 | 是 | 【产品名称】商品名称,如果有多个商品,将商品名称拼接成字符串传入。 |
returnUrl | String | 50 | 是 | 【同步返回地址】客户支付完成后,Pacypay将跳转到此url,并将支付结果传给商户。以GET接收。 |
notifyUrl | String | 2000 | 是 | 【异步返回地址】客户支付完成后,Pacypay将通过此地址,给商户发生支付结果的通知。发送方式:POST 内容:json |
transactionIp | String | 64 | 是 | 【持卡人IP】 |
transactionWebSite | String | 2000 | 是 | 【来源网址】即购物的网站域名 |
cvv | String | 5 | 是 | 【安全码】信用卡背面签名条一串数字的后 3-4位 |
firstName | String | 50 | 是 | 【账单名字】 |
lastName | String | 50 | 是 | 【账单姓氏】 |
phone | String | 50 | 是 | 【账单电话】 |
String | 50 | 是 | 【账单电子邮件】 | |
zipCode | String | 50 | 是 | 【账单邮政编码】 |
address | String | 50 | 是 | 【账单地址】 |
country | String | 50 | 是 | 【账单国家】简称.ISO 2 位 如美国:US |
state | String | 50 | 是 | 【账单所在州】注:如果国家是美国(US)或加拿大(CA),需传ISO 2 位。如:American Samoa 传 AS。 |
city | String | 50 | 是 | 【账单城市】 |
shippingFirstName | String | 100 | 是 | 【收货人名】 |
shippingLastName | String | 100 | 是 | 【收货人姓】 |
shippingAddress | String | 500 | 是 | 【收货人详细地址】 |
shippingCity | String | 100 | 是 | 【收货人城市】全称. |
shippingState | String | 100 | 是 | 【收货人的所在州】注:如果国家是美国(US)或加拿大(CA),需传ISO 2 位。如:American Samoa 传 AS。 |
shippingCountry | String | 2 | 是 | 【收货人国家】ISO 国家代码。如美国为:US |
shippingZipCode | String | 100 | 是 | 【收货人邮编】 |
shippingEmail | String | 100 | 是 | 【收货人邮箱】 |
shippingPhone | String | 50 | 是 | 【收货人的联系电话】 |
java_enabled | String | 10 | 是 | 【是否启用 java】 持卡人浏览器是否启用 Java (true/false) |
color_depth | String | 50 | 是 | 【显示器色深】 持卡人显示器色深,值从 screen.colorDepth 获取 |
screen_height | String | 10 | 是 | 【屏幕分辨率】持卡人浏览器分辨率高,如 1080 |
screen_width | String | 10 | 是 | 【屏幕分辨率】持卡人浏览器分辨率宽,如 1920 |
time_zone_offset | String | 50 | 是 | 【时区】持卡人浏览器本地时间和 UTC 时间之间的时差,以 分钟为单位。值从 getTimezoneOffset()方法返回 |
accept | String | 50 | 是 | 【浏览器语言】持卡人浏览器 Accept 请求头。如'application/json' |
user_agent | String | 100 | 是 | 【浏览器类型】持卡人浏览器 User-Agent 请求头 |
content_length | String | 50 | 是 | 持卡人浏览器 content length 报头以外的内容长度。 |
language | String | 50 | 是 | 持卡人浏览器语言 |
sign | String | 100 | 是 | 【签名信息】将传入接口的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
3DS验证的处理
当商户接收到Pacypay接口响应后,判断responseCode == 86 时,证明该交易,需要做3DS验证。此时商户因该重定向到响应参数中的url参数上。做跳转,让持卡人完成3DS验证。
响应参数
响应示例需要3DS:
{
"responseCode": 86,
"merchantNo": "2003",
"uniqueId": "2003217214113369655",
"transactionId": "order636036277",
"status": "REDIRECT",
"message": "Redirect by 3d.",
"currency": "EUR",
"amount": "124.00",
"timestamp": 1625206295563,
"url": "https://staging.gate.e-comprocessing.net/threeds/authentication/40f8897c20b66ffe3ac4bb8367d91dae",
"transactionType": "Sale",
"transactionMethod": "CreditCard",
"sign": "f14e415355afe03fa416c83bdf7e3455f7c1ac7f96cf78cc9ebfde161d40b533",
"billingDescriptor": "test",
"email": "test@onerway.com",
"firstName": "firstName",
"lastName": "lastName"
}
响应示例成功交易:
{
"responseCode": 88,
"merchantNo": "2003",
"uniqueId": "2003217214113369655",
"transactionId": "order636036277",
"status": "SUCCESS",
"message": "Payment Success.",
"currency": "EUR",
"amount": "124.00",
"timestamp": 1625206302467,
"transactionType": "Sale",
"transactionMethod": "CreditCard",
"sign": "acfa3ce736ff76780863d74f49ceaaa3fd9695fa91b39117ba080a8e160314da",
"billingDescriptor": "test",
"email": "test@onerway.com",
"firstName": "firstName",
"lastName": "lastName"
}
参数名 | 类型 | 长度 | 描述 |
---|---|---|---|
responseCode | String | 5 | 【返回结果码】88:成功,86:需做3DS验证,其余全部算作失败 (此参数用作判断交易是否成功) |
transactionId | String | 50 | 【商户订单号】 |
uniqueId | String | 100 | 【交易流水号】Pacypay返回的唯一流水号 |
message | String | 200 | 【交易结果信息】 |
merchantNo | String | 8 | 【商户号】 |
status | String | 8 | 【交易状态】注:此状态,不能用来判断交易是否成功。 |
transactionMethod | String | 50 | 【支付方式】 |
url | String | 100 | 【3DS验证地址】商户需要跳转到此地址上 |
transactionType | String | 10 | 【交易类型】 |
amount | String | 15 | 【交易总金额】 |
currency | String | 3 | 【交易币种】 |
timestamp | String | 20 | 【时间戳】 |
sign | String | 64 | 【数据签名】将接收到的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
responsibility | String | 2 | 【责任转移】 00:ACS服务不可用 01: 商户承担 02: 发卡行承担 |
String | 10 | 【持卡人邮箱】 | |
firstName | String | 10 | 【持卡人名字】 |
lastName | String | 10 | 【持卡人姓氏】 |
注:验证签名时,需要按照接口实际返回的参数为准。
本地支付
本地支付类型
部分本地支付限制:
Sofort :
1, 测试环境,国家只能选择德国(DE)币种只能传EUR Country : DE , currency : EUR
2, Sofort 不需要传 identityNumber 参数。
3, 测试环境 amount 必须大于10 EUR
Konbini 和 Payeasy :
1, Phone : 只能传纯数字,并且必须10~11位。
2, products : 长度不能超过22个字符。
OVO :
1, 最小金额,必须大于10000 。 firstname 和lastname 必须是英文。
Ideal :
1, currency : EUR 测试环境币种必须是EUR
2, 金额(amount): 传 1 EUR (交易成功) 。 传 5 EUR (交易失败)
Efecty :
最小金额 : COP 10,000.00
最大金额 : COP 3,000,000
国家 | 币种 | transactionMethod | 必填 | 测试数据 | 退款 |
---|---|---|---|---|---|
巴西 BR | BRL, EUR, USD | Boleto | Email Country identityNumber state street city zipCode |
jose@example.com BR 853.513.468-93 CE 1040 Maracanaú 61919-230 |
可退款 |
巴西 BR | BRL, EUR, USD | MercadoPago | Email Country identityNumber state street city zipCode |
jose@example.com BR 853.513.468-93 CE 1040 Maracanaú 61919-230 |
可退款 |
巴西 BR | BRL, EUR, USD | PIX | Email Country identityNumber state street city zipCode |
jose@example.com BR 853.513.468-93 CE 1040 Maracanaú 61919-230 |
可退款 |
智利 CL | CLP, EUR, USD | Servipag | Email Country |
josechile@example.com CL |
可退款 |
智利 CL | CLP, EUR, USD | Sencillito | Email Country |
josechile@example.com CL |
可退款 |
智利 CL | CLP, EUR, USD | Webpay | Email Country |
josechile@example.com CL |
可退款 |
智利 CL | CLP, EUR, USD | Multicaja | Email Country |
josechile@example.com CL |
可退款 |
哥伦比亚 CO | COP, EUR, USD | EFT | Email Country identityNumber eftCode |
josecolombia@example.com CO 4023030074 banco_agrario |
可退款 |
哥伦比亚 CO | COP, EUR, USD | Efecty | Email Country |
josecolombia@example.com CO |
可退款 |
墨西哥 MX | MXN, USD | SPEI | Email Country |
juangarcia@example.com MX |
可退款 |
墨西哥 MX | MXN, USD | OXXO | Email Country |
juangarcia@example.com MX |
可退款 |
墨西哥 MX | MXN, USD | oxxopay | Email Country |
juangarcia@example.com MX |
可退款 |
墨西哥 MX | MXN, USD | MercadoPago | Email Country |
juangarcia@example.com MX |
可退款 |
秘鲁 PE | PEN, USD | PagoEfectivo | Email Country |
joseperu@example.com PE |
可退款 |
秘鲁 PE | PEN, USD | safetypay-cash | Email Country |
joseperu@example.com PE |
可退款 |
秘鲁 PE | PEN, USD | safetypay-online | Email Country |
joseperu@example.com PE |
可退款 |
波兰 PL,捷克 CZ | PLN, CZK | PayU | Email Country |
可退款 | |
波兰 PL | PLN | Przelewy24 | Email Country eftCode |
可退款 | |
厄瓜多尔 EC | USD | safetypay-cash | Email Country |
josesilvaEcuador@example.com PE |
可退款 |
厄瓜多尔 EC | USD | safetypay-online | Email Country |
josesilvaEcuador@example.com PE |
可退款 |
玻利维亚 BO | BOB, USD | Pagosnet | Email Country |
test@onerway.com BO |
可退款 |
AT, BE, FR, DE IT, NL, PL, SK ES, CH, GB |
EUR、GBP | Sofort | |||
德国 DE | EUR | Giropay | 可退款 | ||
荷兰 NL | EUR | iDEAL | 可退款 | ||
日本 JP | JPY | Konbini | Email Country |
不支持退款 | |
日本 JP | JPY | Payeasy | Email Country |
不支持退款 | |
澳大利亚 AU | AUD | POLI | Email Country |
不支持退款 | |
比利时 BE | EUR | bancontact | Email Country |
可退款 | |
印度尼西亚 ID | IDR | OVO | Email Country |
不支持退款 | |
意大利 IT | EUR | MyBank | Email Country |
可退款 | |
Worldwide | PHP | Dragonpay | Email Country |
可退款 | |
Worldwide | EUR, GBP, USD | skrill | Email Country |
可退款 | |
新加坡 SG | SG | eNETS | Email Country |
可退款 | |
LT, LV, EE | EUR | PayseraWallet | Email Country |
可退款 | |
LT | EUR | LithuanianBanks | Email Country |
可退款 | |
Austria(AT) , Denmark(DK) Finland(FI) , Germany(DE) Netherlands(NL) , Norway(NO) Sweden(SE) , Switzerland(CH) United Kingdom(GB) , United States(US) Australia(AU) , Belgium(BE) Spain(ES) , Italy(IT) |
EUR, DKK EUR, EUR EUR, NOK SEK , CHF GBP , USD AUD , EUR EUR , EUR |
Klarna | 可退款 | ||
AT, AU, BE BG, CA, CH CY, CZ, DE DK, ES, FI FR, GB, GE, GI GR, HR, HU IE, IT, LI LT, LU, MT MX, NL, NZ NO, PE, PL PT, RO, SE SI, SK, UY |
AUD, CAD, CHF EUR, GBP, NOK PLN, RON, SEK USD |
Paysafecard | Email Country |
可退款 | |
AT, BE, CA CH, CY, CZ DK, ES, FR GB, GR, HR HU, IE, IT LU, LT, MT NL, PL, PT RO, SE, SI SK |
AUD, CAD, CHF EUR, GBP, NOK PLN, RON, SEK USD |
Paysafecash | Email Country |
可退款 | |
BE, NL, LU | EUR | Payconiq | Email Country |
可退款 | |
DE, DK, EE ES, FI, GB LT, LV, NL NO, PL, SE SK |
DKK, EUR, GBP, NOK, PLN, SEK | Trustly | Email Country |
可退款 |
EFT-银行名称
<label for="EFT" class="col-sm-2 control-label">Selecciona tu banco</label>
<div class="col-sm-10">
<select id="eftCode" class="form-control" name="eftCode">
<option value='banco_agrario'>BANCO AGRARIO</option>
<option value='banco_av_villas'>BANCO AV VILLAS</option>
<option value='banco_bbva_colombia_s.a.'>BANCO BBVA COLOMBIA S.A.</option>
<option value='banco_caja_social'>BANCO CAJA SOCIAL</option>
<option value='banco_colpatria'>BANCO COLPATRIA</option>
<option value='banco_cooperativo_coopcentral'>BANCO COOPERATIVO COOPCENTRAL</option>
<option value='banco_corpbanca_s.a'>BANCO CORPBANCA S.A</option>
<option value='banco_davivienda'>BANCO DAVIVIENDA</option>
<option value='banco_de_bogota'>BANCO DE BOGOTA</option>
<option value='banco_de_occidente'>BANCO DE OCCIDENTE</option>
<option value='banco_falabella_'>BANCO FALABELLA</option>
<option value='banco_gnb_sudameris'>BANCO GNB SUDAMERIS</option>
<option value='banco_pichincha_s.a.'>BANCO PICHINCHA S.A.</option>
<option value='banco_procredit'>BANCO PROCREDIT</option>
<option value='bancolombia'>BANCOLOMBIA</option>
<option value='bancoomeva_s.a.'>BANCOOMEVA S.A.</option>
<option value='citibank_'>CITIBANK</option>
<option value='itau'>ITAU</option>
<option value='nequi'>NEQUI</option>
</select>
</div>
eftCode | 描述 |
---|---|
banco_agrario | BANCO AGRARIO |
banco_av_villas | BANCO AV VILLAS |
banco_bbva_colombia_s.a. | BANCO BBVA COLOMBIA S.A. |
banco_caja_social | BANCO CAJA SOCIAL |
banco_colpatria | BANCO COLPATRIA |
banco_cooperativo_coopcentral | BANCO COOPERATIVO COOPCENTRAL |
banco_corpbanca_s.a | BANCO CORPBANCA S.A |
banco_davivienda | BANCO DAVIVIENDA |
banco_de_bogota | BANCO DE BOGOTA |
banco_de_occidente | BANCO DE OCCIDENTE |
banco_falabella_ | BANCO FALABELLA |
banco_gnb_sudameris | BANCO GNB SUDAMERIS |
banco_pichincha_s.a. | BANCO PICHINCHA S.A. |
banco_procredit | BANCO PROCREDIT |
bancolombia | BANCOLOMBIA |
bancoomeva_s.a. | BANCOOMEVA S.A. |
citibank_ | CITIBANK |
itau | ITAU |
nequi | NEQUI |
Przelewy24-银行名称
<label for="Przelewy24" class="col-sm-2 control-label">Selecciona tu banco</label>
<div class="col-sm-10">
<select id="eftCode" class="form-control" name="eftCode">
<option value='20'>Santander-Przelew24</option>
<option value='26'>P_ac_ z Inteligo</option>
<option value='31'>P_ac_ z iPKO (PKO BP)</option>
<option value='33'>BNP Paribas</option>
<option value='43'>Bank PEKAO S.A.</option>
<option value='45'>Credit Agricole</option>
<option value='49'>ING Bank _l_ski</option>
<option value='52'>Konto Inteligo</option>
<option value='53'>Bank PKO BP (iPKO)</option>
<option value='54'>Santander</option>
<option value='64'>Toyota Bank</option>
<option value='65'>Bank PEKAO S.A.</option>
<option value='69'>Volkswagen Bank</option>
<option value='85'>Bank Millennium</option>
<option value='88'>P_ac_ z Alior Bankiem</option>
<option value='90'>Nest Bank</option>
<option value='95'>Credit Agricole</option>
<option value='99'>P_ac_ z BO_</option>
<option value='112'>P_ac_ z ING</option>
<option value='119'>P_ac_ z CitiHandlowy</option>
<option value='129'>Alior - Raty</option>
<option value='131'>P_ac_ z Plus Bank</option>
<option value='136'>mBank - Raty</option>
<option value='141'>e-transfer Pocztowy24</option>
<option value='143'>Banki Sp_dzielcze</option>
<option value='144'>Bank Nowy BFG S.A.</option>
<option value='153'>Getin Bank</option>
<option value='154'>BLIK</option>
<option value='158'>Noble Pay</option>
<option value='161'>P_ac_ z IdeaBank</option>
<option value='185'>EnveloBank</option>
<option value='222'>NestPrzelew</option>
<option value='223'>BNP Paribas P_ac_ z Pl@net</option>
<option value='243'>mBank - mTransfer</option>
<option value='266'>P24now</option>
<option value='270'>mBank (Us_ugaITP)</option>
<option value='271'>ING Bank ÅlÄ
ski (Us_uga ITP)</option>
<option value='272'>BNP Paribas (Us_uga ITP)</option>
<option value='274'>PKO BP (Us_uga ITP)</option>
<option value='275'>Santander (Us_uga ITP)</option>
<option value='279'>Inteligo (Us_uga ITP)</option>
<option value='280'>mBank - Raty</option>
</select>
</div>
eftCode | 描述 |
---|---|
20 | Santander-Przelew24 |
26 | P_ac_ z Inteligo |
31 | P_ac_ z iPKO (PKO BP) |
33 | BNP Paribas |
43 | Bank PEKAO S.A. |
45 | Credit Agricole |
49 | ING Bank _l_ski |
52 | Konto Inteligo |
53 | Bank PKO BP (iPKO) |
54 | Santander |
64 | Toyota Bank |
65 | Bank PEKAO S.A. |
69 | Volkswagen Bank |
85 | Bank Millennium |
88 | P_ac_ z Alior Bankiem |
90 | Nest Bank |
95 | Credit Agricole |
99 | P_ac_ z BO_ |
112 | P_ac_ z ING |
119 | P_ac_ z CitiHandlowy |
129 | Alior - Raty |
131 | P_ac_ z Plus Bank |
136 | mBank - Raty |
141 | e-transfer Pocztowy24 |
143 | Banki Sp_dzielcze |
144 | Bank Nowy BFG S.A. |
153 | Getin Bank |
154 | BLIK |
158 | Noble Pay |
161 | P_ac_ z IdeaBank |
185 | EnveloBank |
222 | NestPrzelew |
223 | BNP Paribas P_ac_ z Pl@net |
243 | mBank - mTransfer |
266 | P24now |
270 | mBank (Us_ugaITP) |
271 | ING Bank ÅlÄ ski (Us_uga ITP) |
272 | BNP Paribas (Us_uga ITP) |
274 | PKO BP (Us_uga ITP) |
275 | Santander (Us_uga ITP) |
279 | Inteligo (Us_uga ITP) |
280 | mBank - Raty |
本地支付银行列表
[
"Boleto",
"Sencillito",
"Servipag",
"Multicaja",
"safetypay-online",
"safetypay-cash",
"PagoFacil",
"Cupon",
"OXXOPAY",
"Webpay",
"PagoEfectivo",
"Sofort",
"OXXO",
"MercadoPago",
"Rapipago",
"Itau",
"EFT",
"Baloto",
"Efecty",
"SPEI",
"Pagosnet",
"BankTransfer"
]
请求地址 : GET https://pg.pacypay.com/query/localBankList
交易查询接口
接口地址
GET https://sandbox-pg.pacypay.com/query/transaction
请求参数
参数名称 | 类型 | 长度 | 必填 | 描述 |
---|---|---|---|---|
merchantNo | String | 5 | 是 | 【商户号】 |
transactionIds | String | 255 | 否 | 商户下单时提供的唯一订单号(多个订单号以逗号“,”分隔) |
uniqueIds | String | 1000 | 否 | Pacypay平台唯一订单号(多个订单号以逗号“,”分隔) |
tradeTimeStart | String | 1000 | 否 | 查询开始时间(yyyy-MM-dd HH:mm:ss) |
tradeTimeEnd | String | 64 | 否 | 查询结束时间(yyyy-MM-dd HH:mm:ss) |
page | Integer | 50 | 否 | 分页参数,默认为 1 |
sign | String | 200 | 是 | 【签名信息】将传入接口的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
注:(transactionIds)、(uniqueIds)、(tradeTimeStart ,tradeTimeEnd) 必须传一个
响应参数
响应参数示例
{
"responseCode": 101,
"message": "Query Success.",
"timestamp": 1625716270031,
"merchantNo": "2003",
"page": 1,
"totalPage": 1,
"pageRows": 10,
"sign": "3fb3a948e329623c35311c43063d7aed7f7fa44f7e963ebb9f5ce82b56e14029",
"trans": [
{
"uniqueId": "20031995148929052",
"transactionId": "C627738|1567663689242",
"tradeTime": "2019-09-05 14:08:09",
"currency": "USD",
"amount": "10.00",
"tradeStatus": "SUCCESS",
"refundStatus": "6",
"transferStatus": "TRANSFERED",
"chargebackStatus": "UNCHARGEBACK",
"remark": "Payment Success.",
"cardNumber": "471110******0000",
"firstName": "Merchant",
"lastName": "Test",
"binCountry": "US",
"transactionIp": "127.0.0.1",
"transactionType": "Capture",
"email": "test@merchant.com",
"cardBrand": "VISA",
"transactionOrderNo": null,
"responsibility": null
}
],
"settled": null
}
参数名称 | 类型 | 描述 |
---|---|---|
responseCode | String | 【返回结果码】101:查询成功 |
message | String | 返回信息 |
timestamp | String | 时间戳,本条信息返回时间 |
merchanNo | String | 商户号 |
page | String | 当前页号 |
totalPage | String | 总页数 |
pageRows | String | 当前页数据条数 |
trans | Array | 交易数据 |
uniqueId | String | Pacypay 交易唯一订单号 |
transactionId | String | 商户交易订单号 |
tradeTime | String | 交易时间 |
currency | String | 交易币种 |
amount | String | 交易金额 |
tradeStatus | String | 交易状态,详见附表交易状态 |
refundStatus | String | 退款状态,详见附表退款状态 |
transferStatus | String | 划款状态,详见附表划款状态 |
chargebackStatus | String | 拒付状态,详见附表拒付状态 |
remark | String | 交易备注 |
cardNumber | String | 交易卡号 |
firstName | String | 账单名字 |
lastName | String | 账单姓氏 |
binCountry | String | 交易卡 bin |
transactionIp | String | 持卡人交易 IP |
transactionType | String | 交易类型 |
String | 持卡人邮箱 | |
cardBrand | String | 卡种类型 |
transactionOrderNo | String | 商户原始订单号 |
responsibility | String | 是否发生责任转移 值:00:ACS 服务不可用、01:商户承担、02:发卡行承担。 |
退款查询接口
接口地址
GET https://sandbox-pg.pacypay.com/query/refund
请求参数
请求参数示例:
https://sandbox-pg.pacypay.com/query/refund?merchantNo=2003&refundTimeStart=2019-09-04 00:00:00 &refundTimeEnd=2019-09-05 23:00:00 &sign=a523848e21aab0366bd45446b256d657b2dec1041a702a8c4003c143921cd18b
参数名称 | 类型 | 长度 | 必填 | 描述 |
---|---|---|---|---|
merchantNo | String | 5 | 是 | 【商户号】 |
transactionIds | String | 100 | 否 | 商户下单时提供的唯一订单号(多个订单号以逗号“,”分隔) |
uniqueIds | String | 100 | 否 | 平台唯一订单号(多个订单号以逗号“,”分隔) |
refundTimeStart | String | 100 | 否 | 退款申请时间开始(yyyy-MM-dd HH:mm:ss) |
refundTimeEnd | String | 100 | 否 | 退款申请时间结束(yyyy-MM-dd HH:mm:ss) |
page | Integer | 否 | 分页参数,默认为 1 | |
sign | String | 100 | 是 | 【签名信息】将传入接口的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
注:(transactionIds)、(uniqueIds)、(refundTimeStart ,refundTimeEnd) 必须传一个
响应参数
响应参数示例:
{
"responseCode": 101,
"message": "Query Success.",
"timestamp": 1626070903818,
"merchantNo": "2003",
"page": 1,
"totalPage": 1,
"pageRows": 3,
"sign": "25eecb24ea04f55869eceb80cebf3f3d3cb33eb9743031264578c3b2feaf2803",
"trans": [
{
"transactionId": "C627738|1567663689242",
"uniqueId": "20031995148929052",
"refundId": "178508416564727808",
"merchantRefundId": "R627738|1567663722965",
"tradeTime": "2019-09-05 14:08:09",
"refundTime": "2019-09-05 14:08:43",
"currency": "USD",
"amount": "10.00",
"refundAmount": "5.00",
"tradeStatus": "SUCCESS",
"refundStatus": "0",
"chargebackStatus": "UNCHARGEBACK",
"remark": null
}
],
"settled": null
}
参数名称 | 描述 |
---|---|
responseCode | 【返回结果码】 |
message | 【返回信息】 |
timestamp | 【时间戳,本条信息返回时间】 |
merchantNo | 【商户号】 |
page | 【当前页号】 |
totalPage | 【总页数】 |
pageRows | 【当前页数据条数】 |
trans | 【交易数据[Array]】 |
transactionId | 【商户交易订单号】 |
uniqueId | 【Pacypay 交易唯一订单号】 |
refundId | 【Pacypay 退款唯一 ID】 |
merchantRefundId | 【商户退款唯一 ID】 |
tradeTime | 【交易时间】 |
refundTime | 【退款时间】 |
currency | 【交易币种】 |
amount | 【交易金额】 |
refundAmount | 【退款金额】 |
tradeStatus | 【交易状态】详见附表 交易状态 |
refundStatus | 【退款状态】详见附表 退款状态 |
chargebackStatus | 【拒付状态】详见附表 拒付状态 |
remark | 【交易备注】 |
拒付查询请求接口
接口地址
GET https://sandbox-pg.pacypay.com/query/chargeback
请求参数
拒付查询请求参数示例:
https://sandbox-pg.pacypay.com/query/chargeback?merchantNo=2003&transactionIds&uniqueIds&chargebackTimeStart=2019-09-04 00:00:00 &chargebackTimeEnd=2019-09-05 23:00:00 &page&sign=ff2066e882bbf47ea99e3b0fb937f284c76fe5363cab33a4cdccea32c7feadfa
参数名称 | 类型 | 长度 | 必填 | 描述 |
---|---|---|---|---|
merchantNo | String | 10 | 是 | 【商户号】 |
transactionIds | String | 100 | 否 | 商户下单时提供的唯一订单号(多个订单号以逗号“,”分隔) |
uniqueIds | String | 100 | 否 | 平台唯一订单号(多个订单号以逗号“,”分隔) |
chargebackTimeStart | String | 50 | 否 | 拒付开始时间(yyyy-MM-dd HH:mm:ss) |
chargebackTimeEnd | String | 50 | 否 | 拒付结束时间(yyyy-MM-dd HH:mm:ss) |
page | String | 10 | 否 | 分页参数,默认为 1 |
sign | String | 100 | 是 | 【签名信息】将传入接口的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
响应参数
拒付查询请求参数示例:
{
"responseCode": 101,
"message": "Query Success.",
"timestamp": 1626141418529,
"merchantNo": "2003",
"page": 1,
"totalPage": 1,
"pageRows": 1,
"sign": "4f0aa877d0da741761fa36edff8b604c87809e3988a3bf8d5191820fac582ca3",
"trans": [
{
"uniqueId": "200319951343317167",
"transactionId": "731478",
"chargebackId": "761",
"tradeTime": "2019-09-05 13:43:31",
"chargebackTime": "2019-09-05 14:41:39",
"chargebackCurrency": "USD",
"chargebackAmount": "10.00",
"tradeCurrency": "USD",
"tradeAmount": "10.00",
"chargebackStatus": "CHARGEBACK",
"remark": "test",
"complainStatus": "0",
"complainTime": null,
"paymentMethod": "VISA"
}
],
"settled": null
}
参数名称 | 描述 |
---|---|
responseCode | 【返回结果码】 |
message | 【返回信息】 |
timestamp | 【时间戳,本条信息返回时间】 |
merchantNo | 【商户号】 |
totalPage | 【当前页号】 |
pageRows | 【当前页数据条数】 |
trans | 交易数据[Array] |
uniqueId | Pacypay 交易唯一订单号 |
transactionId | 商户交易订单号 |
chargebackId | Pacypay 拒付唯一 ID |
tradeTime | 交易时间 |
chargebackTime | 拒付时间 |
chargebackCurrency | 拒付币种 |
chargebackAmount | 拒付金额 |
tradeCurrency | 交易币种 |
tradeAmount | 交易金额 |
chargebackStatus | 拒付状态,详见附表拒付状态 |
remark | 交易备注 |
complainStatus | 申述状态,详见附表 申述状态 |
complainTime | 拒付更新时间 |
paymentMethod | 支付方式 |
结算查询请求接口
接口地址
Get https://sandbox-pg.pacypay.com/query/settled
请求参数
结算查询接口请求参数示例:
https://sandbox-pg.pacypay.com/query/settled?merchantNo=600037&settledStartTime=2019-08-08 00:00:00 &settledEndTime=2019-08-11 23:00:00 &sign=99dda31f1113b00dab128b4eaa1ddf592d2d04a505f4292985047b00195f4265
参数名称 | 类型 | 长度 | 必填 | 描述 |
---|---|---|---|---|
merchantNo | String | 10 | 是 | 【商户号】 |
batchNo | String | 255 | 否 | 结算批次号 |
settledStartTime | String | 64 | 否 | 结算开始时间(yyyy-MM-dd HH:mm:ss) |
settledEndTime | String | 64 | 否 | 结算结束时间(yyyy-MM-dd HH:mm:ss) |
page | String | 10 | 否 | 分页参数,默认为 1 |
sign | String | 100 | 是 | 【签名信息】将传入接口的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
注:(batchNo)、(settledStartTime ,settledEndTime) 必须传一个
结算数据示例
结算响应数据:
{
"responseCode": 101,
"message": "Query Success.",
"timestamp": 1626146678435,
"merchantNo": "600049",
"page": 1,
"totalPage": 1,
"pageRows": 5,
"sign": "13c46c17c5b7073385a9b9fcb4e6311bf3ad605e67fc0bdfaf42cf0a28cb90c7",
"trans": null,
"settled": "H|169355934190145541|2019-08-11 08:00:00|EUR|622.97|0.00|0.00|-30.34|0.00|-14.32|-1.95|0|0.00|0.00|576.36\nT|15\nD|169355934190145541|d8ac69d158d099e955a66b1bb1018d22|交易成功|2019-08-11 07:00:05|EUR|59.78|1|EUR|59.78|-1.37|-0.13|FR|2019-08-11 08:00:00|58.28||retro-stage.fr|0|169355934190145541-127497-1\nD|169355934190145541|2faaefd6513a9ba5c24041880e053c74|交易成功|2019-08-11 04:40:05|EUR|59.98|1|EUR|59.98|-1.38|-0.13|FR|2019-08-11 08:00:00|58.47||retro-stage.fr|0|169355934190145541-127422-1\n"
}
(H:结算批次,T:详情数,D:结算详情)
数据类型(H)|批次号|结算时间|结算币种|处理金额|退款金额|拒付金额|保证金收取|保证金释放|手续费|服务费|拒付笔数|返还交易手续费|拒付处理费|结算金额
数据类型(T)|批次详情数量
数据类型(D)|批次号|商户订单号|处理属性|交易时间|交易币种|交易金额|处理汇率|处理币种|处理金额|处理手续费|服务费 |Cardbin 国家|处理时间|最终金额|备注|交易网址|拒付金额|结算详情唯一ID
H|169355934190145541|2019-08-11 08:00:00|EUR|622.97|0.00|0.00|-30.34|0.00|-14.32|-1.95|0|0.00|0.00|576.36
T|15
D|169355934190145541|d8ac69d158d099e955a66b1bb1018d22|交易成功|2019-08-11 07:00:05|EUR|59.78|1|EUR|59.78|-1.37|-0.13|FR|2019-08-11 08:00:00|58.28||retro-stage.fr|0|169355934190145541-127497-1
D|169355934190145541|2faaefd6513a9ba5c24041880e053c74|交易成功|2019-08-11 04:40:05|EUR|59.98|1|EUR|59.98|-1.38|-0.13|FR|2019-08-11 08:00:00|58.47||retro-stage.fr|0|169355934190145541-127422-1
交易通知回调
通知示例:
{
"responseCode": 88,
"merchantNo": "2003",
"uniqueId": "2003217714582098638",
"transactionId": "357542",
"status": "SUCCESS",
"message": "Payment Success.",
"currency": "USD",
"amount": "1.00",
"timestamp": 1625641107007,
"transactionType": "Checkout",
"transactionMethod": "CreditCard",
"sign": "398A352C5F065EC6B98AF96B84763F47",
"billingDescriptor": "test",
"email": "test@test.com",
"firstName": "test",
"lastName": "test"
}
通知参数:
参数名称 | 描述 |
---|---|
responseCode | 【返回结果码】 88:成功,28:交易取消,其余为失败。 |
merchantNo | 【商户号】 |
uniqueId | 【交易流水号】Pacypay返回都唯一交易流水号 |
transactionId | 【商户订单号】 |
status | 【支付状态】注:此状态不能用来判断交易是否成功 |
message | 【返回信息】 |
currency | 【交易币种】 |
amount | 【交易金额】 |
timestamp | 时间戳,本条信息返回时间 |
transactionType | 【交易类型】 |
transactionMethod | 【交易方法】 |
sign | 【数据签名】将接收到的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
持卡人邮箱 | |
firstName | 持卡人名字 |
lastName | 持卡人姓氏 |
退款通知回调
退款初审通知示例:
{
"merchantNo": "2003",
"transactionType": "Refund",
"transactionId": "639160895",
"uniqueId": "200321751765262818",
"refundId": "1222",
"merchantRefundId": null,
"tradeTime": "2021-07-05 17:06:52",
"refundTime": null,
"currency": "USD",
"amount": "1.0",
"refundAmount": "1.0",
"refundStatus": "1",
"remark": null,
"sign": "97aeda858d657802e926044ecf6d6ffb14f9cfac331a5746e0283647ec631759"
}
退款复审通知示例:
{
"merchantNo": "2003",
"transactionType": "Refund",
"transactionId": "639160895",
"uniqueId": "200321751765262818",
"refundId": "1222",
"merchantRefundId": null,
"tradeTime": "2021-07-05 17:06:52",
"refundTime": "2021-07-15 14:22:03",
"currency": "USD",
"amount": "1.0",
"refundAmount": "1.0",
"refundStatus": "3",
"remark": null,
"sign": "e44a9319a6ff518ccfd6152533086e9956a58a11141e77f711f290aee0a49773"
}
通知参数:
参数名称 | 描述 |
---|---|
merchantNo | 商户号 |
transactionType | 交易类型 详情见交易类型 |
transactionId | 商户订单号 |
uniqueId | 交易流水号 |
refundId | Pacypay退款唯一ID |
merchantRefundId | 商户退款唯一ID |
tradeTime | 交易时间 |
refundTime | 退款时间 |
currency | 交易币种 |
amount | 交易金额 |
refundAmount | 退款金额 |
refundStatus | 退款状态。3 :退款成功。 详见附表退款状态 |
remark | 备注 |
sign | 数据签名。将接收到的所有非空参数(除sign外),先按参数名进行ASCII码排序,然后将参数值拼接成字符串。再在字符串末尾加上SecretKey,最后再sha256签名 |
拒付通知回调
通知参数:
通知示例:
{
"merchantNo": "2003",
"transactionType": "Chargeback",
"transactionId": "20190423001",
"uniqueId": "2512194159533359313",
"chargebackId": "126628397660114944",
"tradeTime": "2019-04-15 09:53:33",
"chargebackTime": "2019-04-15 10:16:02",
"currency": "USD",
"amount": "1.00",
"chargebackCurrency": "USD",
"chargebackAmount": "1.00",
"chargebackStatus": "CHARGEBACK",
"chargebackCode": "000",
"remark": "不是本人交易"
}
参数名称 | 描述 |
---|---|
merchantNo | 【商户号】 |
transactionType | 【交易类型】 |
transactionId | 【商户订单号】 |
uniqueId | 【交易流水号】Pacypay返回都唯一交易流水号 |
chargebackId | 【拒付ID】 |
tradeTime | 【交易时间】 |
chargebackTime | 【拒付时间】 |
currency | 【交易币种】 |
amount | 交易金额 |
chargebackCurrency | 【拒付币种】 |
chargebackAmount | 【拒付金额】 |
chargebackStatus | 【拒付状态】详情可见拒付状态 |
chargebackStatusName | 【当前拒付状态】详情可见当前拒付状态 |
chargebackCode | 拒付码 |
remark | 持卡人名字 |
签名
请求支付接口参数示例:
{
"lastName": "pay",
"zipCode": "55429",
"country": "US",
"shippingCity": "Brooklyn Center",
"city": "Brooklyn Center",
"products": "products Name",
"shippingCountry": "US",
"shippingZipCode": "55429",
"currency": "EUR",
"state": "Minnesota",
"returnUrl": "http://pacypay.com/callback.php",
"email": "pacypay@yahoo.com",
"amount": "10",
"address": "Poe rd 3313 Poe rd",
"shippingLastName": "pay",
"shippingPhone": "7634969256",
"transactionId": "order521249591",
"transactionType": "Checkout",
"firstName": "pacy",
"phone": "7634969256",
"shippingFirstName": "pacy",
"notifyUrl": "http://pacypay.com/notify.php",
"shippingState": "Minnesota",
"shippingAddress": "Poe rd 3313 Poe rd",
"merchantNo": "2003",
"shippingEmail": "pacypay@yahoo.com"
}
参数名排序 :
address || amount || city || country || currency || email || firstName || lastName || merchantNo || notifyUrl || phone || products || returnUrl || shippingAddress || shippingCity || shippingCountry || shippingEmail || shippingFirstName || shippingLastName || shippingPhone || shippingState || shippingZipCode || state || transactionId || transactionType || zipCode || 商户密钥(SecretKey)
拼接字符串:
Poe rd 3313 Poe rd10Brooklyn CenterUSEURpacypay@yahoo.compacypay2003http://pacypay.com/notify.php7634969256products Namehttp://pacypay.com/callback.phpPoe rd 3313 Poe rdBrooklyn CenterUSpacypay@yahoo.compacypay7634969256Minnesota55429Minnesotaorder521249591Checkout55429商户密钥(SecretKey)
生成签名:
136c5dd1bd361942bb4c477fd4f2ee3e768ff65d658d53edca7b685c4c09e461
常见错误码
Descrition | Can reference | Descrition_CN | Action |
---|---|---|---|
Success | 支付成功,感谢您的支付 | 成功交易 | |
Payment Success. | 支付成功,感谢您的支付 | 成功交易 | |
Do not honor | 指发卡行认为该笔交易有风险,发卡行拒绝该笔交易。 | 发卡行不信任 | 1.再次尝试付款,您的发卡机构可能会接受您的付款。 2.联系自己的发卡机构,让发卡机构接受您的付款,然后再付款。 3. 换另一张卡付款 |
Non acceptance | 指发卡行认为该笔交易有风险,发卡行拒绝该笔交易。 | 发卡行不信任 | 1.再次尝试付款,您的发卡机构可能会接受您的付款。 2.联系自己的发卡机构,让发卡机构接受您的付款,然后再付款。 3. 换另一张卡付款 |
Order closed | 对不起,您的卡无法授权。请再次尝试付款,或致电您的发卡机构或更换另一张卡进行付款 | 交易被关闭 | 1.再次尝试付款,您的发卡机构可能会接受您的付款。 2.联系自己的发卡机构,让发卡机构接受您的付款,然后再付款。 3. 换另一张卡付款 |
Custom Fraud Screen Filter | 收单行风控拒绝。 一般是持卡人填写的账单信息或配送信息,有问题。 或者信用卡被检测有风险。 | 收单行拒绝 | 尝试换卡支付 |
Transaction declined,please try again later. | 对不起,您的卡无法授权。请再次尝试付款,或致电您的发卡机构或更换另一张卡进行付款 | 卡交易受限 | 1.再次尝试付款,您的发卡机构可能会接受您的付款。 2.联系自己的发卡机构,让发卡机构接受您的付款,然后再付款。 3. 换另一张卡付款 |
Transaction is not allowed in this period | 交易异常,有可能是卡种被限制 | 卡交易受限 | 1.再次尝试付款,您的发卡机构可能会接受您的付款。 2.联系自己的发卡机构,让发卡机构接受您的付款,然后再付款。 3. 换另一张卡付款 |
Transaction not permitted to cardholder | 发卡机构基于内部原因不允许针对该卡进行此项交易,例如该项交易源自特定的受限行业或国家。 | 卡交易受限 | 1.再次尝试付款,您的发卡机构可能会接受您的付款。 2.联系自己的发卡机构,让发卡机构接受您的付款,然后再付款。 3. 换另一张卡付款 |
Transaction not permitted on terminal | 发卡机构基于其技术来源或持卡人拒绝了交易。当此错误发生时,可能表示发卡机构不允许来自此特定商户或行业类型的交易。 | 卡交易受限 | 1.再次尝试付款,您的发卡机构可能会接受您的付款。 2.联系自己的发卡机构,让发卡机构接受您的付款,然后再付款。 3. 换另一张卡付款 |
Invalid transaction | 最常见和通用的发卡机构拒绝代码。此代码由发卡机构在未返回特定拒绝原因/代码时生成。 | 发卡行拒绝 | 1.再次尝试付款,您的发卡机构可能会接受您的付款。 2.联系自己的发卡机构,让发卡机构接受您的付款,然后再付款。 3. 换另一张卡付款 |
Payment Failed | 一般指持卡人3DS验证失败 | 风险订单 | 请持卡人正确填写3DS验证 |
Show Checkout. | 持卡人未完成交易(取消订单) | 持卡人未完成交易 | 请持卡人完成交易 |
User canceled | 持卡人未完成交易(取消订单) | 持卡人取消交易 | 请持卡人完成交易 |
Redirect by 3d | 持卡人未完成交易(取消订单) | 持卡人未完成3DS验证 | 请持卡人完成3DS验证 |
declined by route | 交易不允许送往收单行,原因是交易卡种不支持或交易域名没有审核通过 | 交易卡种不支持或交易域名没有审核通过 | 请持卡人使用支付所支持的卡种 |
Property website,can not be empty | 交易不允许送往收单行,原因是交易域名没有审核通过 | 交易域名没有审核通过 | 请商户联系支付提供商解决 |
Transaction url is invalid | 交易不允许送往收单行,原因是交易域名没有审核通过 | 交易域名没有审核通过 | 请商户联系支付提供商解决 |
declined by risk | 交易不允许送往收单行 | 风控拒绝,24小时内,同一卡号、邮箱、IP成功/失败次数过多 | 联系持卡人24小时后,再支付 |
Country and cardbin are inconsistent | 交易不允许送往收单行 | 持卡人的发卡国家与所填写的配送国家不一致 | 联系持卡人换卡或者更换配送国家,发卡国家与配送国家必须保持一致 |
Missing or invalid CardData data | 信用卡信息填写错误,收单行处理交易失败 | 信用卡信息填写错误 | 联系持卡人确认所填写的信用卡信息 |
Card No. is incorrect | 收单行处理交易失败 | 无效卡号 | 1. 请确认卡号是否正确。 2. 换另一张卡支付 |
Invalid Card Number | 收单行处理交易失败 | 无效卡号 | 1. 请确认卡号是否正确。 2. 换另一张卡支付 |
Invalid CVV2 | 收单行处理交易失败 | CVV错误 | 请输入正确的CVV2/CSC。 |
Insufficient funds | 收单行处理交易失败 | 余额不足 | 1. 联系持卡人确认卡上有足够的钱或使用其他卡。 2. 换另一张卡支付 |
expired card | 收单行处理交易失败 | 过期卡 | 联系持卡人确认有效期 |
Cardholder 3D Authentication failure! | 收单行处理交易失败 | 3DS验证失败 | 联系持卡人进行正确的3DS验证 |
Security | 收单行处理交易失败 | 3DS验证失败 | 联系持卡人进行正确的3DS验证 |
challenge/authentication failed | 收单行处理交易失败 | 3DS验证失败 | 联系持卡人进行正确的3DS验证 |
Failed 3DSecure Authentication | 收单行处理交易失败 | 3DS验证失败 | 联系持卡人进行正确的3DS验证 |
Error in decryption of PIN block | 持卡人的信用卡被限制使用。 | 信用卡被限制 | 请输入正确的PIN码。 |
Restricted Card/Retain Card | 持卡人使用了被发卡行标记的限制卡或挂失卡 | 限制卡/挂失卡 | 1.再次尝试付款,您的发卡机构可能会接受您的付款。 2.联系自己的发卡机构,让发卡机构接受您的付款,然后再付款。 3. 换另一张卡付款 |
Out of limit | 超过支付限额。请联系您的发卡机构解决问题或更换另一张卡进行支付 | 金额超过限制 | 联系支付提供商解决 |
Exceeds Payment Limit | 超过支付限额。请联系您的发卡机构解决问题或更换另一张卡进行支付 | 金额超过限制 | 1. 请联系发卡机构解决问题 2. 换另一张卡支付 |
Pick-up card | 使用了,银行标记的挂失卡 | 高风险卡 | 换另一张卡支付 |
No credit account | 这个是用户的信用卡账户过期或者已经被注销了 | 过期卡 | 1. 请联系发卡机构解决问题 2. 换另一张卡支付 |
Timeout/Retry | 收单机构和发卡机构之间发生超时。 | 超时交易 | 请持卡人尝试再次交易 |
Suspected fraud | 指发卡行认为该笔交易有风险,发卡行拒绝该笔交易。 | 发卡行不信任 | 请持卡人尝试再次交易或换卡支付 |
DM failed | 收单行风控拒绝。 一般是持卡人填写的账单信息或配送信息,有问题。 或者信用卡被检测有风险。 | 收单行拒绝 | 尝试换卡支付 |
Soft Decline - Authentication is Advised | 风控认为该笔交易需要进行3DS验证,但是交易并没有发生3DS验证 | 风控拒绝 | 尝试换卡支付,或再次支付 |
Authorization not permitted at this time due to policy | 持卡人的信用卡受限制,或者没开卡 | 发卡行拒绝 | 尝试换卡支付 |
closed account | 持卡人的信用卡账户异常 | 发卡行拒绝 | 尝试换卡支付 |
附录
交易类型
TransactionType | 交易类型 | 描述 |
---|---|---|
Sale | 直接支付 | 收银台由商户自己开发,持卡人可以在商户站内支付。注:商户必须有PCI(支付卡行业数据安全标准PCI DSS),才能使用。 |
Checkout | 收银台支付 | 持卡人需要在Pacypay的收银台上进行付款 |
Auth | 预授权-直接支付 | 持卡人在商户网站内付款成功后,该笔交易为授权成功,商户需要再次对此交易进行请款操作。授权时间为7填,七天后默认取消授权,金额退还(可设置为7填后,自动请款) |
Checkout-Auth | 预授权-收银台支付 | 持卡人在Pacypay收银台上付款成功后,该笔交易为授权成功,商户需要再次对此交易进行请款操作。授权时间为7填,七天后默认取消授权,金额退还(可设置为7填后,自动请款) |
Capture | 预授权–请款 | 交易在授权成功后,商户可对此交易进行请款 |
Void | 预授权–撤销 | 交易在授权成功后,商户可对此交易进行撤销 |
LinkSale | 链接支付 | 商户可以在Pacypay商户后天,生成付款链接,然后将此链接Email给持卡人,让持卡人通过这个链接进行付款 |
TokenizationSale | 直接支付-Token支付 | 持卡人付款成功后,商户会得到一个付款Token,方便同一个持卡人,下次再来付款时无需重新输入卡号,凭Token+CVV就能付款。 |
Refund | 请求退款接口 | 商户可以通过该接口,发起退款 |
交易状态
transferStatus | 描述 |
---|---|
FAILED | 交易失败 |
SUCCESS | 交易成功 |
PENDING | 处理中 |
CANCLED | 订单已取消 |
AUTHORIZE | 预授权订单 |
VOID | 预授权撤销 |
RISK_CTRL | 高风险订单 |
UNKNOW | 未知 |
退款状态
refundStatus | 描述 |
---|---|
0 | 退款申请待审核 (商户提出退款申请) |
1 | 退款申请成功 (审核通过,等待退款) |
2 | 退款失败 |
3 | 退款成功 |
5 | 退款审核失败 |
6 | 未退款 |
拒付状态
ChargebackStatus | 描述 |
---|---|
UNCHARGEBACK | 未拒付 |
CHARGEBACK | 已拒付 |
当前拒付状态
chargebackStatusName | 描述 |
---|---|
ADD_CHARGEBACK | 新增拒付 |
FIRST_SUCCESS | 第一次申诉成功 |
FIRST_FAIL | 第一次申诉失败 |
SECOND_FAIL | 第二次申诉失败 |
SECOND_SUCCESS | 第二次申诉成功 |
ACCEPT_CHARGEBACK | 接受拒付 |
CANCEL_CHARGEBACK | 取消拒付 |
申述状态
complainStatus | 描述 |
---|---|
0 | 未申诉 |
1 | 初次申诉中 |
2 | 初次申诉失败 |
4 | 二次申诉中 |
5 | 二次申诉失败 |
6 | 一次申诉成功 |
8 | 二次申诉超时 |
9 | 二次申诉成功 |
划款状态
TransferStatus | 描述 |
---|---|
UNTRANSFER | 未划款 |
TRANSFERED | 已划款 |