同步返回通知与异步通知区别解析

简介: 一,什么是同步通知  同步通知是指在请求参数中传入return_url参数,支付成功后跳转到return_url地址后携带的返回参数,如下可以在同步跳转的地址栏看到同步返通知:return_url参数 后面?拼接的就是同步返回参数。

一,什么是同步通知


  同步通知是指在请求参数中传入return_url参数,支付成功后跳转到return_url地址后携带的返回参数,如下可以在同步跳转的地址栏看到同步返通知:

return_url参数 后面?拼接的就是同步返回参数。


注:目前在支付接口中只有手机网站支付的接口和电脑网站支付的接口可以传入return_url参数 来接收到同步通知 其他的支付接口 如APP支付和当面付的接口都是不支持的。


二、什么是异步返通知

  异步通知是指在请求参数中传入notify_url参数,在用户支付成功后,支付宝服务器会按照这个异步地址使用post方式给notify_url来发送交易信息,如下:

gmt_create=2018-06-19[/url] 10:45:21&charset=UTF-8&seller_email=$$$&subject=使用充值:0.01元&sign=$$$&body=欢迎使用&buyer_id=2088902846029999&invoice_amount=0.01&notify_id=fa5f28482957168bb30be6230000bb7m3l&fund_bill_list=[{"amount":"0.01","fundChannel":"ALIPAYACCOUNT"}]&notify_type=trade_status_sync&trade_status=TRADE_SUCCESS&receipt_amount=0.01&app_id=2018061260369999&buyer_pay_amount=0.01&sign_type=RSA2&seller_id=2088131465899999&gmt_payment=2018-06-19 10:45:22&notify_time=2018-06-19 10:59:12&passback_params=1007511859282415616&version=1.0&out_trade_no=20180619109999&total_amount=0.01&trade_no=2018061921001004790596169999&auth_app_id=2018061260369999&buyer_logon_id=124***@qq.com&point_amount=0.00


notify_url地址由商户自己定义保证可以正常使用外网post方式访问,否则是无法正常接收到异步通知的。

三、同步通知和异步通知的区别

  1、接收方法不同

     同步通知是在同步返回的页面使用get方式来获取的 异步通知是使用post方式发送到异步地址上的,只能使用post方式来接收。


  2、返回的参数不同

   同步通知返回的参数比异步通知返回的参数是要少一些的,最明显的就是异步返回参数会返回trade_status(交易状态)参数 但是同步返回的参数是没有的,所以建议使用异步返回的参数来确认交易是否成功 如果trade_status=TRADE_SUCCESS 表示就是交易成功了


  3、发送的时间不同

     一般情况下,异步通知比同步通知稍慢(几乎无感知)。同步和异步通知的发送和网络环境、服务器处理速度等因素关系较大,具体是先接收到同步通知还是异步通知,建议以实际接收到的为准。


  4、参数返回的逻辑不一样

   (1.)同步通知是在支付成功后的页面跳转,一般是用于展示给用户的,以手机网站支付为例:

   付款成功会跳转到商户请求参数中传入的return_url地址页面:

(2.)异步通知参数是直接由支付宝服务器发送到商户的异步地址上的 不存在页面跳转是直接的服务器交互。


四、关于验签

  同步通知和异步通知都是使用相同的验签方法验签的,如果是调用的SDK那就是都是使用的rsaCheckV1方法。


  详细的验签建议参考:

  关于支付宝异步通知的那些事:[url]https://openclub.alipay.com/read.php?tid=1314&fid=69&ant_source=zsearch[/url]

  验签失败自查方案:[url]https://openclub.alipay.com/read.php?tid=1598&fid=69[/url]


注:同步通知参数和同步响应参数是不一样的,同步通知返回是return_url参数返回的信息,同步响应则是请求成功接口返回的信息

      详细的建议参考:[url]https://openclub.alipay.com/read.php?tid=7328&fid=69[/url]



如有其它疑问欢迎大家可以在本帖后发帖追问

目录
相关文章
|
2天前
|
存储 Java 编译器
java和c++的主要区别、各自的优缺点分析、java跨平台的原理的深度解析
java和c++的主要区别、各自的优缺点分析、java跨平台的原理的深度解析
140 0
|
7月前
|
存储 编译器
深入解析i++和++i的区别及性能影响
在我们编写代码时,经常需要对变量进行自增操作。这种情况下,我们通常会用到两种常见的操作符:i++和++i。最近在阅读博客时,我偶然看到了有关i++和++i性能的讨论。之前我一直在使用它们,但从未从性能的角度考虑过,这让我突然产生了兴趣。尽管它们看起来相似,但它们之间存在微妙而重要的区别。在本文中,我们将详细解释i++和++i之间的区别,以及它们对代码性能的影响。
247 1
深入解析i++和++i的区别及性能影响
|
2天前
|
存储 关系型数据库 MySQL
MySQL引擎对决:深入解析MyISAM和InnoDB的区别
MySQL引擎对决:深入解析MyISAM和InnoDB的区别
37 0
|
2天前
|
XML Java 开发者
深入解析 Spring 和 Spring Boot 的区别
深入解析 Spring 和 Spring Boot 的区别
|
2天前
|
存储 搜索推荐 编译器
【C语言】一篇文章深入解析联合体和枚举且和结构体的区别
【C语言】一篇文章深入解析联合体和枚举且和结构体的区别
|
2天前
|
监控 算法 Unix
【Linux 异步操作】深入理解 Linux 异步通知机制:原理、应用与实例解析
【Linux 异步操作】深入理解 Linux 异步通知机制:原理、应用与实例解析
78 0
|
2天前
|
安全 C++ 开发者
【C++多线程同步】C++多线程同步和互斥的关键:std::mutex和相关类的全面使用教程与深度解析
【C++多线程同步】C++多线程同步和互斥的关键:std::mutex和相关类的全面使用教程与深度解析
21 0
|
2天前
|
并行计算 API 计算机视觉
Python多线程与多进程:概念、区别及应用场景解析
Python多线程与多进程:概念、区别及应用场景解析
|
2天前
|
缓存 负载均衡 网络协议
什么是云解析DNS和普通的DNS解析有何区别
什么是云解析DNS和普通的DNS解析有何区别
172 0

推荐镜像

更多