NAV
shell

直接支付

支付步骤

该接口支付采用服务器端对接,即 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 【账单邮政编码】
email 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: 发卡行承担
email 【持卡人邮箱】
firstName 【持卡人名字】
lastName 【持卡人姓氏】

注:验证签名时,需要按照接口实际返回的参数为准。

收银台支付

支付步骤

  1. 商户发起交易请求,使用http协议,通过浏览器重定向到支付系统。
  2. 支付系统处理交易请求,并提交到银行进行消费交易。
  3. 交易完成后,支付系统把支付结果相关参数重定向到商户的交易返回地址,并发送交易结果通知。

接口地址

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 位 【账单邮政编码】
email 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: 发卡行承担
email 【持卡人邮箱】
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 【账单描述】
email 【持卡人邮箱】
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 【账单描述】
email 【持卡人邮箱】
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 交易方法
email 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 【账单电话】
email 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 【账单电话】
email 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: 发卡行承担
email 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 交易类型
email 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签名
email 持卡人邮箱
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 已划款