wqhy.cloud 码支付商户对接文档

当前网关地址:https://user2.wqhy.cloud

对接时一律使用当前页面显示的域名,不要使用服务器 IP 地址。每个客户使用自己的子域名、后台账号、数据库、PID 和商户密钥,不要把不同客户的子域名和密钥混用。

1. 客户需要填写什么

字段 填写值
网关地址/API 接口 https://user2.wqhy.cloud,不要填写 http://39.97.53.231
页面支付接口 https://user2.wqhy.cloud/submit.php
API 下单接口 https://user2.wqhy.cloud/mapi.php
后台地址 https://user2.wqhy.cloud/User/login
商户 PID 登录后台首页,在“支付API配置”里复制;新独立租户默认是 1000
商户密钥 登录后台首页,在“支付API配置”里复制“商户密钥”。
签名方式 MD5
notify_url 商户系统接收异步通知的地址,例如 https://merchant.com/pay/notify
return_url 用户支付完成后跳回商户系统的地址,例如 https://merchant.com/pay/return

2. 下单接口

页面支付使用 https://user2.wqhy.cloud/submit.php,支持 GET 或 POST,请求成功后跳转到收银台。

API 下单使用 https://user2.wqhy.cloud/mapi.php,只支持 POST,请求成功后返回 JSON,商户系统跳转到返回的 payurl

参数 必填 示例 说明
pid 1000 商户 PID。
type alipay / wxpay / unionpay 支付类型。
out_trade_no ORDER202606160001 商户订单号,必须唯一。
notify_url https://merchant.com/pay/notify 异步通知地址。
return_url https://merchant.com/pay/return 支付完成跳转地址。
name 测试商品 商品名称。
money 9.90 订单金额,单位元。
sign_type MD5 固定填写 MD5。
sign 202cb962... 按第 3 节生成。
param vip 商户扩展参数,回调时带回。

3. MD5 签名规则

签名规则与源码保持一致:

所有参数按参数名升序排序,排除 signsign_type 和空值,拼接成 参数名=参数值&参数名=参数值,最后直接追加商户密钥,然后计算小写 MD5。

money=9.90&name=测试商品¬ify_url=https://merchant.com/pay/notify&out_trade_no=ORDER202606160001&pid=1000&return_url=https://merchant.com/pay/return&type=alipay商户密钥

最终:sign = md5(上面的字符串)

4. PHP 下单示例

<?php
function mpaySign(array $params, string $key): string
{
    ksort($params);
    $parts = [];
    foreach ($params as $name => $value) {
        if ($name === 'sign' || $name === 'sign_type' || $value === '') {
            continue;
        }
        $parts[] = $name . '=' . $value;
    }
    return md5(implode('&', $parts) . $key);
}

$apiBase = 'https://user2.wqhy.cloud';
$key = '这里填写后台显示的商户密钥';

$params = [
    'pid' => '1000',
    'type' => 'alipay',
    'out_trade_no' => 'ORDER' . date('YmdHis'),
    'notify_url' => 'https://merchant.com/pay/notify',
    'return_url' => 'https://merchant.com/pay/return',
    'name' => '测试商品',
    'money' => '9.90',
    'sign_type' => 'MD5',
];
$params['sign'] = mpaySign($params, $key);

header('Location: ' . $apiBase . '/submit.php?' . http_build_query($params));
exit;

5. API 下单返回

{
  "code": 1,
  "msg": "订单创建成功",
  "trade_no": "H2026061600011234",
  "payurl": "https://user2.wqhy.cloud/Pay/console/H2026061600011234"
}

如果 code 等于 1,商户系统跳转到 payurl 即可。

6. 异步通知

支付成功后,系统会用 GET 请求商户填写的 notify_url,并带上订单参数和签名。

参数 说明
pid 商户 PID。
trade_no 平台订单号。
out_trade_no 商户订单号。
type 支付类型。
money 订单金额。
trade_status 成功时为 TRADE_SUCCESS
sign 通知签名,按同样规则验签。

商户系统验签、核对订单号和金额、更新订单状态后,必须输出纯文本 success。不能返回 JSON、HTML 或多余文字。

7. 后台配置提醒

客户登录后台后,需要先添加收款账号和收款码。没有可用收款通道时,下单会提示“用户无可用收款账号”或“用户账号无可用收款码”。

服务器在中国大陆时,域名访问通常需要 ICP 备案。未备案时,IP 可能能访问,但域名可能被服务商拦截。