支付宝接口中return_url和notify_url的作用

  • 首次尝试调用接口,这是我自己的理解不知道对不对o(╯□╰)o ,如果有问题请大家帮我修改

先小结说明:根据return_url这个路径会跳转一个界面,这个界面可以用来向用户展示购物成功,并显示具体订单。notify_url是支付宝系统向你的系统发送信息的一个路径。

模拟支付流程图如下:

  1. 提交顶单
  2. 跳转支付界面
  3. 这里选择扫码登录支付
  4. 支付成功
  5. 返回同步通知页面return_url

    当前页面可以用来展示成功付款信息给付款用户,还可以添加从后台数据库获取的其它信息,比如购买时间,商品详情等。
    (上面的3个数据分别是支付宝返回的订单号,你自己系统生成的订单号,和总金额。可以参考官网文档学习。 )

总结具体的流程处理:

return_url就用来显示信息,可以把数据库查询数据的逻辑写在这里,然后显示在当前页面。比如用@requestMapping映射return_url路径,在方法里写具体路径。生成的订单插入应该不能在这里写。比如在上面的流程中第4步支付成功了,但用户关掉了页面,这时就不会执行第五步,因此@requestMapping不会映射return_url路径,那写在这里的逻辑就不会执行。如果用户真关闭了页面,也只是查询的信息不显示,而不是订单没插入数据库而丢失。

notify_url的方法可以用来跟新数据库信息,比如订单跟新为已支付。那顶单的插入就在提交顶单后进行,并设置订单信息为未支付。也就是订单信息插入数据库要在return_url和notify_url之前。

补充说明,接口调用成功后发现notify_url一直验证失败,查看日志显示有乱码。所以应该跟编码有关,但是参数什么的都都设置正确。下图是可能的解决办法。

附:String.getBytes()方法的详解可以看这位作者的帖子 日志显示乱码了

android url跳转支付宝 打开支付宝url_spring

android url跳转支付宝 打开支付宝url_spring_02