服务器异步通知参数说明

支付宝对商户的请求数据处理完成后,会将处理的结果数据通过服务器主动通知的方式通知给商户网站。这些处理结果数据就是服务器异步通知参数。

参数 参数名称 类型(长度范围) 参数说明 是否可为空 样例
notify_time 通知时间 Date 通知发送的时间。格式为:yyyy-MM-dd HH:mm:ss。 不可空 2009-08-12 11:08:32
notify_type 通知类型 String 通知的类型。 不可空 batch_refund_notify
notify_id 通知校验ID String 通知校验ID。 不可空 70fec0c2730b27528665af4517c27b95
sign_type 签名方式 String DSA、RSA、MD5三个值可选,必须大写。 不可空 MD5
sign 签名 String 请参见签名验证 不可空 b7baf9af3c91b37bef4261849aa76281
batch_no 退款批次号 String 原请求退款批次号。 不可空 20060702001
success_num 退款成功总数 String 退交易成功的笔数。0<= success_num<= 总退款笔数。 不可空 2
result_details 退款结果明细 String 退款结果明细:
退手续费结果返回格式:交易号退款金额处理结果$退费账号退费账户ID退费金额处理结果;<br>不退手续费结果返回格式:交易号退款金额^处理结果。
若退款申请提交成功,处理结果会返回“SUCCESS”。若提交失败,退款的处理结果中会有报错码,参见即时到账批量退款业务错误码
不可空 2010031906272929^80^SUCCESS$jax_chuanhang@alipay.com^2088101003147483^0.01^SUCCESS
http://商户自定义地址/alipay/notify_url.php?notify_time=2009-08-12+11%3A08%3A32&notify_type=batch_refund_notify&notify_id=70fec0c2730b27528665af4517c27b95&sign_type=MD5&sign=_p_w_l_h_j0b_gd_aejia7n_ko4_m%252Fu_w_jd3_nx_s_k_mxus9_hoxg_y_r_lunli_pmma29_t_q%3D%3D&batch_no=20060702001&success_num=2&result_details=2010031906272929%5E80%5ESUCCESS

说明:
本样例仅供参考,实际网关为商户域名。

通知触发条件

触发条件名 触发条件描述 触发条件默认值
退款处理结束 退款处理结束。 true(触发通知)

服务器异步通知页面特性

  1. 必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;
  2. 支付宝是用POST方式发送通知信息,因此该页面中获取参数的方式,如:
    request.Form("out_trade_no")、$_POST['out_trade_no'];
  3. 支付宝主动发起通知,该方式才会被启用;
  4. 只有在支付宝的交易管理中存在该笔交易,且发生了交易状态的改变,支付宝才会通过该方式发起服务器通知(即时到账中交易状态为“等待买家付款”的状态默认是不会发送通知的);
  5. 服务器间的交互,不像页面跳转同步通知可以在页面上显示出来,这种交互方式是不可见的;
  6. 第一次交易状态改变(即时到账中此时交易状态是交易完成)时,不仅页面跳转同步通知页面会启用,而且服务器异步通知页面也会收到支付宝发来的处理结果通知;
  7. 程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。
    一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h);
  8. 程序执行完成后,该页面不能执行页面跳转。如果执行页面跳转,支付宝会收不到success字符,会被支付宝服务器判定为该页面程序运行出现异常,而重发处理结果通知;
  9. cookies、session等在此页面会失效,即无法获取这些数据;
  10. 该方式的调试与运行必须在服务器上,即互联网上能访问;
  11. 该方式的作用主要防止订单丢失,即页面跳转同步通知没有处理订单更新,它则去处理;
  12. 当商户收到服务器异步通知并打印出success时,服务器异步通知参数notify_id才会失效。也就是说在支付宝发送同一条异步通知时(包含商户并未成功打印出success导致支付宝重发数次通知),服务器异步通知参数notify_id是不变的。
onlineServer