《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
关于 LearnKu
先说结论:不需要
再说细节:
同步和异步通知地址不需要检测用户的支付结果,只负责处理用户支付后的业务逻辑,订单插入等。通知地址的参数都是要签名验证的,不必要担心
你只要校验签名就可以了 签名的校验可以保证消息的准确的
第一个疑问:1. 对回调的来源不信任,密钥签名就是做这个的 2. 支付状态,回调中都会携带状态信息,如微信
return_coderesult_code均为SUCCESS代表支付成功。3. 前1、2点,基本上没必要去 “订单查询 api 看下订单有没有支付成功”,但不是没特殊情况(百度收银台的开发中遇到了,一两句说不明白)第二个疑问:回调业务逻辑中,返回给支付平台的 处理结果,要与业务执行结果一致,也就是说,1.业务逻辑处理成功了则返回成功,不可以不返回或不按规定格式返回,否则会一直回调;2. 发生重复回调的情况,避免重复执行业务逻辑,如查询数据库订单状态为已支付,可以直接忽略这次回调即可,或返回处理成功告知已收到回调并且完成了业务逻辑,则不会再回调了。3. 避免业务逻辑未完成,如数据错误但没有使用mysql事务,但程序最终返回了处理成功。
第一个问题:回调可做可不做,常见支付平台本身就会使用轮询的方式对服务器进行回调,自己可以按照时效性或者平台需求做队列
第二个问题:回调的数据是一致性的,支付状态本身就已经是幂等性的一种设计,只有在订单状态为
发生变化状态才会触发回调事务,已支付 以及 取消订单 都不会进行任何操作支付回调需要放入队列吗?