支付宝接口中:通知页面notify_url、返回页面return_url的区别

2019-02-10

两个页面我建议都要去做:

  • 返回页面: 主要用于用户在支付宝页面付款完毕后自动跳转回你自己的网址, 你根据他的参数告诉用户已经支付成功, 然后你再更新你自己订单表的状态为已支付.
  • 异步通知页面: 其实是双保险机制, 如果同步通知后没有跳转到你的网址, 可能用户关了, 可能网速慢, 即无法触发你更新订单状态为已支付的controller, 这时候异步通知就有作用了, 不过你要判断一下, 如果订单已经变为已支付, 则不必再更新一次了, 只返回给支付宝success即可, 否则他会一直异步通知你

一、return_url

  1. 同步通知,是给用户看的。买家可以看到。
  2. 用户付款成功后,从支付宝跳转到这个页面。
  3. 在这个页面中加入相关业务处理,比如提示支付成功,标记付款成功信息。
  4. 需要对支付宝传递过来的签名进行认证。
  5. 用来展现成功付款信息给前台付款用户。
  6. 支付宝那边只返回一次。
  7. 由于用户在付款完成后,直接关闭付款页面,不跳转到return_url的页面,会导致return_url的相关业务处理不了。

二、notify_url

  1. 异步通知,是给服务器看的。买家看不到。
    why?同步通知方便用户查看是否充值成功,如果这里就判断并更新数据库,迟早会出事,首先网路慢或者用户关闭太早,造成用户充值成功但是数据库没有更新,同时这里更新数据库容易被伪造,数据不真实。异步通知一般都采用自动通知,并且有证书校验,不受前端影响,伪造数据难度高。
  2. 如果不传递,则不通知。
  3. 更改订单状态为付款成功,等相关业务处理。
  4. 返回字符串”success”或者”fail”,不能带有任何HTML信息。
  5. 付款成功后就通知一次,如果不成功,1分钟、3分钟、10分钟、半个小时。。。后再通知,直到返回success。
  6. 过期时间是48小时,如果48小时内都通知不成功,那么就不再通知。

本文参考:https://blog.csdn.net/qq_36850813/article/details/81064181

@2020  TCODE    津ICP备13002520号-4