ePay V2 接口文档整理

1. 协议规则

项目值
请求数据格式application/x-www-form-urlencoded
返回数据格式JSON
签名算法SHA256WithRSA
字符编码UTF-8

2. V2 升级说明

  1. V2 全面使用 RSA 签名,V1 保留 MD5 签名。
  2. V2 改用新的接口地址,支持退款、代付等能力。
  3. V2 增加 timestamp 参数和返回值,用于时间戳校验。
  4. V1/V2 下单接口均支持可选参数 channel_id:传入后指定支付通道,不传时按商户路由策略轮询选路。

3. RSA 密钥对

  • 在商户后台的 API 信息页面生成商户 RSA 密钥对。
  • 商户需要妥善保管私钥。
  • 对接时通常会同时使用平台公钥和商户私钥。

4. 签名规则

4.1 请求签名

  1. 取所有非空参数。
  2. 排除 sign、sign_type。
  3. 排除数组、文件、二进制等非普通字段。
  4. 按参数名 ASCII 升序排序。
  5. 以 k=v&k2=v2... 的方式拼接原文。
  6. 使用商户私钥进行 SHA256WithRSA 签名。

4.2 验签规则

  1. 按相同规则整理原文。
  2. 使用平台公钥验证签名。
  3. 请求和响应都应做签名校验。

5. 支付方式列表

调用值描述
alipay支付宝
wxpay微信支付
qqpayQQ 钱包
unionpay云闪付(银联二维码)

5.1 通联收银宝通道(已开通)

平台已对接通联收银宝统一下单 / H5 收银台。下单时通过 type + channel_id 指定产品形态(部分商户关闭了轮询,必须传 channel_id)。

场景type推荐 channel_id通道名称返回与用法
云闪付动态码(用户用云闪付 App 扫)unionpay5通联云闪付返回 qrcode(银联码),用云闪付扫码
微信扫码(PC 网站展示码)wxpay6通联微信扫码返回 qrcode/payurl,用微信扫码
H5 拉起微信/支付宝wxpay7通联H5收银台返回 payurl(形如 https://api.speed-pay.org/allinpay/h5/{trade_no}),手机浏览器打开后按环境拉起微信或支付宝
  • 在线联调:V1 mapi 测试工具(可直接展示二维码 / H5 链接)· 订单查询(V1/V2)
  • channel_id 以商户后台「可用通道」为准;上表为正式环境当前平台通道编号
  • 云闪付码需用云闪付 App 扫;微信扫码码需用微信扫;H5 链接建议在微信/支付宝内打开
# 云闪付 U01 示例(V1 mapi)
curl -X POST "https://api.speed-pay.org/mapi.php" \
  -d "pid=1001" \
  -d "type=unionpay" \
  -d "channel_id=5" \
  -d "out_trade_no=ORDER20261108001" \
  -d "name=云闪付测试" \
  -d "money=0.01" \
  -d "notify_url=https://merchant.example.com/notify" \
  -d "return_url=https://h5.speed-pay.org/" \
  -d "clientip=127.0.0.1" \
  -d "sign_type=MD5" \
  -d "sign=YOUR_MD5_SIGN"

# 通联 H5 收银台示例
curl -X POST "https://api.speed-pay.org/mapi.php" \
  -d "pid=1001" \
  -d "type=wxpay" \
  -d "channel_id=7" \
  -d "out_trade_no=ORDER20261108002" \
  -d "name=H5支付测试" \
  -d "money=0.01" \
  -d "notify_url=https://merchant.example.com/notify" \
  -d "return_url=https://h5.speed-pay.org/" \
  -d "clientip=127.0.0.1" \
  -d "sign_type=MD5" \
  -d "sign=YOUR_MD5_SIGN"
# 成功时返回 payurl=https://api.speed-pay.org/allinpay/h5/PAY...

6. 设备类型列表

调用值描述
pc电脑浏览器
mobile手机浏览器
qq手机 QQ 内浏览器
wechat微信内浏览器
alipay支付宝客户端

7. 接口总览

入口说明
submit.php / /api/pay/submit页面跳转支付
/api/pay/createAPI 创建订单
/api/pay/query查询订单
/api/pay/notify支付结果通知
/api/pay/refund退款
/api/pay/refundquery退款查询
/api/pay/close关闭订单
/api/merchant/info查询商户信息
/api/merchant/orders查询商户订单
/api/transfer/submit提交转账
/api/transfer/query查询转账
/api/transfer/balance查询转账余额

8. 页面跳转支付

8.1 接口说明

  • URL:https://api.speed-pay.org/api/pay/submit
  • 用途:前台页面跳转支付
  • 请求方式:POST
  • type 可不传,不传时进入收银台
  • channel_id 可不传,不传时按商户路由策略轮询选路

8.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
支付方式type否Stringalipay支付方式列表
商户订单号out_trade_no是String20160806151343349商户系统内部订单号
异步通知地址notify_url是Stringhttps://api.speed-pay.org/notify_url.php异步通知地址
跳转通知地址return_url是Stringhttps://api.speed-pay.org/return_url.php页面跳转通知地址
商品名称name是StringVIP会员商品名称
商品金额money是String1.00单位:元
业务扩展参数param否String支付后原样返回
通道IDchannel_id是Int2指定支付通道ID;不传时按商户路由策略轮询选路;传入后必须在当前商户可用路由内,且参与签名
时间戳timestamp是String1713660000用于时间校验
签名字符串sign是String...签名结果
签名类型sign_type是StringRSA签名类型

9. API 创建订单

9.1 接口说明

  • URL:https://api.speed-pay.org/api/pay/create
  • 用途:服务器端统一创建订单
  • 请求方式:POST
  • channel_id 可不传,不传时按商户路由策略轮询选路

9.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
接口类型method是Stringwebweb、h5、jump、jsapi、app、scan、mini、mp
设备类型device否Stringpcpc、mobile、qq、wechat、alipay
支付方式type是Stringalipay支付方式列表
商户订单号out_trade_no是String20160806151343349商户系统内部订单号
异步通知地址notify_url是Stringhttps://api.speed-pay.org/notify_url.php异步通知地址
跳转通知地址return_url否Stringhttps://api.speed-pay.org/return_url.php页面跳转通知地址
商品名称name是StringVIP会员商品名称
商品金额money是String1.00单位:元
用户IP地址clientip否String127.0.0.1用户发起支付的 IP
业务扩展参数param否String支付后原样返回
授权码auth_code否StringJSAPI / 刷脸类场景使用
微信 OpenIDopenid / sub_openid / wx_openid否String微信 JSAPI/公众号支付身份
微信小程序 OpenIDmini_openid否String微信小程序支付身份
支付宝用户 IDbuyer_id / buyer_open_id否String支付宝 JSAPI/小程序支付身份
应用 IDsub_appid / op_app_id否String服务商或代调用场景应用 ID
渠道IDchannel_id是Int2指定支付通道ID;不传时按商户路由策略轮询选路;传入后必须在当前商户可用路由内,且参与签名
时间戳timestamp是String1713660000用于时间校验
签名字符串sign是String...签名结果
签名类型sign_type是StringRSA签名类型

9.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt00 为成功,其它值为失败
返回信息msgStringsuccess提示信息
平台订单号trade_noString2016080622555342651易支付订单号
返回类型pay_typeStringqrcode返回内容类型
支付内容pay_infoMixed跳转链接、二维码内容或 JSAPI 参数
时间戳timestampString1713660000返回时间戳
签名字符串signString...签名结果
签名类型sign_typeStringRSA签名类型

9.4 pay_type 说明

值说明
jump跳转链接
htmlHTML 片段
qrcode二维码内容
urlscheme小程序 URL Scheme
jsapiJSAPI 参数
appAPP 调起参数
scan扫码支付结果信息
identity需要先跳转身份承接页获取 openid、mini_openid 或 buyer_id

9.5 Speed Pay 身份授权扩展

当前 Speed Pay 实现中,V2 创建订单如果路由到需要用户身份的产品,例如微信公众号、微信小程序、支付宝小程序,但请求没有传 openid、mini_openid、buyer_id 等字段,会返回身份承接地址:

{
  "code": 0,
  "msg": "identity_required",
  "trade_no": "",
  "pay_type": "identity",
  "pay_info": "http://example.com/cashier/identity/xxx",
  "identity_required": 1,
  "identity_url": "http://example.com/cashier/identity/xxx",
  "resume_token": "xxx",
  "timestamp": "1778810000",
  "sign": "...",
  "sign_type": "RSA"
}

调用方收到 identity_required=1 后,应跳转 identity_url。页面跳转支付 /api/pay/submit 遇到身份缺失时会直接重定向到该承接页。

10. 订单查询

10.1 接口说明

  • URL:https://api.speed-pay.org/api/pay/query
  • 请求方式:POST

10.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
平台订单号trade_no二选一String2016080622555342651易支付订单号
商户订单号out_trade_no二选一String20160806151343349商户系统内部订单号
时间戳timestamp是String1713660000用于时间校验
签名字符串sign是String...签名结果
签名类型sign_type是StringRSA签名类型

10.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt00 为成功,其它值为失败
返回信息msgStringsuccess提示信息
平台订单号trade_noString平台订单号
商户订单号out_trade_noString商户订单号
第三方订单号api_trade_noString渠道订单号
支付方式typeStringalipay支付方式
支付状态statusInt10 未支付,1 已支付,2 已退款,3 已冻结,4 预授权
商户IDpidInt1001商户ID
创建时间addtimeString2016-08-06 22:55:52创建时间
完成时间endtimeString2016-08-06 22:55:52完成时间
商品名称nameStringVIP会员商品名称
商品金额moneyString1.00商品金额
退款金额refundmoneyString0.00已退款金额
业务扩展参数paramString扩展参数
支付者账号buyerString支付者账号
用户IPclientipString下单 IP
时间戳timestampString1713660000返回时间戳
签名字符串signString...签名结果
签名类型sign_typeStringRSA签名类型

11. 支付通知

11.1 通知类型

  • 异步通知:notify_url
  • 页面跳转通知:return_url

11.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
平台订单号trade_no是String2016080622555342651易支付订单号
商户订单号out_trade_no是String20160806151343349商户系统内部订单号
支付方式type是Stringalipay支付方式
支付状态trade_status是StringTRADE_SUCCESS成功状态固定为该值
创建时间addtime否String2016-08-06 22:55:52创建时间
完成时间endtime否String2016-08-06 22:55:52完成时间
商品名称name是StringVIP会员商品名称
商品金额money是String1.00商品金额
业务扩展参数param否String业务参数
支付者账号buyer否String支付者账号
时间戳timestamp是String1713660000用于时间校验
签名字符串sign是String...签名结果
签名类型sign_type是StringRSA签名类型

11.3 回调响应

  • 收到异步通知后,返回 success
  • 通知时要校验签名,并确认 trade_status == TRADE_SUCCESS

12. 退款

12.1 接口说明

  • URL:https://api.speed-pay.org/api/pay/refund
  • 请求方式:POST

12.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
平台订单号trade_no二选一String2016080622555342651易支付订单号
商户订单号out_trade_no二选一String20160806151343349商户系统内部订单号
退款金额money是String1.50退款金额
商户退款单号out_refund_no否StringR202604210001商户侧退款流水号
时间戳timestamp是String1713660000用于时间校验
签名字符串sign是String...签名结果
签名类型sign_type是StringRSA签名类型

12.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt00 为成功,其它值为失败
返回信息msgStringsuccess提示信息
退款单号refund_noString202604210001平台退款单号
商户退款单号out_refund_noStringR202604210001商户退款单号
平台订单号trade_noString2016080622555342651易支付订单号
退款金额moneyString1.50退款金额
已退金额reducemoneyString1.50累计退款金额
时间戳timestampString1713660000返回时间戳
签名字符串signString...签名结果
签名类型sign_typeStringRSA签名类型

13. 退款查询

13.1 接口说明

  • URL:https://api.speed-pay.org/api/pay/refundquery
  • 请求方式:POST

13.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
退款单号refund_no二选一String202604210001平台退款单号
商户退款单号out_refund_no二选一StringR202604210001商户退款单号
时间戳timestamp是String1713660000用于时间校验
签名字符串sign是String...签名结果
签名类型sign_type是StringRSA签名类型

13.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt00 为成功,其它值为失败
返回信息msgStringsuccess提示信息
退款单号refund_noString202604210001平台退款单号
商户退款单号out_refund_noStringR202604210001商户退款单号
平台订单号trade_noString2016080622555342651易支付订单号
商户订单号out_trade_noString20160806151343349商户订单号
退款金额moneyString1.50退款金额
已退金额reducemoneyString1.50累计退款金额
退款状态statusInt10 失败,1 成功
创建时间addtimeString2016-08-06 22:55:52创建时间
时间戳timestampString1713660000返回时间戳
签名字符串signString...签名结果
签名类型sign_typeStringRSA签名类型

14. 关闭订单

14.1 接口说明

  • URL:https://api.speed-pay.org/api/pay/close
  • 请求方式:POST
  • 仅支持部分支付插件

14.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
平台订单号trade_no二选一String2016080622555342651易支付订单号
商户订单号out_trade_no二选一String20160806151343349商户订单号
时间戳timestamp是String1713660000用于时间校验
签名字符串sign是String...签名结果
签名类型sign_type是StringRSA签名类型

14.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt00 为成功,其它值为失败
返回信息msgStringsuccess提示信息
时间戳timestampString1713660000返回时间戳
签名字符串signString...签名结果
签名类型sign_typeStringRSA签名类型

15. 商户信息

15.1 接口说明

  • URL:https://api.speed-pay.org/api/merchant/info
  • 请求方式:POST

15.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
时间戳timestamp是String1713660000用于时间校验
签名字符串sign是String...签名结果
签名类型sign_type是StringRSA签名类型

15.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt00 为成功,其它值为失败
返回信息msgStringsuccess提示信息
商户IDpidInt1001商户ID
商户状态statusInt1商户状态
支付状态pay_statusInt1支付开关
结算状态settle_statusInt1结算开关
商户余额moneyString0.00可用余额
结算类型settle_typeInt11 支付宝,2 微信,3 QQ,4 银行卡
结算账号settle_accountStringadmin@pay.com结算账号
结算姓名settle_nameString张三结算姓名
订单总数order_numInt30订单总数
今日订单order_num_todayInt15今日订单数量
昨日订单order_num_lastdayInt15昨日订单数量
今日交易额order_money_todayString100.00今日交易金额
昨日交易额order_money_lastdayString90.00昨日交易金额
时间戳timestampString1713660000返回时间戳
签名字符串signString...签名结果
签名类型sign_typeStringRSA签名类型

16. 商户订单

16.1 接口说明

  • URL:https://api.speed-pay.org/api/merchant/orders
  • 请求方式:POST

16.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
偏移量offset否Int0起始偏移
数量limit否Int20返回条数
状态status否Int1订单状态筛选
时间戳timestamp是String1713660000用于时间校验
签名字符串sign是String...签名结果
签名类型sign_type是StringRSA签名类型

16.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt00 为成功,其它值为失败
返回信息msgStringsuccess提示信息
订单数据dataArray订单列表订单数组
时间戳timestampString1713660000返回时间戳
签名字符串signString...签名结果
签名类型sign_typeStringRSA签名类型

17. 转账提交

17.1 接口说明

  • URL:https://api.speed-pay.org/api/transfer/submit
  • 请求方式:POST

17.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
转账类型type是Stringalipayalipay、wxpay、qqpay、bank
收款账号account是Stringadmin@pay.com收款账号
收款姓名name是String张三收款姓名
金额money是String1.00转账金额
备注remark否String测试转账转账备注
商户转账单号out_biz_no否StringT202604210001商户侧流水号
书签 IDbookid否String1账本或预设项标识
时间戳timestamp是String1713660000用于时间校验
签名字符串sign是String...签名结果
签名类型sign_type是StringRSA签名类型

17.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt00 为成功,其它值为失败
返回信息msgStringsuccess提示信息
转账状态statusInt00 待处理,后续查询
平台业务号biz_noString202604210001平台转账业务号
商户转账单号out_biz_noStringT202604210001商户侧流水号
订单号orderidString202604210001平台订单号
支付时间paydateString2016-08-06 22:55:52完成时间
手续费cost_moneyString0.10扣除费用
时间戳timestampString1713660000返回时间戳
签名字符串signString...签名结果
签名类型sign_typeStringRSA签名类型

18. 转账查询

18.1 接口说明

  • URL:https://api.speed-pay.org/api/transfer/query
  • 请求方式:POST

18.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
平台业务号biz_no二选一String202604210001平台转账业务号
商户转账单号out_biz_no二选一StringT202604210001商户侧流水号
时间戳timestamp是String1713660000用于时间校验
签名字符串sign是String...签名结果
签名类型sign_type是StringRSA签名类型

18.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt00 为成功,其它值为失败
返回信息msgStringsuccess提示信息
转账状态statusInt10 处理中,1 成功,2 失败
错误信息errmsgString失败原因
平台业务号biz_noString202604210001平台转账业务号
商户转账单号out_biz_noStringT202604210001商户侧流水号
订单号orderidString202604210001平台订单号
支付时间paydateString2016-08-06 22:55:52完成时间
金额amountString1.00转账金额
手续费cost_moneyString0.10扣除费用
备注remarkString测试转账备注信息
时间戳timestampString1713660000返回时间戳
签名字符串signString...签名结果
签名类型sign_typeStringRSA签名类型

19. 转账余额

19.1 接口说明

  • URL:https://api.speed-pay.org/api/transfer/balance
  • 请求方式:POST

19.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
时间戳timestamp是String1713660000用于时间校验
签名字符串sign是String...签名结果
签名类型sign_type是StringRSA签名类型

19.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt00 为成功,其它值为失败
返回信息msgStringsuccess提示信息
可用余额available_moneyString100.00可转账余额
转账费率transfer_rateString0.01转账费率
时间戳timestampString1713660000返回时间戳
签名字符串signString...签名结果
签名类型sign_typeStringRSA签名类型

ePay V1 接口文档整理

1. 协议规则

项目值
请求数据格式application/x-www-form-urlencoded
返回数据格式JSON
签名算法MD5
字符编码UTF-8

2. 接口总览

入口说明
submit.php页面跳转支付
mapi.phpAPI 接口支付
api.php?act=query查询商户信息
api.php?act=settle查询结算记录
api.php?act=order查询单个订单
api.php?act=orders批量查询订单
api.php?act=refund提交订单退款

3. 页面跳转支付

3.1 接口说明

  • 用途:用户前台直接发起支付
  • 常见调用方式:form 表单提交,或拼成跳转链接
  • URL:https://api.speed-pay.org/submit.php
  • 请求方式:POST 或 GET
  • 推荐方式:POST
  • type 不传时,默认进入收银台流程

3.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
支付方式type是Stringalipay支付方式列表
商户订单号out_trade_no是String20160806151343349商户系统内部订单号
异步通知地址notify_url是Stringhttps://api.speed-pay.org/notify_url.php服务器异步通知地址
跳转通知地址return_url是Stringhttps://api.speed-pay.org/return_url.php页面跳转通知地址
商品名称name是StringVIP会员超过 127 个字节会自动截取
商品金额money是String1.00单位:元,最多 2 位小数
业务扩展参数param否String没有请留空支付后原样返回
通道IDchannel_id是Int2指定支付通道ID;不传时按商户路由策略轮询选路;传入后必须在当前商户可用路由内,且参与签名
签名字符串sign是String202cb962ac59075b964b07152d234b70签名结果
签名类型sign_type是StringMD5默认为 MD5

3.3 说明

  • notify_url 用于异步通知
  • return_url 用于支付完成后的前端跳转
  • param 会在支付完成后原样返回
  • channel_id 用于指定支付通道;不传时系统按商户分组绑定的轮询组策略自动选路

4. API 接口支付

4.1 接口说明

  • 用途:服务器后端发起支付请求
  • URL:https://api.speed-pay.org/mapi.php(兼容 /mapi)
  • 请求方式:POST
  • 请求体:application/x-www-form-urlencoded(Form Data),参数以 key=value 表单字段提交;不要使用 JSON Body
  • 返回格式:JSON;成功时通常返回 payurl、qrcode、urlscheme 其中之一
  • channel_id 可不传,不传时按商户路由策略轮询选路

4.1.1 cURL 示例

curl -X POST "https://api.speed-pay.org/mapi.php" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "pid=1001" \
  -d "type=unionpay" \
  -d "channel_id=5" \
  -d "out_trade_no=ORDER20260530001" \
  -d "name=云闪付测试" \
  -d "money=0.01" \
  -d "notify_url=https://merchant.example.com/notify" \
  -d "return_url=https://h5.speed-pay.org/" \
  -d "clientip=127.0.0.1" \
  -d "device=pc" \
  -d "sign_type=MD5" \
  -d "sign=YOUR_MD5_SIGN"

说明:sign 需按 MD5 签名规则计算;在线测试可使用 V1 mapi 测试工具。通联各产品 channel_id 见下方「7.1 通联收银宝通道」。

4.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
支付方式type是Stringalipay支付方式列表
商户订单号out_trade_no是String20160806151343349商户系统内部订单号
异步通知地址notify_url是Stringhttps://api.speed-pay.org/notify_url.php服务器异步通知地址
跳转通知地址return_url否Stringhttps://api.speed-pay.org/return_url.php页面跳转通知地址
商品名称name是StringVIP会员超过 127 个字节会自动截取
商品金额money是String1.00单位:元,最多 2 位小数
用户IP地址clientip是String192.168.1.100用户发起支付的 IP
设备类型device否Stringpc根据 UA 判断,默认 pc
授权码auth_code否String付款码支付或上游授权码
微信 OpenIDopenid / sub_openid / wx_openid否String微信 JSAPI/公众号支付身份
微信小程序 OpenIDmini_openid否String微信小程序支付身份
支付宝用户 IDbuyer_id / buyer_open_id否String支付宝 JSAPI/小程序支付身份
应用 IDsub_appid / op_app_id否String服务商或代调用场景应用 ID
通道IDchannel_id是Int2指定支付通道ID;不传时按商户路由策略轮询选路;传入后必须在当前商户可用路由内,且参与签名
业务扩展参数param否String没有请留空支付后原样返回
签名字符串sign是String202cb962ac59075b964b07152d234b70签名结果
签名类型sign_type是StringMD5默认为 MD5

4.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt11 为成功,其它值为失败
返回信息msgString失败时返回原因
订单号trade_noString20160806151343349支付订单号
支付跳转urlpayurlString/pay/wxpay/202010903/直接跳转该 URL 支付
二维码链接qrcodeStringweixin://wxpay/bizpayurl?pr=04IPMKM按链接生成二维码
小程序跳转urlurlschemeStringweixin://dl/business/?ticket=xxx使用 JS 跳转该 URL

4.4 说明

  • 成功时通常返回 payurl、qrcode、urlscheme 之一;通联扫码/H5 场景可能同时返回 qrcode 与 payurl
  • device 和支付方式会影响最终返回值类型
  • 返回值为 JSON,由调用方自行决定跳转、展示二维码或拉起小程序
  • channel_id 传入后会强制匹配指定通道;通道不可用时会返回失败原因
  • 云闪付请使用 type=unionpay 且指定通联云闪付通道,详见「7.1 通联收银宝通道」

4.5 Speed Pay 身份授权扩展

当前 Speed Pay 实现中,V1 API 支付如果路由到需要用户身份的产品,例如微信公众号、微信小程序、支付宝小程序,但请求没有传 openid、mini_openid、buyer_id 等字段,会返回身份承接地址:

{
  "code": 1,
  "msg": "需要用户授权",
  "trade_no": "",
  "payurl": "http://example.com/cashier/identity/xxx",
  "url": "http://example.com/cashier/identity/xxx",
  "identity_required": 1,
  "resume_token": "xxx"
}

调用方收到 identity_required=1 后,应让用户跳转 payurl 或 url 完成授权流程。V1 页面跳转支付 /submit.php 遇到身份缺失时会直接重定向到该承接页。

5. 支付结果通知

5.1 通知类型

  • 服务器异步通知:notify_url
  • 页面跳转通知:return_url

5.2 请求方式

  • GET

5.3 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
易支付订单号trade_no是String20160806151343349021平台订单号
商户订单号out_trade_no是String20160806151343349商户系统内部订单号
支付方式type是Stringalipay支付方式列表
商品名称name是StringVIP会员商品名称
商品金额money是String1.00商品金额
支付状态trade_status是StringTRADE_SUCCESS只有 TRADE_SUCCESS 才表示成功
业务扩展参数param否String业务参数
签名字符串sign是String202cb962ac59075b964b07152d234b70签名结果
签名类型sign_type是StringMD5默认为 MD5

5.4 回调响应

  • 收到异步通知后,需返回 success
  • 页面跳转通知主要用于前端展示,不代表后台最终确认逻辑

6. MD5 签名算法

  1. 将发送或接收到的所有参数按照参数名 ASCII 码从小到大排序。
  2. sign、sign_type 和空值不参与签名。
  3. 将排序后的参数拼接成 a=b&c=d&e=f 的形式,参数值不要进行 URL 编码。
  4. 将拼接字符串与商户密钥 KEY 进行 MD5 加密,得到签名。
sign = md5(a=b&c=d&e=f + KEY)

说明:

  • + 代表字符串拼接,不是字符本身
  • MD5 结果为小写
  • 具体示例以 SDK 为准

7. 支付方式列表

调用值描述
alipay支付宝
wxpay微信支付
qqpayQQ 钱包
unionpay云闪付(银联二维码)

7.1 通联收银宝通道(已开通)

正式环境已开通通联收银宝。部分商户关闭通道轮询时,下单必须传 channel_id。

场景typechannel_id通道返回字段用户怎么付
云闪付扫码unionpay5通联云闪付qrcode云闪付 App 扫码
微信 Native 扫码(PC 展示)wxpay6通联微信扫码qrcode,可能同时有 payurl微信扫码
H5 拉起微信/支付宝wxpay7通联H5收银台payurl(及同值 qrcode)打开 https://api.speed-pay.org/allinpay/h5/{trade_no},或扫该链接二维码
  • 测试工具:/tools/epay-v1-test.html
  • H5 桥接页打开后会自动跳转通联收银台,按手机浏览器环境拉起微信或支付宝
  • 若扫码提示「商户未绑定二维码」,属于通联/银联侧产品报备问题,不是本接口签名错误

8. 设备类型列表

调用值描述
pc电脑浏览器
mobile手机浏览器
qq手机 QQ 内浏览器
wechat微信内浏览器
alipay支付宝客户端
jump仅返回支付跳转 URL

9. [API]查询商户信息

9.1 接口说明

  • URL:https://api.speed-pay.org/api.php?act=query&pid={商户ID}&key={商户密钥}
  • 操作类型:query

9.2 请求参数

字段名变量名必填类型示例值描述
操作类型act是Stringquery固定值
商户IDpid是Int1001商户ID
商户密钥key是String89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i商户密钥

9.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt11 为成功,其它值为失败
商户IDpidInt1001商户ID
商户密钥keyString(32)89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i商户密钥
商户状态activeInt11 为正常,0 为封禁
商户余额moneyString0.00商户所拥有的余额
结算方式typeInt11:支付宝,2:微信,3:QQ,4:银行卡
结算账号accountStringadmin@pay.com结算账号
结算姓名usernameString张三结算姓名
订单总数ordersInt30订单总数统计
今日订单order_todayInt15今日订单数量
昨日订单order_lastdayInt15昨日订单数量

10. [API]查询结算记录

10.1 接口说明

  • URL:https://api.speed-pay.org/api.php?act=settle&pid={商户ID}&key={商户密钥}
  • 操作类型:settle

10.2 请求参数

字段名变量名必填类型示例值描述
操作类型act是Stringsettle固定值
商户IDpid是Int1001商户ID
商户密钥key是String89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i商户密钥

10.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt11 为成功,其它值为失败
返回信息msgString查询结算记录成功!提示信息
结算记录dataArray结算记录列表结算记录数组

原版文档对 data 内部结构只给出“结算记录列表”的说明,没有展开逐字段定义。

11. [API]查询单个订单

11.1 接口说明

  • URL:https://api.speed-pay.org/api.php?act=order&pid={商户ID}&key={商户密钥}&out_trade_no={商户订单号}
  • 操作类型:order

11.2 请求参数

字段名变量名必填类型示例值描述
操作类型act是Stringorder固定值
商户IDpid是Int1001商户ID
商户密钥key是String89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i商户密钥
系统订单号trade_no选择String20160806151343312平台订单号
商户订单号out_trade_no选择String20160806151343349商户自定义订单号

说明:

  • trade_no 和 out_trade_no 二选一即可
  • 如果都传入,以 trade_no 为准

11.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt11 为成功,其它值为失败
返回信息msgString查询订单号成功!提示信息
易支付订单号trade_noString2016080622555342651平台订单号
商户订单号out_trade_noString20160806151343349商户系统内部订单号
第三方订单号api_trade_noString20160806151343349支付渠道订单号
支付方式typeStringalipay支付方式列表
商户IDpidInt1001发起支付的商户ID
创建订单时间addtimeString2016-08-06 22:55:52创建时间
完成交易时间endtimeString2016-08-06 22:55:52完成时间
商品名称nameStringVIP会员商品名称
商品金额moneyString1.00商品金额
支付状态statusInt01 表示支付成功,0 表示未支付
业务扩展参数paramString默认留空
支付者账号buyerString默认留空

12. [API]批量查询订单

12.1 接口说明

  • URL:https://api.speed-pay.org/api.php?act=orders&pid={商户ID}&key={商户密钥}
  • 操作类型:orders

12.2 请求参数

字段名变量名必填类型示例值描述
操作类型act是Stringorders固定值
商户IDpid是Int1001商户ID
商户密钥key是String89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i商户密钥
查询订单数量limit否Int20返回订单数量,最大 50
页码page否Int1当前查询页码

12.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt11 为成功,其它值为失败
返回信息msgString查询结算记录成功!提示信息
订单列表dataArray订单列表订单数组

data 中每一项与“查询单个订单”返回结构基本一致。

13. [API]提交订单退款

13.1 接口说明

  • 需要先在商户后台开启订单退款 API 接口开关
  • URL:https://api.speed-pay.org/api.php?act=refund
  • 请求方式:POST

13.2 请求参数

字段名变量名必填类型示例值描述
商户IDpid是Int1001商户ID
商户密钥key是String89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i商户密钥
易支付订单号trade_no特殊可选String20160806151343349021平台订单号
商户订单号out_trade_no特殊可选String20160806151343349下单时传入的商户订单号
退款金额money是String1.50少数通道需要与原订单金额一致

说明:

  • trade_no 和 out_trade_no 不能同时为空
  • 如果都传了,以 trade_no 为准

13.3 返回结果

字段名变量名类型示例值描述
返回状态码codeInt11 为成功,其它值为失败
返回信息msgString退款成功提示信息