请求地址:GET/POST /submit.php,参数:
| 参数 | 说明 |
|---|---|
| pid | 商户ID |
| type | 支付方式:alipay / wxpay / qqpay / ecny / usdt(留空进入收银台让用户选择) |
| out_trade_no | 商户订单号(唯一) |
| notify_url | 异步通知地址 |
| return_url | 同步跳转地址 |
| name | 商品名称 |
| money | 金额(人民币元,如 10.00) |
| sign | MD5 签名 |
| sign_type | MD5 |
签名算法:对未空参数按键名 ASCII 升序排列为 k1=v1&k2=v2…(排除 sign、sign_type、空值),末尾拼接商户密钥后取 MD5。
请求地址:GET/POST /mapi.php,参数同上,另需:
| clientip | 用户 IP 地址(必填) |
| device | 设备类型:pc / mobile / qq / wechat / alipay / app |
返回 JSON:{"code":1,"trade_no":"平台订单号","payurl":"支付链接"}
用户支付成功后,平台向 notify_url POST 以下参数:
pid=商户ID&trade_no=平台订单号&out_trade_no=商户订单号&type=支付方式&name=商品名称 &money=金额(人民币元)&trade_status=TRADE_SUCCESS¶m=自定义参数&sign=签名&sign_type=MD5
商户验签成功后输出 success,否则平台将按 1/3/20/60/120 分钟间隔重试。
| /api.php?act=query | 查询商户信息与订单统计(pid + key) |
| /api.php?act=order | 查询单个订单(trade_no 或 out_trade_no) |
| /api.php?act=orders | 批量查询订单(limit/offset/status) |
ksort($params); // 按 key 升序
$str = urldecode(http_build_query(array_filter($params, function($v){return $v!=='';})));
$sign = md5($str . $key); // $key 为商户密钥