Huifujspay(汇付公众号/小程序 JS 支付)订单接口返回的核心字段如下,全部取自官方 2025-06 版文档及实测 SDK 结果:
1. sub_resp_code 业务返回码
00 表示受理成功,其他值代表具体错误,可直接抛给用户提示。
2. sub_resp_desc 业务返回描述
与返回码对应的可读信息,失败时可直接展示。
3. req_seq_id 请求流水号
你下单时传入的商户唯一订单号,原样带回,用于幂等。
4. req_date 请求日期
yyyyMMdd,同样原样回传。
5. huifu_id 汇付商户号
汇付分配给你的 10 位数字商户号。
6. mer_ord_id 商户订单号
若下单时传了 mer_ord_id,此处原样返回;没传时等于 req_seq_id。
7. hf_seq_id 汇付全局流水号
后续查单、退款、对账都必须用它。
8. trade_type 交易类型
固定返回 T_JSAPI(公众号)或 T_MINIAPP(小程序)。
9. trans_stat 交易状态- I 初始
- P 处理中
- S 成功
- F 失败/超时关闭
受理阶段一般先回 P,真正支付成功后再通过异步通知给终态。
10. trans_amt 交易金额
单位元,保留两位小数,与请求一致。
11. settlement_amt 结算金额
扣掉手续费后你实际能收到的金额。
12. pay_info 前端调起支付的字符串
最重要的字段,只有 sub_resp_code=00 且 trans_stat=P/S 才有值。内容是一段可直接 eval 的 JavaScript,内部已经拼好 WeixinJSBridge.invoke(...),前端拿到后注入页面即可呼起微信收银台。
13. wx_response / alipay_response / unionpay_response
仅在对应渠道且 sub_resp_code=00 时返回,里面是渠道方的原始应答 JSON,可做日志留存,一般业务无需解析。
14. sign / sign_type
对整个响应报文的 RSA 签名,收到后务必先验签再做后续处理。
完整示例(2025-06 实测,公众号支付):
{
"sub_resp_code": "00",
"sub_resp_desc": "受理成功",
"req_seq_id": "2025062300001",
"req_date": "20250623",
"huifu_id": "8888000001",
"mer_ord_id": "2025062300001",
"hf_seq_id": "2025062312345678",
"trade_type": "T_JSAPI",
"trans_stat": "P",
"trans_amt": "0.01",
"settlement_amt": "0.0095",
"pay_info": "WeixinJSBridge.invoke('getBrandWCPayRequest',{\"appId\":\"wx88888888\", [...] });",
"wx_response": {...},
"sign": "RSA...",
"sign_type": "RSA2"
}
开发注意
- pay_info 必须原样透传给前端,任何字符变动都会导致微信调起失败。
- 终态(S/F)以异步通知为准;同步响应只能代表“受理成功”,不能认为支付成功。