laravel模型和微信支付时注意的问题

1.对于update 必须修改里面的字段才算修改成功,不改的话也算失败,因此最好加入一个updated_at字段。
2.对于数据库里的字段 若有状态最好从1开始。

  1. 支付这块功能,比如说
    有订单要去支付 此时前台应一直访问一个检测支付的接口,判断返回值是否支付成功,没有成功的话一直去请求(有一定的延迟效应)。(更安全的做法是不仅前台判断支付成功,后台也判断是否支付成功)
    而后台去绑定一个字段,例如为lock=0 表示第一次支付的时候,当支付完成的时候把lock=1,下次判断该订单如果lock=1的话,就不执行上次执行过的代码。这样就相当于当前订单已支付,不重新生成订单。(处理并发问题)

  2. 有时候SQL的确能解决问题但是太复杂,查询时间太长,还不如简单的查出来详情,然后去if判断各种类型。

  3. [修改生成一口价订单接口] 一口价点击微信支付的瞬间,锁定当前拍品给当前生成订单的用户 ,生成订单表 , 存 trade_out_no , goods_id,user_id , [注意 : 如果佳蕾给你了order_id 则代表当前用户是从我买到的进来,然后生成新的trade_out_no的时候修改原来的order表,不要生成新的order];

  4. [修改检查一口价订单接口] 类似竞拍订单,由生成新订单更改为修改原订单

  5. [写一个计划任务] 检查15分钟之内, 未支付,trade_out_no存在的订单 , 调用微信的check_pay,判断在微信那边是否支付成功。然后修改订单状态。

  6. 微信支付的时候不点完成是不触发检测支付的,尽管付款成功,但没点完成按钮,还是未修改状态,这时后台应该去监听那个订单是否还未支付,如果有,则手动调用检测支付,完成支付,修改状态。

9.接受参数去判断的时候,尽量去找关键点,这个意思是如果条件不满足就不需要查其他的东西了,这样可以节省访问时间。

10.微信支付成功码: $order[‘trade_state’] == 'SUCCESS';

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容