开发者社区> 问答> 正文

#支付宝 同步通知与异步通知的区别?

同步通知与异步通知的区别?

展开
收起
保持可爱mmm 2020-05-05 17:08:39 1877 0
1 条回答
写回答
取消 提交回答
  • 一、什么是同步通知

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

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

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

    二、什么是异步通知

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

    gmt_create=2018-06-19 10:45:21&charset=UTF-8&seller_email=$$$&subject=使用充值:0.01元&sign=$$$&body=欢迎使用&buyer_id=208***29999&invoice_amount=0.01&notify_id=fa5f28482957168bb30be6230000bb7m3l&fund_bill_list=[{"amount":"0.01","fundChannel":"ALIPAYACCOUNT"}]&notify_type=trade_status_sync™_status=TRADE_SUCCESS&receipt_amount=0.01&app_id=201803***999&buyer_pay_amount=0.01&sign_type=RSA2&seller_id=208***999&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™_no=2018061921001004790596169999&auth_app_id=20180***99&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)异步通知参数是直接由支付宝服务器发送到商户的异步地址上的 不存在页面跳转是直接的服务器交互。

    2020-05-05 17:08:49
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载