异步通知

支付成功后,平台会以 GET 方式请求商户提交订单时传入的 notify_url,携带以下参数:

参数说明
pid商户 ID
trade_no平台订单号
out_trade_no商户订单号
type支付方式
name商品名称
money订单金额
trade_status固定为 TRADE_SUCCESS
param下单时传入的扩展参数
sign / sign_type签名与签名类型

处理要求

  • 验签通过后,务必判断订单状态与金额是否一致,再执行发货等业务;
  • 处理成功后在响应体直接输出 success(不含任何 HTML);
  • 未收到 success 时平台会按 1、3、20 分钟等间隔重试通知;
  • 同一订单可能收到多次通知,请做幂等处理。
// 通知处理示例
$params = $_GET;
$sign = $params['sign']; unset($params['sign'], $params['sign_type']);
ksort($params);
if (md5(urldecode(http_build_query($params)) . $merchantKey) !== $sign) exit('fail');
if ($params['trade_status'] === 'TRADE_SUCCESS') {
    // TODO: 校验金额、幂等更新订单
}
echo 'success';