易支付兼容接口
XorPay 提供易支付 V1 兼容入口。现有易支付程序只需将网关地址改为 XorPay 的 /yipay 兼容入口,原有参数、签名和回调处理可继续使用。
- 易支付商户号
pid对应 XorPay 商户号aid - 易支付商户密钥
key对应 XorPay 商户secret - 支持
wxpay(微信扫码)和alipay(支付宝扫码) - 接口可通过 HTTP 或 HTTPS 使用;生产环境仍建议使用 HTTPS
安全说明:商户管理接口
/yipay/api当前已关闭,因为旧规范需要传递明文key,可能在访问日志、代理日志或浏览器历史中暴露商户 secret。页面支付、API 下单和支付回调不受影响。
接口地址
| 用途 | 方法 | 地址 |
|---|---|---|
| 页面跳转支付 | GET / POST | /yipay/submit |
| API 下单 | POST | /yipay/mapi |
| 商户、订单、退款接口 | 已关闭 | /yipay/api |
例如原网关是 https://原易支付域名/submit,迁移后改为 https://xorpay.com/yipay/submit 即可,不需要改成 XorPay 原生 /api/pay/{aid} 路径。
签名算法
与易支付一致:
- 排除
sign、sign_type和空值参数 - 参数名按 ASCII 从小到大排序
- 拼成
a=b&c=d,参数值不做 URL 编码 - 末尾直接拼接商户密钥,计算 32 位小写 MD5
页面跳转支付 /yipay/submit
支持 GET 和 POST,表单编码为 application/x-www-form-urlencoded。
| 参数 | 必须 | 说明 |
|---|---|---|
| pid | 是 | 商户号 |
| type | 否 | wxpay 或 alipay;不传时显示支付方式选择页 |
| out_trade_no | 是 | 商户订单号,必须唯一 |
| notify_url | 是 | 服务器异步通知地址 |
| return_url | 是 | 支付完成后的页面跳转地址 |
| name | 是 | 商品名称 |
| money | 是 | 金额,单位元 |
| param | 否 | 附加参数,通知时原样返回 |
| sign | 是 | 请求签名 |
| sign_type | 是 | 固定为 MD5 |
API 下单 /yipay/mapi
仅支持 POST。参数与 /yipay/submit 相同,其中 type 和 clientip 必填,return_url 可不传。
成功时返回:
{
"code": 1,
"msg": "支付下单成功!",
"trade_no": "平台订单号",
"payurl": "支付链接",
"qrcode": "二维码内容",
"urlscheme": "支付链接"
}
失败时返回 {"code":-1,"msg":"失败原因"}。
异步通知
支付成功后,平台以 GET 请求下单时传入的 notify_url:
| 参数 | 说明 |
|---|---|
| pid | 商户号 |
| trade_no | XorPay 平台订单号 |
| out_trade_no | 商户订单号 |
| type | wxpay 或 alipay |
| name | 商品名称 |
| money | 订单金额 |
| trade_status | 固定为 TRADE_SUCCESS |
| param | 下单附加参数 |
| sign | 通知签名 |
| sign_type | 固定为 MD5 |
商户验签并完成幂等处理后必须返回纯文本 success。其他响应会沿用 XorPay 原有梯度策略重试。
同步跳转到 return_url 时携带同样的一组已签名参数。同步跳转只用于页面展示,业务到账应以异步通知为准。
商户与订单接口 /yipay/api
该接口当前已关闭,请使用 XorPay 后台或原生订单查询、退款接口。只有确认能够安全处理明文 key 时,才应由管理员重新启用 /yipay/api 路由。
该接口沿用易支付的 act、pid、key 参数。为兼容旧程序,key 可按原规范放在 GET 查询参数或 POST 表单中;请避免在代理和访问日志中记录完整 URL。
| act | 方法 | 说明 |
|---|---|---|
| query | GET / POST | 查询商户信息 |
| settle | GET / POST | 查询结算记录;XorPay 返回空列表 |
| order | GET / POST | 按 trade_no 或 out_trade_no 查询单笔订单 |
| orders | GET / POST | 分页查询订单,limit 最大 50 |
| refund | POST | 按 trade_no 或 out_trade_no 退款,另传 money |
订单结果中的 status=1 表示订单当前已支付且未退款;未支付、过期或已退款均为 status=0。单独的 refund_status=1 表示订单已退款,防止退款订单被误判为可交付订单。
注意事项
- 商户订单号必须保持唯一。
- 回调必须验签并按商户订单号做幂等处理。
- 不支持的支付类型会直接返回错误,不会自动降级为其他渠道。
/yipay/api当前已关闭;如重新启用,必须配置网关访问日志对key脱敏。