API 对接文档

代收与代付接口、参数、签名和回调说明。左侧目录可直接跳转,文档可下载后离线查看。

接入指引

请求使用 POST 表单,Content-Type 为 application/x-www-form-urlencoded;下面的 JSON 仅用于展示参数,不表示接口接受 JSON 请求体。网关请使用本文各章节列出的地址。

示例商户号、订单号、地址和签名均为占位数据,不能直接用于真实下单。sign/pay_md5sign 请按实际参数与商户密钥计算;示例响应中的中文消息保留接口原值。

代付下单返回 status=success 只表示申请已受理,不代表出款成功。查询需同时满足 status=success、refCode=1 才是成功。

下载文件包含当前语言的文档与内嵌样式,可离线打开;不包含商户真实 APIKEY。切换语言后可重新下载对应版本。

签名与验签

字段名按升序排序,排除签名字段和 PHP empty() 判定为空的值(包括字符串 0),拼接 key=value&,最后追加 key=商户APIKEY,计算 MD5 并转大写。签名使用原始值,不要先做 URL 编码或调整金额格式;传输时再进行表单编码。

function makeSign($params, $apiKey)
{
    unset($params['pay_md5sign'], $params['sign']);
    ksort($params);
    $source = '';
    foreach ($params as $name => $value) {
        if (!empty($value)) {
            $source .= $name . '=' . $value . '&';
        }
    }
    return strtoupper(md5($source . 'key=' . $apiKey));
}

代收下单只使用以下 7 个字段参与签名;type、pay_productname 等附加字段不加入。代收查询只签 pay_memberid 和 pay_orderid。

pay_memberid, pay_orderid, pay_amount, pay_applydate,
pay_bankcode, pay_notifyurl, pay_callbackurl

代付下单使用实际提交的非空表单字段参与签名,排除 pay_md5sign;代付查询只签 mchid、out_trade_no;余额查询建议仅提交 mchid、pay_md5sign,签名只计算 mchid。

回调签名字段名是 sign。代收通知使用 memberid、orderid、transaction_id、amount、datetime、returncode 验签,attach 不参与;代付通知按实际通知字段排除 sign 后验签。查询响应验签同样先移除 sign。

支付请求

属性 内容
版本 1.0
网关 https://merchant.88pay.net/Pay_Index.html
请求方式 POST
参数名称 参数含义 是否参与签名 是否必填 参数说明
pay_memberid 商户号 是 是 平台分配商户号
pay_orderid 商户订单号 是 是 订单号唯一
pay_applydate 提交时间 是 是 时间格式:2018-12-28 18:18:18
pay_bankcode 通道编码 是 是 开发文档[附件]银行编码参考,或通道费率中查看
pay_notifyurl 异步回调 是 是 请给出有效的地址,地址后可以携带自定义get(?a=1&b=2)参数。(POST返回数据)
pay_callbackurl 同步回调 是 是 请给出有效的地址,地址后可以携带自定义get(?a=1&b=2)参数。(POST返回数据)
pay_amount 订单金额 是 是
pay_md5sign MD5数据签名 否 是 请看MD5签名处理
pay_attach 附加字段 否 否 此字段在返回时按原样返回
pay_productname 商品名称 否 否 商品名称
pay_productnum 商品数量 否 否 商品数量
pay_productdesc 商品描述 否 否 商品描述
pay_producturl 商户链接地址 否 否 商户链接地址
type 返回数据格式 否 否 返回数据的格式,如果不传则返回html页面,如果值=json 则返回json串

代收可能返回收银台 HTML 或跳转页面;type=json 及 JSON 返回格式是否可用取决于所分配通道。下面仅展示支持 JSON 返回通道的示例。查询以 trade_state=SUCCESS 判断支付成功,returncode=00 本身不代表已支付。

请求参数示例(以表单提交)

{
  "pay_memberid": "10000",
  "pay_orderid": "DEMO_COLLECT_001",
  "pay_amount": "100.00",
  "pay_applydate": "2026-10-11 12:00:00",
  "pay_bankcode": "YOUR_CHANNEL_CODE",
  "pay_notifyurl": "https://merchant.example/notify",
  "pay_callbackurl": "https://merchant.example/return",
  "pay_md5sign": "CALCULATE_WITH_YOUR_APIKEY",
  "type": "json"
}

成功响应示例

{
  "status": "1",
  "msg": "下单成功",
  "pay_amount": "100.00",
  "pay_orderid": "DEMO_PLATFORM_COLLECT",
  "payUrl": "https://cashier.example/pay/DEMO"
}

失败响应示例

{
  "status": "error",
  "msg": "下单失败",
  "content": "Reason for error"
}

同步通知

属性 内容
版本 1.0
网关 pay_callbackurl
请求方式 POST
参数名称 参数含义 是否参与签名 参数说明
memberid 商户号 是 平台分配商户号
orderid 商户订单号 是 订单号唯一
amount 订单金额 是
transaction_id 交易流水号 是 交易流水号
datetime 交易成功时间 是 时间格式:20261011120500
returncode 交易状态 是 “00”=success
attach 扩展返回 否 商户附加数据返回
sign MD5数据签名 否 请看MD5签名处理
无需返回数据
可通过订单查询接口,查询订单是否交易成功!

同步跳转仅用于展示结果,不要仅凭浏览器跳转给用户加款;请以验签通过的异步通知或主动查询为准。

通知参数示例

{
  "memberid": "10000",
  "orderid": "DEMO_COLLECT_001",
  "transaction_id": "DEMO_PLATFORM_COLLECT",
  "amount": "100.00",
  "datetime": "20261011120500",
  "returncode": "00",
  "sign": "CALCULATE_WITH_YOUR_APIKEY",
  "attach": ""
}

异步通知

属性 内容
版本 1.0
网关 pay_notifyurl
请求方式 POST
参数名称 参数含义 是否参与签名 参数说明
memberid 商户号 是 平台分配商户号
orderid 商户订单号 是 订单号唯一
amount 订单金额 是
transaction_id 交易流水号 是 交易流水号
datetime 交易成功时间 是 时间格式:20261011120500
returncode 交易状态 是 “00”=success
attach 扩展返回 否 商户附加数据返回
sign MD5数据签名 否 请看MD5签名处理

异步通知:先验签,再核对商户、订单号和金额,按订单幂等更新;处理成功后响应纯文本 OK,不要返回 HTML。代收 returncode=00 为支付成功;代付 returncode=00 为成功,11 为失败。通知参数用表单发送。

通知参数示例

{
  "memberid": "10000",
  "orderid": "DEMO_COLLECT_001",
  "transaction_id": "DEMO_PLATFORM_COLLECT",
  "amount": "100.00",
  "datetime": "20261011120500",
  "returncode": "00",
  "sign": "CALCULATE_WITH_YOUR_APIKEY",
  "attach": ""
}

响应示例

OK

支付订单查询

属性 内容
版本 1.0
网关 https://merchant.88pay.net/Pay_Trade_query.html
请求方式 POST
参数名称 参数含义 是否必填 是否参与签名 参数说明
pay_memberid 商户号 是 是 平台分配商户号
pay_orderid 商户订单号 是 是 订单号唯一
pay_md5sign MD5数据签名 是 否 请看MD5签名处理

代收可能返回收银台 HTML 或跳转页面;type=json 及 JSON 返回格式是否可用取决于所分配通道。下面仅展示支持 JSON 返回通道的示例。查询以 trade_state=SUCCESS 判断支付成功,returncode=00 本身不代表已支付。

请求参数示例(以表单提交)

{
  "pay_memberid": "10000",
  "pay_orderid": "DEMO_COLLECT_001",
  "pay_md5sign": "CALCULATE_WITH_YOUR_APIKEY"
}

成功响应示例

{
  "memberid": "10000",
  "orderid": "DEMO_COLLECT_001",
  "amount": "100.00",
  "time_end": "2026-10-11 12:05:00",
  "transaction_id": "DEMO_PLATFORM_COLLECT",
  "returncode": "00",
  "trade_state": "SUCCESS",
  "sign": "CALCULATE_WITH_YOUR_APIKEY"
}

响应示例

{
  "memberid": "10000",
  "orderid": "DEMO_COLLECT_001",
  "amount": "100.00",
  "time_end": "1970-01-01 00:00:00",
  "transaction_id": "DEMO_PLATFORM_COLLECT",
  "returncode": "00",
  "trade_state": "NOTPAY",
  "sign": "CALCULATE_WITH_YOUR_APIKEY"
}

代付接口

属性 内容
版本 1.0
网关 https://merchant.88pay.net/Payment_Dfpay_add.html
请求方式 POST
参数名称 参数含义 是否必填 是否参与签名 参数说明
mchid 商户号 是 是 平台分配商户号
out_trade_no 商户代付订单号 是 是 length 20
money 代付金额 是 是
bankname 银行编码 是 是 银行编码
subbranch 支行名称 否 是 支行名称
accountname 开户名 是 是 开户名
cardnumber 银行卡号 是 是 银行卡号
ifsc IFSC 是 是 印度银行 IFSC 编码,必填,不能为空,参与签名。
province 所属省 否 是 所属省
city 所属市 否 是 所属市
notifyurl 异步回调 否 是 请给出有效的地址,地址后可以携带自定义get(?a=1&b=2)参数。(POST返回数据)
pay_md5sign MD5数据签名 是 否 请看MD5签名处理

代付下单返回 status=success 只表示申请已受理,不代表出款成功。查询需同时满足 status=success、refCode=1 才是成功。

请求参数示例(以表单提交)

{
  "mchid": "10000",
  "out_trade_no": "DEMO_PAYOUT_001",
  "money": "100.00",
  "bankname": "HDFC Bank",
  "subbranch": "bank_branch",
  "accountname": "DEMO CUSTOMER",
  "cardnumber": "000000000000",
  "ifsc": "HDFC0000001",
  "province": "-",
  "city": "-",
  "notifyurl": "https://merchant.example/payout/notify",
  "pay_md5sign": "CALCULATE_WITH_YOUR_APIKEY"
}

成功响应示例

{
  "status": "success",
  "msg": "代付申请成功",
  "transaction_id": "DEMO_PLATFORM_PAYOUT"
}

失败响应示例

{
  "status": "error",
  "msg": "金额错误,可用余额不足!",
  "data": []
}

代付异步通知

属性 内容
版本 1.0
网关 notifyurl
请求方式 POST
参数名称 参数含义 是否参与签名 参数说明
memberid 商户号 是 平台分配商户号
orderid 商户订单号 是 订单号唯一
amount 订单金额 是
transaction_id 交易流水号 是 交易流水号
datetime 交易成功时间 是 时间格式:2018-12-28 18:18:18
returncode 交易状态 是 “00”=success,“11”=fail
sign MD5数据签名 否 请看MD5签名处理

异步通知:先验签,再核对商户、订单号和金额,按订单幂等更新;处理成功后响应纯文本 OK,不要返回 HTML。代收 returncode=00 为支付成功;代付 returncode=00 为成功,11 为失败。通知参数用表单发送。

通知参数示例

{
  "memberid": "10000",
  "orderid": "DEMO_PAYOUT_001",
  "amount": "100000.00",
  "transaction_id": "DEMO_PLATFORM_PAYOUT",
  "datetime": "2026-10-11 12:05:00",
  "returncode": "00",
  "sign": "CALCULATE_WITH_YOUR_APIKEY"
}

通知参数示例

{
  "memberid": "10000",
  "orderid": "DEMO_PAYOUT_001",
  "amount": "100000.00",
  "transaction_id": "DEMO_PLATFORM_PAYOUT",
  "datetime": "2026-10-11 12:05:00",
  "returncode": "11",
  "sign": "CALCULATE_WITH_YOUR_APIKEY"
}

响应示例

OK

代付订单查询

属性 内容
版本 1.0
网关 https://merchant.88pay.net/Payment_Dfpay_query.html
请求方式 POST
参数名称 参数含义 是否参与签名 参数说明
out_trade_no 商户代付订单号 是 订单号唯一
mchid 商户号 是 平台分配商户号
pay_md5sign MD5数据签名 否 请看MD5签名处理
参数名称 参数含义 是否参与签名 参数说明
status 提现状态 是 success:请求成功,不代表业务成功
error:请求失败
msg 状态描述 是 代付结果描述
mchid 商户号 是 status=success 返回
out_trade_no 商户代付订单号 是 status=success 返回
amount 代付金额 是 status=success 返回
transaction_id 平台订单号 是 status=success 返回
refCode 业务状态 是 status=success 返回
refCode 1:成功 2:失败
refMsg 业务描述 是 status=success 返回
success_time 代付成功时间 是 status=success,refCode=1成功时返回
sign MD5数据签名 否 请看MD5签名处理

代付下单返回 status=success 只表示申请已受理,不代表出款成功。查询需同时满足 status=success、refCode=1 才是成功。

请求参数示例(以表单提交)

{
  "mchid": "10000",
  "out_trade_no": "DEMO_PAYOUT_001",
  "pay_md5sign": "CALCULATE_WITH_YOUR_APIKEY"
}

成功响应示例

{
  "status": "success",
  "msg": "请求成功",
  "mchid": "10000",
  "out_trade_no": "DEMO_PAYOUT_001",
  "amount": "100000.00",
  "transaction_id": "DEMO_PLATFORM_PAYOUT",
  "refCode": "1",
  "refMsg": "成功",
  "success_time": "2026-10-11 12:05:00",
  "sign": "CALCULATE_WITH_YOUR_APIKEY"
}

响应示例

{
  "status": "success",
  "msg": "请求成功",
  "mchid": "10000",
  "out_trade_no": "DEMO_PAYOUT_001",
  "amount": "100000.00",
  "transaction_id": "DEMO_PLATFORM_PAYOUT",
  "refCode": "3",
  "refMsg": "处理中",
  "sign": "CALCULATE_WITH_YOUR_APIKEY"
}

失败响应示例

{
  "status": "error",
  "msg": "请求成功",
  "refCode": "7",
  "refMsg": "交易不存在"
}

代付查询状态码

refCoderefMsg
1成功
2失败 / 失败,请驳回
3处理中
4待处理
5审核驳回
6待审核
7交易不存在
8未知状态

余额查询

属性 内容
版本 1.0
网关 https://merchant.88pay.net/Payment_Dfpay_querybalance.html
请求方式 POST
参数名称 参数含义 是否参与签名 参数说明
mchid 商户号 是 平台分配商户号
pay_md5sign MD5数据签名 否 请看MD5签名处理
参数名称 参数含义 参数说明
status 状态 success:请求成功
error:请求失败
msg 描述 结果描述
balance 余额 status=success 返回

请求参数示例(以表单提交)

{
  "mchid": "10000",
  "pay_md5sign": "CALCULATE_WITH_YOUR_APIKEY"
}

成功响应示例

{
  "status": "success",
  "msg": "查询成功",
  "balance": "1000000.00"
}

失败响应示例

{
  "status": "error",
  "msg": "签名验证失败",
  "data": []
}

常见问题

超时、HTML 错误页或无法解析的响应属于结果未知,请先用原商户订单号查询并核对后台,再决定后续处理;不要立即换订单号重复发起代付。

金额使用接口规定的货币单位,不要自行乘除 100;小数位和原始字符串格式在签名与提交时必须一致。商户订单号应保持唯一。

验签失败时核对参与字段、大小写、空值、金额格式、回调地址和密钥。接口参数名与 JSON 状态值不随页面语言切换而改变。