9
- [产品介绍](./1) - [支付流程和用户体验](./3) - [快速开始](./34) - [支付流程](./35) - [退款流程](./36) - [查询流程](./37) - [对账流程](./53) - [二级商户维护流程](./38) - [接入指南](./39) - [密钥准备](./40) - [示例代码下载](./45) - [接口调用](./46) - [签名请求并创建请求URL](./47) - [通知处理](./48) - [异步通知验签](./49) - [同步通知验签](./50) - [沙箱测试](./41) - [沙箱环境使用准备](./42) - [沙箱部署](./43) - [沙箱运行](./44) - [应用上线](./51) - [接口列表](./6) - [网站支付接口](./6) - [请求参数](./6) - [同步返回](./7) - [示例](./8) - [异步通知](./9) - [错误码](./10) - [修改记录](./57) - [退款接口](./11) - [请求参数](./11#Request) - [同步返回](./11#Response) - [示例](./11#Samples) - [异步通知](./52) - [错误码](./12#Errors) - [修改记录](./57#Errors) - [单笔查询接口](./13) - [请求参数](./13#QueryRequest) - [同步返回](./13#QueryResponse) - [示例](./13#QuerySamples) - [错误码](./14#Errors) - [对账文件下载接口](./15) - [请求参数](./15#Forex_compare_file_Request) - [同步返回](./15#Forex_compare_file_Response) - [示例](./15#Forex_compare_file_Samples) - [错误码](./16) - [结算文件下载接口](./17) - [请求参数](./17#Forex_liquidation_file_Request) - [同步返回](./17#Forex_liquidation_file_Response) - [示例](./17#Forex_liquidation_file_Samples) - [错误码](./18) - [汇率查询接口](./19) - [请求参数](./19#Forex_rate_file_Request) - [同步返回](./19#Forex_rate_file_Response) - [示例](./19#Forex_rate_file_Samples) - [错误码](./20) - [境外二级线上商户报备接口](./33) - [请求参数](./33#request) - [同步返回](./33#sync) - [示例](./33#samples) - [错误码](./33#error) - [文档变动历史](./33#history) - [境外二级线上商户报备状态查询接口](./55) - [请求参数](./55#request) - [同步返回](./55#sync) - [示例](./55#samples) - [错误码](./55#error) - [文档变动历史](./55#history) - [数字签名](./54) - [密钥准备](./40) - [签名](./47) - [异步通知验签](./49) - [同步通知验签](./50) - [支付宝对账文件](./30) - [关于支付宝账单](./30) - [获取账单](./31) - [API](./31#API) - [支付宝国际网站](./31#Global) - [SFTP](./31#SFTP) - [账单详细内容](./32) - [交易文件](./32#TransactionFile) - [结算文件](./32#SettlementFile) - [常用链接](./25) - [国际商户服务网站](./25) - [分账明细说明](./28) - [退分账明细说明](./29)
新-境外收单 - PC

异步通知

除了通过网页重定向的API响应,API响应也可以以异步POST方法发送给合作伙伴,如果商家在请求中设置了参数“notify_url”并且目标URL会处理异步通知。这种支付解决方案必须处理异步通知。
支付宝会在25小时内自动重复多次发送异步通知直到商家服务器回复“success”消息在响应中。
在处理同步返回和异步通知的时候,需要考虑下面几个方面:

  • 异步通知可能比同步返回先到达
  • 重复的异步通知消息

异步通知返回参数

参数名

类型(长度字节)

描述

示例

基本参数

sign_type

String

签名方式
DSA, RSA, MD5.

RSA

sign

String

签名

e5815a4556db338ed237f7d3fd222184

业务参数

notify_type

String

通知类型, value: trade_status_sync.

trade_status_sync

notify_id

String(34)

支付宝通知流水号,境外商户可以用这个流水号询问支付宝该条通知的合法性

92c60707dc43a5b2d648b7b4d3c2e1592g

notify_time

Timestamp

通知时间(支付宝时间),格式:YYYY-MM-DD hh:mm:ss

2015-06-30 09:56:02

trade_status

String(32)

交易状态:
TRADE_FINISHED
TRADE_CLOSED

TRADE_FINISHED

trade_no

String(64)

支付宝交易号。最短16位,最长64位

2015070800001000100080029361

out_trade_no

String(64)

境外商户交易号(确保在境外商户系统中唯一)

2525759240575424

currency

String(3)

结算币种.

USD

total_fee

Number(8,2)

商品的外币金额,范围是0.01~1000000.00.

11.00

异步通知示例

https://www.namesilo.com/alipay_ipn.php?notify_id=92c60707dc43a5b2d648b7b4d3c2e1592g&notify_type=trade_status_sync&sign=***&trade_no=2015063000001000080055080394&total_fee=7.99&out_trade_no=9677726c8757aea6d4df81091811b047&currency=USD&notify_time=2015-06-30 09:56:02&trade_status=TRADE_FINISHED&sign_type=MD5

http://www.namesilo.com/alipay_ipn.php?notify_id=0578bc470961e3b43fb676db616711fd2k&notify_type=trade_status_sync&sign=***&trade_no=2015061700001000100000583330&total_fee=11.00&out_trade_no=2082389608326064&currency=USD&notify_time=2015-06-17+02%3A37%3A02&trade_status=TRADE_CLOSED&sign_type=RSA

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

异步通知校验

为了系统的健康,支付宝建议校验异步通知。商家只能校验过去1分钟之内的异步通知消息,并且在商家服务器返回‘success’消息之前。
示例:

https://intlmapi.alipay.com/gateway.do? service=notify_verify&partner=2088101122136241&notify_id=+4465b04e84cb6bacc2bd1b52232c0b8gjg&sign=ciSBXc7gjCfXW8KMBxFiFH2cbMZtFelfTOGKqY2NF7q98RnH3E%2BiF5Cj%2Fu%2Bl8py1D%2FOsE%2FAva1ls8A6Tw1MzhG6ideJSgh4FxWmAjEnlczdfLj%2FqzA6qGzxdKGEXaSDFmTGglOembXUqK8g8ajICD%2BBH7xoxBRY7vtfylEXtojs%3D&sign_type=RSA
更多的信息,请查看接口notify_verify

客服小机器人

NEED HELP ?