测试环境:http://test.ezrpro.cn:3309
正式环境:http://pay.ezrpro.cn
支付宝支付API
参数 | 类型 | 必填 | 长度 | 描述 | 示例值 |
AppId | string | 是 | 由 EZR 提供的 AppId | ||
Timestamp | string | 是 | 时间戳 | ||
Sign | string | 是 | 签名 | ||
TradeNo | string | 否 | 64 | 商户订单号 , 可包含字母、数字、下划线 | 20150320010101001 |
AuthCode | string | 是 | 32 | 支付授权码 | 28763443825664394 |
ShopCode | string | 是 | 16 | 门店代号 | SH001 |
TotalAmount | decime | 是 | 11 | 订单支付金额 | 88.88 |
Subject | string | 是 | 64 | 订单标题 | |
Body | string | 否 | 128 | 订单描述 | Iphone6 16G |
DiscountableAmount | decime | 否 | 11 | 参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围 [0.01,100000000] 。 如果该值未传入,但传入了【订单总金额】和【不可打折金额】,则该值默认为【订单总金额】 - 【不可打折金额】 | 8.88 |
UndiscountableAmount | decime | 否 | 11 | 不参与优惠计算的金额,单位为元,精确到小数点后两位,取值范围 [0.01,100000000] 。如果该值未传入,但传入了【订单总金额】和【可打折金额】,则该值默认为【订单总金额】 - 【可打折金额】 | 80.00 |
UserCode | string | 否 | 16 | 员工工号 | HY001 |
VipOldCode | string | 否 | 20 | 会员老卡号 | OLDHY001 |
OperatorId | string | 否 | 28 | 商户操作员编号 | yx_001 |
TerminalId | String | 否 | 32 | 商户机具终端编号 | NJ_T_001 |
AlipayStoreId | String | 否 | 32 | 支付宝的店铺编号 | 2016041400077000000003314986 |
GoodsDetail | GoodsDetail[] | 否 | 订单包含的商品列表信息,json格式,其它说明详见商品明细说明 |
字段 | 类型 | 必填 | 描述 | 示例值 |
goods_id | string | 是 | 商品的编号 | apple-01 |
goods_name | string | 是 | 商品名称 | ipad |
quantity | number | 是 | 商品数量 | 1 |
price | price | 是 | 商品单价,单位为元 | 2000 |
goods_category | string | 否 | 商品类目 | 34543238 |
body | string | 否 | 商品描述信息 | 特价手机 |
show_url | string | 否 | 商品的展示地址 | http://www.alipay.com/xxx.jpg |
字段 | 类型 | 描述 | 示例值 |
OrderId | long | 订单编号,用户获取 ezr 支付订单的编号 | 46 |
TradeNo | string | Ezr 的支付订单订单号(不是传入的商户订单号) | WP01126317041000000015 |
Code | string | 返回码 | 40004 |
Msg | string | 返回码描述 | Business Failed |
SubCode | string | 业务返回码 | aop.invalid-auth-token |
SubMsg | string | 业务返回码描述 | 无效的访问令牌 |
{ "AppId": "EZP", "Timestamp": "20160523235959", "Sign": "AB52DAC1832949EAC322FCFD7F515A987C9E8A67", "TradeNo": "2017050301001", "AuthCode": "282078355612576520", "ShopCode": "21015", "TotalAmount": 0.1, "Subject": "鞋子", "GoodsDetail": [ { "goods_id": "PR10000", "goods_name": "测试商", "quantity": 1, "price": "0.05" } ] }
{ "Success": true, "Msg": "操作成功", "Status": 200, "BusinessCode": 0, "ServerTime": " 2017-04-18T17:57:17.3094616+08:00", "Result": { "OrderId": 38, "TradeNo": " WP01953717041800000004", "Code": "10000", "IsError": false, "Msg": "SUCCESS", "SubCode": null, "SubMsg": null } }
字段 | 类型 | 描述 |
Brand | string | 所属品牌 |
TradeNo | string | 订单号 |
TotalFee | int | 订单金额(分) |
CashFee | int | 支付金额(分) |
TransactionId | string | 支付宝支付订单号 |
PayTime | string | 支付时间 |
TradeState | string | 订单状态 |
PayErrorCode | string | 支付错误代码 |
PayErrorMsg | string | 支付错误描述 |
字段 | 类型 | 必填 | 长度 | 描述 |
AppId | string | 是 | 由 EZR 提供的 AppId | |
Timestamp | string | 是 | 时间戳 | |
Sign | string | 是 | 签名 | |
ShopCode | string | 是 | 门店代号 | |
TradeNo | string | 特殊可选 | EZR 的商户订单号 | |
OutTradeNo | string | 特殊可选 | 商户生成支付传入的TradeNo |
字段 | 类型 | 描述 |
TradeNo | string | 支付订单号 |
OutTradeNo | string | 外部订单号 |
UserCode | string | 员工工号 |
TotalFee | Int | 订单金额(分) |
CashFee | Int | 支付金额(分) |
RefundFee | Int | 退款金额(分) |
CreateDate | DateTime | 订单创建时间 |
TradeState | string | 订单状态 |
PayErrorMsg | string | 订单支付失败原因 |
PayTime | DateTime | 订单支付时间 |
{ "AppId": "EZP", "Timestamp": "20160523235959", "Sign": "AB52DAC1832949EAC322FCFD7F515A987C9E8A67", "ShopCode": "HQ01S001", "TradeNo": "WP01631316101000000017" }
{ "TradeNo": "WP01631316101000000017", "OutTradeNo": "", "UserCode": "323231", "TotalFee": 1, "CashFee": 1, "RefundFee": 0, "CreateDate": "2016-10-10T16:58:15", "TradeState": "SUCCESS", "PayErrorMsg": "", "PayTime": "2016-10-10T16:58:32" }
字段 | 类型 | 必填 | 长度 | 描述 |
AppId | string | 是 | 由 EZR 提供的 AppId | |
Timestamp | string | 是 | 时间戳 | |
Sign | string | 是 | 签名 | |
TradeNo | string | 否 | Ezr 支付订单号,用户查询 | |
BeginTime | string | 否 | 查询开始时间时间戳,秒 | |
EndTime | string | 否 | 查询结束时间时间戳,秒 | |
ShopCode | string | 是 | 门店 code | |
PageIndex | Int | 否 | 从 1 开始的页码(默认值 1 ) | |
PageSize | Int | 否 | 分页条数(默认值 100 ) |
字段 | 类型 | 描述 |
OrderId | long | 订单编号,用户获取 ezr 支付订单的编号 |
PayType | Int | 支付方式, 默认值 2 支付宝支付 |
TradeNo | string | 支付订单号 |
OutTradeNo | string | 外部订单号 |
UserCode | string | 员工工号 |
TotalFee | Int | 订单金额(分) |
CashFee | Int | 支付金额(分) |
RefundFee | Int | 退款金额(分) |
CreateDate | DateTime | 订单创建时间 |
TradeState | string | 订单状态 |
PayErrorMsg | string | 订单支付失败原因 |
PayTime | DateTime | 订单支付时间 |
VipMobileNo | string | 会员手机号 |
VipName | string | 会员名字 |
{ "AppId": "EZP", "Timestamp": "20160523235959", "Sign": "AB52DAC1832949EAC322FCFD7F515A987C9E8A67", "ShopCode": "HQ01S001", "PageIndex": 1, "PageSize": 20 }
{ "Success": false, "Msg": "操作成功", "Status": 200, "ServerTime": "2016-09-18T16:39:01.3853029+08:00", "Count": 1, "Result": [ { "OrderId": 79, "PayType": 0, "TradeNo": "WP01366216091800000001", "UserCode": "323231", "TotalFee": 1, "CashFee": 0, "RefundFee": 0, "CreateDate": "2016-09-18T15:15:38", "TradeState": "FAILED", "PayErrorMsg": 支付失败,请刷新付款码后重试, "PayTime": "2016-09-18T15:15:38", "VipMobileNo": "18302188990", "VipName": "cycle" } ], "PageTotal": 1, "BusinessCode": 0 }
字段 | 类型 | 必填 | 长度 | 描述 |
AppId | String | 是 | 由 EZR 提供的 AppId | |
Timestamp | String | 是 | 时间戳 | |
Sign | String | 是 | 签名 | |
TradeNo | String | 是 | Ezr 支付订单号 | |
RefundFee | Int | 是 | 退款金额 ( 退款金额不能大于可退金额 , 单位:分 ) | |
GoodsDetail | GoodsDetail[] | 否 | 订单包含的商品列表信息,json格式,其它说明详见商品明细说明 |
字段 | 类型 | 必填 | 描述 | 示例值 |
goods_id | string | 是 | 商品的编号 | apple-01 |
goods_name | string | 是 | 商品名称 | ipad |
quantity | number | 是 | 商品数量 | 1 |
price | price | 是 | 商品单价,单位为元 | 2000 |
goods_category | string | 否 | 商品类目 | 34543238 |
body | string | 否 | 商品描述信息 | 特价手机 |
show_url | string | 否 | 商品的展示地址 | http://www.alipay.com/xxx.jpg |
{ "AppId": "EZP", "Timestamp": "20160523235959", "Sign": "AB52DAC1832949EAC322FCFD7F515A987C9E8A67", "TradeNo": 21, "RefundFee": 50 }
{ "Success": true, "Msg": "操作成功", "Status": 200, "BusinessCode": 0, "ServerTime": "2016-09-18T17:01:01.3977386+08:00", "Result": "WPR01408316091800000001" }
字段 | 类型 | 必填 | 长度 | 描述 |
AppId | string | 是 | 由 EZR 提供的 AppId | |
Timestamp | string | 是 | 时间戳 | |
Sign | string | 是 | 签名 | |
RefundNo | string | 否 | Ezr 支付退款单号,用户查询 | |
BeginTime | string | 否 | 查询开始时间时间戳,秒 | |
EndTime | string | 否 | 查询结束时间时间戳,秒 | |
ShopCode | string | 是 | 门店 code | |
PageIndex | Int | 否 | 从 1 开始的页码,默认值: 1 | |
PageSize | Int | 否 | 分页条数,默认值: 100 |
字段 | 类型 | 描述 |
OrderRefundId | long | 退款订单编号 |
RefundType | Int | 退款支付方式: 默认 值 2 支付宝支付 |
RefundNo | string | 支付退款单号 |
UserCode | string | 员工工号 |
CashFee | Int | 支付金额(分) |
RefundFee | Int | 退款金额(分) |
CreateDate | DateTime | 订单创建时间 |
RefundStatus | string | 退款单状态 |
VipMobileNo | string | 会员手机号 |
VipName | string | 会员名字 |
{ "AppId": "EZP", "Timestamp": "20160523235959", "Sign": "AB52DAC1832949EAC322FCFD7F515A987C9E8A67", "ShopCode": "HQ01S001", "PageIndex": 1, "PageSize": 20 }
{ "Success": false, "Msg": "操作成功", "Status": 200, "ServerTime": "2016-09-18T17:07:36.1546628+08:00", "Count": 2, "Result": [ { "OrderRefundId": 6, "RefundType": 0, "RefundNo": "WPR01408316091800000001", "UserCode": "323231", "CashFee": 1, "RefundFee": 1, "CreateDate": "2016-09-18T17:01:01", "RefundStatus": "PROCESSING", "VipMobileNo": "18302188990", "VipName": "cycle" }, { "OrderRefundId": 5, "RefundType": 0, "RefundNo": "WPR01944916091300000003", "UserCode": null, "CashFee": 1, "RefundFee": 1, "CreateDate": "2016-09-13T19:40:01", "RefundStatus": "PROCESSING", "VipMobileNo": "18302188990", "VipName": "cycle" } ], "PageTotal": 1, "BusinessCode": 0 }
字段 | 类型 | 必填 | 长度 | 描述 |
AppId | string | 是 | 由 EZR 提供的 AppId | |
Timestamp | string | 是 | 时间戳 | |
Sign | string | 是 | 签名 | |
ShopCode | string | 是 | 门店代号 | |
TradeNo | string | 特殊可选 | EZR 的商户订单号 | |
OutTradeNo | string | 特殊可选 | 商户生成支付传入的TradeNo |
字段 | 类型 | 描述 | 示例值 |
TradeNo | string | 支付宝交易号 | 2013112011001004330000121536 |
OutTradeNo | string | 外部订单号 | AP01631316101000000017 |
RetryFlag | string | 是否需要重试 | N |
Action | string | 本次撤销触发的交易动作 close:关闭交易,无退款 refund:产生了退款 | close |
{ "AppId": "EZP", "Timestamp": "20160523235959", "Sign": "AB52DAC1832949EAC322FCFD7F515A987C9E8A67", "ShopCode": "HQ01S001", "TradeNo": "WP01631316101000000017" }
{ "TradeNo": "AP01631316101000000017", "OutTradeNo": "", "RetryFlag": "N", "Action": "close", "Code": 1000, "Msg": "Success" }
错误码 | 错误描述 | 解决方案 |
AQC.SYSTEM_ERROR | 系统错误 | 请使用相同的参数再次调用 |
ACQ.INVALID_PARAMETER | 参数无效 | 请求参数有错,重新检查请求后,再调用撤销 |
ACQ.SELLER_BALANCE_NOT_ENOUGH | 商户的支付宝账户中无足够的资金进行撤销 | 商户支付宝账户充值后重新发起撤销即可 |
ACQ.REASON_TRADE_BEEN_FREEZEN | 当前交易被冻结,不允许进行撤销 | 联系支付宝小二,确认该笔交易的具体情况 |
错误码 | 错误描述 | 解决方案 |
ACQ.SYSTEM_ERROR | 接口返回错误 | 请立即调用查询订单API,查询当前订单的状态,并根据订单状态决定下一步的操作,如果多次调用依然报此错误码,请联系支付宝客服 |
ACQ.INVALID_PARAMETER | 参数无效 | 检查请求参数,修改后重新发起请求 |
ACQ.ACCESS_FORBIDDEN | 无权限使用接口 | 未签约条码支付或者合同已到期 |
ACQ.EXIST_FORBIDDEN_WORD | 订单信息中包含违禁词 | 修改订单信息后,重新发起请求 |
ACQ.TOTAL_FEE_EXCEED | 订单总金额超过限额 | 修改订单金额再发起请求 |
ACQ.PAYMENT_AUTH_CODE_INVALID | 支付授权码无效 | 用户刷新条码后,重新扫码发起请求 |
ACQ.CONTEXT_INCONSISTENT | 交易信息被篡改 | 更换商家订单号后,重新发起请求 |
ACQ.TRADE_HAS_SUCCESS | 交易已被支付 | 确认该笔交易信息是否为当前买家的,如果是则认为交易付款成功,如果不是则更换商家订单号后,重新发起请求 |
ACQ.TRADE_HAS_CLOSE | 交易已经关闭 | 更换商家订单号后,重新发起请求 |
ACQ.BUYER_BALANCE_NOT_ENOUGH | 买家余额不足 | 买家绑定新的银行卡或者支付宝余额有钱后再发起支付 |
ACQ.BUYER_BANKCARD_BALANCE_NOT_ENOUGH | 用户银行卡余额不足 | 建议买家更换支付宝进行支付或者更换其它付款方式 |
ACQ.ERROR_BALANCE_PAYMENT_DISABLE | 余额支付功能关闭 | 用户打开余额支付开关后,再重新进行支付 |
ACQ.BUYER_SELLER_EQUAL | 买卖家不能相同 | 更换买家重新付款 |
ACQ.TRADE_BUYER_NOT_MATCH | 交易买家不匹配 | 更换商家订单号后,重新发起请求 |
ACQ.BUYER_ENABLE_STATUS_FORBID | 买家状态非法 | 用户联系支付宝小二(联系支付宝文档右边的客服头像或到支持中心咨询),确认买家状态为什么非法 |
ACQ.PULL_MOBILE_CASHIER_FAIL | 唤起移动收银台失败 | 用户刷新条码后,重新扫码发起请求 |
ACQ.MOBILE_PAYMENT_SWITCH_OFF | 用户的无线支付开关关闭 | 用户在PC上打开无线支付开关后,再重新发起支付 |
ACQ.PAYMENT_FAIL | 支付失败 | 用户刷新条码后,重新发起请求,如果重试一次后仍未成功,更换其它方式付款 |
ACQ.BUYER_PAYMENT_AMOUNT_DAY_LIMIT_ERROR | 买家付款日限额超限 | 更换买家进行支付 |
ACQ.BEYOND_PAY_RESTRICTION | 商户收款额度超限 | 联系支付宝小二提高限额(联系电话:0571-88158090) |
ACQ.BEYOND_PER_RECEIPT_RESTRICTION | 商户收款金额超过月限额 | 联系支付宝小二提高限额(联系电话:0571-88158090) |
ACQ.BUYER_PAYMENT_AMOUNT_MONTH_LIMIT_ERROR | 买家付款月额度超限 | 让买家更换账号后,重新付款或者更换其它付款方式 |
ACQ.SELLER_BEEN_BLOCKED | 商家账号被冻结 | 联系支付宝小二,解冻账号(联系电话:95188) |
ACQ.ERROR_BUYER_CERTIFY_LEVEL_LIMIT | 买家未通过人行认证 | 让用户联系支付宝小二并更换其它付款方式(联系电话:95188) |
ACQ.PAYMENT_REQUEST_HAS_RISK | 支付有风险 | 更换其它付款方式 |
ACQ.NO_PAYMENT_INSTRUMENTS_AVAILABLE | 没用可用的支付工具 | 更换其它付款方式 |
ACQ.USER_FACE_PAYMENT_SWITCH_OFF | 用户当面付付款开关关闭 | 让用户在手机上打开当面付付款开关 |
ACQ.INVALID_STORE_ID | 商户门店编号无效 | 检查传入的门店编号是否有效 |