聚合支付网关 API 对接文档

本系统提供易支付 V1 风格的页面跳转支付接口。商户按本文档对接本网关,付款用户进入网关收银台完成浏览器信息采集后,网关再向内部支付系统下单。

1. 协议规则

请求数据格式application/x-www-form-urlencoded
返回数据格式支付接口返回页面跳转或收银台页面;订单查询返回 JSON
签名算法MD5
字符编码UTF-8
网关地址https://gate.tw.mihapay.info
商户凭证下游通过 POST 提供上游商户 pid 和 key,本网关不分配或固定商户凭证。

2. 页面跳转支付

付款用户通过 HTTPS POST 表单提交 pid、key 和订单信息。本接口需要商户密钥,由网关替换回调地址后向上游重新签名。密钥不回显,以加密形式随订单保留,用于支付通知验签;收到通知时使用同一套 pid/key。

  1. 商户服务端生成订单参数并签名,将表单页面返回给付款用户。
  2. 付款用户浏览器在顶层页面访问网关;不要嵌入 iframe、反向代理网关页面或代用户抓取收银台。
  3. 浏览器启用 JavaScript 和 Cookie,由网关自动采集访问 IP、UA 和浏览器环境信息。采集未完成时不会向支付后端下单。
  4. 网关完成采集和风险关联后展示支付页面;商户通过签名通知或查询获知支付结果。

商户无需上传用户 IP、浏览器指纹或风险值,网关自行采集和计算。请使用 HTTPS 网关地址。每个订单号必须唯一,重复提交不会再次向支付后端下单。

POSTGET 推荐使用浏览器 POST 表单。

接口地址:https://gate.tw.mihapay.info/submit.php

变量名必填类型示例值描述
pid是String你的上游商户号下游提供的上游商户号
key是String你的上游密钥仅通过 POST 请求体提交,不参与上游参数拼接
type否Stringalipay支付方式,不传跳转到收银台选择
out_trade_no是String20160806151343349商户系统内部订单号
notify_url是Stringhttp://you.com/notify.php服务器异步通知地址
return_url否Stringhttp://you.com/return.php页面跳转通知地址
name是StringVIP会员商品名称
money是String1.00单位:元,最大2位小数
param否String业务扩展参数,支付后原样返回
sign是String202cb962ac59075b964b07152d234b70签名,见第5节
sign_type是StringMD5默认 MD5

3. 订单查询

POST 接口地址:https://gate.tw.mihapay.info/api/EasyPay/queryOrder

变量名必填类型描述
orderNo是String商户系统内部订单号 (out_trade_no)
{
  "code": 1,
  "msg": "查询成功",
  "time": 1759415363,
  "data": { "status": "success", "out_trade_no": "...", "trade_no": "..." }
}

4. 支付结果通知

通知类型:服务器异步通知(notify_url)、页面跳转通知(return_url)。两者均由本网关在确认结果后重新签名转发,商户收到的始终是本网关签名的通知,与真实支付后端完全隔离。

变量名必填类型描述
pid是String本网关商户ID
trade_no是String平台订单号
out_trade_no是String商户订单号
type是String支付方式
name是String商品名称
money是String商品金额
trade_status是String只有 TRADE_SUCCESS 是成功
param否String业务扩展参数
sign是String签名
sign_type是String默认 MD5

收到异步通知后,商户应验签、核对订单号和金额,并幂等处理订单,再返回字符串 success。页面跳转通知仅用于展示结果;当前网关不提供通知失败重试。

5. MD5 签名算法

  1. 将所有参与签名的参数按参数名 ASCII 码从小到大排序(a-z);sign、sign_type 和空值不参与签名。
  2. 按 a=b&c=d&e=f 的格式拼接,参数值不做 URL 编码。
  3. sign = md5(拼接字符串 + 商户密钥KEY),md5 结果小写,+ 仅表示字符串连接。

Go 示例代码

params := map[string]string{
    "pid":          "M20250829000001",
    "type":         "alipay",
    "out_trade_no": "20160806151343349",
    "notify_url":   "https://you.com/notify.php",
    "return_url":   "https://you.com/return.php",
    "name":         "VIP会员",
    "money":        "1.00",
    "sign_type":    "MD5",
}
sign := signer.Sign(params, YOUR_KEY) // 排序拼接 + 密钥, 取 MD5
params["sign"] = sign

// 在商户服务端将 params 渲染为隐藏表单字段,字段值须进行 HTML 转义。
// 将表单页面返回给付款用户,由用户浏览器提交到:
// <form method="post" action="https://gate.tw.mihapay.info/submit.php">...</form>

6. 参考信息

type 调用值描述
alipay支付宝
wxpay微信支付
qqpayQQ钱包

→ 打开测试下单页面