GPay 创付 · 开发者文档
回调通知
买家付款成功后,平台会向你的 notify_url 发起一次 HTTP POST,内容为 application/x-www-form-urlencoded 的签名表单。你的系统验签通过后完成发货并返回 success。
通知内容
pid=10012&trade_no=gw_ab12cd34ef56&out_trade_no=order-9527&type=wxpay&money=9.90&trade_status=TRADE_SUCCESS&sign={md5hex}&sign_type=MD5
处理步骤
- 收到 POST,先验签:按参数名升序拼接
k=v&k=v…,追加你的key,MD5 小写,与sign比对。详见 签名与验签。 - 幂等:同一
trade_no/out_trade_no只发货一次;已处理的直接返回success。 - 完成发货/开通权益。
- 响应纯文本
success(不要带引号、HTML、JSON、换行)。其他任何内容都视为失败,平台会重试。
重试节奏
首次立即投递;失败后按 15s / 30s / 1m / 2m / 5m / 15m / 30m / 1h / 3h / 6h / 12h / 24h 重试共 12 次(含首次投递共 13 次),仍失败则标记为“已放弃”。13 次都失败后,商户会收到一封说明邮件;你也可以在控制台「回调日志」页对该笔订单点重放,恢复队列。
排查清单(收不到通知时按序检查)
- notify_url 是否 https 可达(平台拒绝 http、内网地址与自身地址)
- 你的接口是否报错 / 超时 / 非 200 / 返回了空
- 是否返回了
success(常见坑:返回SUCCESS、{\"msg\":\"success\"}、500 错误页) - 是否验签失败(最常见:key 里有空格、未按参数名升序、中文未做 UTF-8 原样参与、把
sign/sign_type也参与了签名) - 控制台「回调日志」能看到最近 50 次投递状态与错误分类(dns / connect / timeout / tls / 4xx / 5xx)
手动查单
如果不确定订单状态,可用 GET /epay/query?act=order&pid=…&key=…&out_trade_no=… 查询;返回 code=1 且 trade_status=TRADE_SUCCESS 即已支付。注意:查到成功≠你收到了回调,查询用于兜底对账,发货仍以验签通过的回调为准。