本文档面向商户接入代付(出款)业务。商户通过签名请求向平台发起代付,平台异步回调代付结果,商户验签后入账。
| 项目 | 值 |
|---|---|
| 下单接口 | POST https://apiflb.88upay.com/daifu_Dffapay_add.html |
| 请求格式 | application/x-www-form-urlencoded |
| 字符编码 | UTF-8 |
| 签名算法 | MD5(大写) |
| 商户号 mchid | 平台分配(示例:10464) |
| 密钥 apikey | 平台分配,仅用于签名,切勿泄露 |
| 参数 | 必填 | 说明 |
|---|---|---|
| mchid | 是 | 商户号 |
| out_trade_no | 是 | 商户订单号,唯一 |
| money | 是 | 代付金额,保留两位小数,如 5000000.00(单位 VND) |
| bankname | 是 | 收款银行名称/编码 |
| cardnumber | 是 | 收款银行卡号 |
| accountname | 是 | 收款人姓名 |
| notifyurl | 是 | 异步回调地址(接收代付结果)。为空则平台不发回调 |
| province | 否 | 省 |
| city | 否 | 市 |
| subbranch | 否 | 支行 |
| r_time | 否 | 请求时间戳(10位秒级)。可选;若上送,与服务器时差需 < 6 秒,否则报错。建议上送以防重放 |
| extends | 否 | 扩展参数,base64_encode(json_encode([...]))。若上送则需参与签名 |
| pay_md5sign | 是 | 签名(见第 4 节) |
成功:
{"status":"success","msg":"代付申请成功","transaction_id":"P0622295680986222eb"}
失败:
{"status":"error","msg":"错误原因","data":[]}
transaction_id 为平台系统订单号,请保存以便对账。
代付完成后,平台向商户 notifyurl 发送 POST(x-www-form-urlencoded)。
| 参数 | 说明 |
|---|---|
| mchid | 商户号 |
| orderid | 商户订单号(即下单时的 out_trade_no) |
| sysorderid | 平台系统订单号 |
| money | 代付金额 |
| status | 1=代付成功,2=代付驳回/失败 |
| remark | 备注 |
| timestamp | 回调时间戳 |
| pay_md5sign | 签名(见第 4 节,回调验签) |
success。否则平台判定回调失败,将按策略重试(每分钟一次)直到收到 success。orderid/sysorderid 做幂等,避免重复入账。pay_md5sign),按参数名 ASCII 升序排序(ksort)。k1=v1&k2=v2&...&(每项后带 &)。key=APIKEY。pay_md5sign = strtoupper(md5(上述字符串))。// 待签名串(已按 ksort 排序,末尾接 key)
accountname=收款人&bankname=银行&cardnumber=卡号&city=Hanoi&mchid=10464&money=5000000.00¬ifyurl=https://.../notify&out_trade_no=ORDER123&province=Hanoi&r_time=1782129600&subbranch=支行&key=APIKEY
// MD5 后转大写即为 pay_md5sign
回调签名参数按固定顺序拼接(不排序):mchid → orderid → sysorderid → money → status → remark → timestamp,跳过空值,末尾追加 key=APIKEY,MD5 转大写后与 pay_md5sign 比对。
$str = "mchid={mchid}&orderid={orderid}&sysorderid={sysorderid}&money={money}&status={status}&remark={remark}×tamp={timestamp}&key=APIKEY";
$sign = strtoupper(md5($str)); // 与回调中的 pay_md5sign 比对,一致即验签通过
回调: mchid=10464 orderid=FORMALPAYOUT20260622195927 sysorderid=P0622295680986222eb
money=5000000.000 status=1 remark=1 timestamp=1782129602
pay_md5sign=AF57C47007307A93229FC48DAF2EA2F2
商户重算 → AF57C47007307A93229FC48DAF2EA2F2 ✓ 一致success + transaction_id。notifyurl(公网 HTTPS),实现:验签 → 入账 → 返回 success。success(平台不再重试即为成功)。status:1 成功入账,2 失败需退款/标记。| 返回 | 原因 |
|---|---|
| IP白名单限制!x.x.x.x | 下单来源 IP 未加白,联系平台加白 |
| 缺少签名参数pay_md5sign | 未传 pay_md5sign |
| 下单r_time时间差太大 | r_time 与服务器时差 ≥ 6 秒,请同步时间 |
| 代付API未开启 | 商户未开通代付,联系平台 |
如需测试商户号/密钥或加白 IP,请联系平台对接人。