帮助中心

聚合支付API

2021-07-05

支付api地址


测试环境:http://test.ezrpro.cn:3309

  Q1环境:http://pay-q1.ezrpro.cn:8086

正式环境:http://pay.ezrpro.cn


签名算法


参与签名的字段包括AppId, Timestamp(时间戳),Token 以及业务参数。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均区分大小写。对string1作sha1加密,然后转换成小写,字段名和字段值都采用原始值,不进行URL 转义。


即signature=sha1(string1)。 


示例


支付:


AppId = EZP

Token = HH1232D

Timestamp = 20160523235959

ShopCode = HQ01S001

UserCode = KB1001

AuthCode = 130115575166786427

Body = 刷卡支付测试

SpbillCreateIp = 127.0.0.1

TotalAmount = 1

VipOldCode = EZ0541688


对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1:


AppId=EZP&AuthCode=130115575166786427&OrderBody=刷卡支付测试&ShopCode=HQ01S001&SpbillCreateIp=127.0.0.1&Timestamp=20160523235959&Token=HH1232D&TotalAmount=1&UserCode=KB1001&VipOldCode=EZ0541688


对string1进行sha1签名,转成小写,得到signature:25a14a34dc6c18bd3da622e24292570d5276cdc3


注意事项


1. 空值不参与签名

2. 属性值区分大小写

3. Sha1之后需要转换成小写


接口返回码说明(BusinessCode)


0 :成功

500:业务异常

4001:参数错误


公共请求参数:

参数名必选类型说明
AppIdstringappid
Signstring签名
Timestampstring时间戳
ShopCodestring门店编号
UserCodestring员工编号


1. 支付


请求URL:

  • /upay/pay

请求方式:

  • POST



请求参数:

参数名必选类型说明
AuthCodestring付款码
OutTradeNostring商户订单号
Bodystring订单描述
TotalAmountint订单总金额(分)
SpbillCreateIpstring客户端ip
VipOldCodestring会员老卡号
PayTypestring支付方式 数字的字符串 “0”-微信 “2”-支付宝
TerminalIdstring终端设备号
GoodsDetaillist商品列表
DiscountAmountint参与优惠计算的金额(分)
  • GoodsDetail

参数名必选类型说明
GoodsIdstring商品编码
GoodsNamestring商品名称
Quantitystring商品数量
Priceint商品单价(分)
GoodsCategorystring商品分类
Bodystring商品描述
ShowUrlstring商品展示地址

返回示例

  1. {

  2.    "Success": true,

  3.    "Msg": "操作成功",

  4.    "Status": 200,

  5.    "BusinessCode": 0,

  6.    "ServerTime": "2019-08-23 14:11:09",

  7.    "Result": {

  8.        "PayType": 0,

  9.        "PayerId": "oV5mxvz2KRy_Ey8DEIulG0HQpyeU",

  10.        "PayerLogonId": "159****5620",

  11.        "TerminalId": "test001TerminalId",

  12.        "UserCode": null,

  13.        "VoucherDetailList": null,

  14.        "TradeNo": "WP01085519082300000001",

  15.        "OutTradeNo": "POS1566540689295",

  16.        "ChannelTradeNo": "4200000380201908236033064095",

  17.        "TotalAmount": 0.01,

  18.        "TotalMerchantContribute": 0,

  19.        "TotalOtherContribute": 0,

  20.        "IncomeAmount": 0.01,

  21.        "FinishTime": "2019-08-23 14:11:06",

  22.        "ChannelFinishTime": "2019-08-23 14:11:31",

  23.        "OrderState": "SUCCESS",

  24.        "ErrorCode": null,

  25.        "ErrorCodeDesc": null

  26.    }

  27. }

返回参数说明

参数名类型说明
PayTypeint支付方式 0-微信 2-支付宝
PayerIdstring支付服务商下的用户id
PayerLogonIdstring支付宝的时候会有返回(支付宝账号 示例:159**5620)
TerminalIdstring终端设备号
VoucherDetailListlist优惠信息
TradeNostringEZR订单号
OutTradeNostring商户订单号
ChannelTradeNostring支付服务商单号
TotalAmountint订单总金额(分)
TotalMerchantContributeint商户出资金额 (分)
TotalOtherContributeint其他出资方出资金额(分)
IncomeAmountint进账金额(IncomeAmount = TotalAmount - TotalMerchantContribute)
FinishTimestringEZR完成时间
ChannelFinishTimestring支付服务商完成时间
OrderStatestring订单状态
ErrorCodestring错误码
ErrorCodeDescstring错误描述
  • VoucherDetailList


参数名类型说明
Idstring券id
Namestring券名称
Amountint优惠金额 (分)
MerchantContributeint商户出资金额 (分)
OtherContributeint其他出资方出资金额(分)

备注

OrderState 订单状态描述
USERPAYING支付中
SUCCESS支付成功
PAYERROR支付失败
NOTPAY未支付 这里会有个情况 用户支付成功 微信返回超时并且查单超时(查单三次) 这里要调用撤单


2.查询


简要描述:

  • 查询订单信息包含退款

请求URL:

  • /upay/query

请求方式:

  • POST

请求参数:

参数名必选类型说明
TradeNostringEZR订单号(和商户订单号二选一)
 OutTradeNo 否 string 商户订单号(和EZR  订单号二选一)
RefundNostring退款单号 多个用英文逗号,隔开

返回示例

  1. {

  2.    "Success": true,

  3.    "Msg": "操作成功",

  4.    "Status": 200,

  5.    "BusinessCode": 0,

  6.    "ServerTime": "2019-08-18 17:58:56",

  7.    "Result": {

  8.        "TradeNo": "AP01106119081800000002",

  9.        "OutTradeNo": "POS1566114508737",

  10.        "ChannelTradeNo": "2019081822001483430542089451",

  11.        "UserCode": null,

  12.        "TotalAmount": 1,

  13.        "PayAmount": 1,

  14.        "RefundAmount": 1,

  15.        "OrderState": "SUCCESS",

  16.        "PayType": 0,

  17.        "PayTime": "2019-08-18 15:48:38",

  18.        "TerminalId": "test001TerminalId",

  19.        "PayerId": "oV5mxvz2KRy_Ey8DEIulG0HQpyeU",

  20.        "VoucherDetailList": null,

  21.        "RefundInfoList": [

  22.            {

  23.                "RefundNo": "APR01286419081800000002",

  24.                "RefundAmount": 1,

  25.                "RefundState": "SUCCESS",

  26.                "CreateTime": "2019-08-18 15:49:35"

  27.            }

  28.        ]

  29.    }

  30. }


返回参数说明

参数名类型说明
TradeNointEZR订单号
OutTradeNoint商户订单号
ChannelTradeNoint支付服务商支付单号
UserCodeint员工编号
TotalAmountint订单金额(分)
PayAmountint支付金额(分)
RefundAmountint退款金额(分)
OrderStatestring订单状态
PayTypeint支付方式 0-微信 2-支付宝
PayTimestring付款时间
TerminalIdstring终端设备号
PayerIdstring支付服务商下的用户id
VoucherDetailListint优惠详情
RefundInfoListint退款详情


  • RefundInfoList

参数名类型说明
RefundNointEZR退款单号
RefundAmountint退款金额(分)
RefundStatestring退款状态
CreateTimestring创建时间

备注

RefundState 退款状态描述
SUCCESS退款成功
PROCESSING退款中


3.撤销

简要描述:

  • 撤销订单

请求URL:

  • /upay/cancel

请求方式:

  • POST

请求参数:

参数名必选类型说明
TradeNostringEZR订单号

返回示例

  1. {

  2.    "Success": true,

  3.    "Msg": "操作成功",

  4.    "Status": 200,

  5.    "BusinessCode": 0,

  6.    "ServerTime": "2019-08-17 17:52:38",

  7.    "Result": {

  8.        "TradeNo": "AP01625319081700000015",

  9.        "OutTradeNo": "POS1566035451985",

  10.        "ReCall": "N",

  11.        "ReverseState": "SUCCESS",

  12.        "ReverseDesc": "refund",

  13.        "ErrorCode": null,

  14.        "ErrorCodeDesc": null,

  15.        "FinishTime": "2019-08-17 17:52:30"

  16.    }

  17. }

返回参数说明

参数名类型说明
TradeNostringEZR订单号
OutTradeNostring商户订单号
ReCallstring是否需要重试 N-不需要 Y-需要
ReverseStatestring撤销状态
ReverseDescstring撤销描述 支付宝此字段会有返回 refund-已支付退款 close-未支付关闭
ErrorCodeint错误码
ErrorCodeDescint错误描述
FinishTimeint完成时间

备注

ReverseState 撤销状态描述
SUCCESS撤销成功


4.申请退款


简要描述:

  • 申请退款

请求URL:

  • /upay/refund/apply

请求方式:

  • POST

请求参数:

参数名必选类型说明
TradeNostringEZR订单号
RefundAmountint退款金额(分)
RefundGoodsInfoListlist退款商品
  • RefundGoodsInfoList

参数名必选类型说明
GoodsIdstring商品编号
GoodsNamestring商品名称
Priceint商品价格(分)
Quantityint数量

返回示例

  1. {

  2.    "Success": true,

  3.    "Msg": "操作成功",

  4.    "Status": 200,

  5.    "BusinessCode": 0,

  6.    "ServerTime": "2019-08-18 15:49:35",

  7.    "Result": {

  8.        "TrandeNo": "AP01106119081800000002",

  9.        "OutTrandeNo": "POS1566114508737",

  10.        "ChannelTradeNo": "2019081822001483430542089451",

  11.        "RefundNo": "APR01286419081800000002",

  12.        "FinishTime": "2019-08-18 15:49:35",

  13.        "RefundState": "PROCESSING"

  14.    }

  15. }

返回参数说明

参数名类型说明
TrandeNostringEZR订单号
OutTrandeNostring商户支付订单号
ChannelTradeNostring支付服务商支付单号
RefundNostring退款单号
FinishTimestring创建退款单时间
RefundStatestring申请退款状态

备注

RefundState 退款状态描述
PROCESSING退款中 需要到EZR后台确认退款




5.退款


简要描述:

  • 退款

请求URL:

  • /upay/refund

请求方式:

  • POST

请求参数:

参数名必选类型说明
OutRefundNostring商户退款单号
TradeNostringEZR订单号
RefundAmountint退款金额(分)
RefundReasonstring退款原因
TerminalIdstring终端设备号
RefundGoodsInfoListlist退款商品
  • RefundGoodsInfoList



参数名必选类型说明
GoodsIdstring商品编号
GoodsNamestring商品名称
Quantityint数量
Priceint商品价格(分)
GoodsCategorystring商品分类
Bodystring商品描述
ShowUrlstring商品展示地址



返回示例

  1. {

  2.    "Success": true,

  3.    "Msg": "操作成功",

  4.    "Status": 200,

  5.    "BusinessCode": 0,

  6.    "ServerTime": "2019-08-18 15:49:35",

  7.    "Result": {

  8.        "TrandeNo": "AP01106119081800000002",

  9.        "OutTrandeNo": "POS1566114508737",

  10.        "ChannelTradeNo": "2019081822001483430542089451",

  11.        "RefundNo": "APR01286419081800000002",

  12.        "OutRefundNo": "testrefundno",

  13.        "ChannelRefundNo": "testchannelrefundno",

  14.        "RefundAmount": 1,

  15.        "MerchantDisctAmt": 0,

  16.        "ChannelDisctAmt": 0,

  17.        "PayerId": "test",

  18.        "PayerLogonId": "test",

  19.        "FinishTime": "2019-08-18 15:49:35",

  20.        "ChannelFinishTime": "2019-08-18 15:49:35",

  21.        "RefundState": "SUCCESS"

  22.    }

  23. }

返回参数说明

参数名类型说明
TrandeNostringEZR订单号
OutTrandeNostring商户支付订单号
ChannelTradeNostring支付服务商支付单号
RefundNostring退款单号
OutRefundNostring商户退款单号
ChannelRefundNostring支付服务商退款单号
RefundAmountint退款金额(分)
MerchantDisctAmtint退款中包含商户优惠金额(分)
ChannelDisctAmtint退款中包含平台优惠金额(分)
PayerIdstring支付宝的时候会有返回 支付服务商下的用户id
PayerLogonIdstring支付宝的时候会有返回(支付宝账号 示例:159**5620)
FinishTimestringEZR退款时间
ChannelFinishTimestring支付服务商退款时间
RefundStatestring退款状态

备注

RefundState 退款状态描述
SUCCESS退款成功


2791