zoukankan      html  css  js  c++  java
  • 关于使用微信支付商品下单的设计思路

    在接入微信支付之后,起初做了校园快递接单的项目,关于下单什么的数据量都算是比较小的。

    但是中途转型做线上商超系统,心想挺简单的,支付什么的都已经对接好了,然后用户购买商品完毕后微信支付会将用户所购买的商品信息以及用户信息回调至自己的服务器,然后服务器进行操作。

    但是在做了百分之80的时候发现回调的时候notify会报错,没有接收到用户下单的信息。

    当时感觉特别懵逼,经过反复琢磨,差不多意思就是接收不了那么长的数据,可能是官方接口的限制吧。

    【1.预下单】

    然后就重新把数据表设置了一下,弄了一个预下单的数据表,专门用来存储用户下单的信息,接收用户的用户名以及几十个或者十几个商品列表信息,还有价格信息,都存入此表,每次用户下单的时候需要把用户的信息以及下单的商品列表打包,然后自己写一个接口用来接收这些数据,接收之后存入预下单表,然后返回一个本条数据在预下单表的主键ID。

    【2.数据处理】

    客户端接收到主键之后只需要把主键ID携带进微信支付的附加参数,然后在微信回调的notify接收此附加参数,获取之后通过此ID查询预下单表内的数据,然后在交易表内插入这些数据以及一些其他你想要的信息。

    用户查询订单信息的时候进入交易表内查询即可。

    【3.问题解析】

    有人会问notify是个什么东西,其实他是一个PHP文件,我微信支付接口是使用php进行开发的,notify这个文件用来接收微信支付成功之后微信给自己服务器的回调,然后进行数据的操作。

    可能有人对微信支付的接口比较懵逼,在我研究了一周之后整合出来了三个文件,我懒先不发出来了,需要的话下方留言即可。

    其实思路特别简单,但是可能有点绕,本人技术还是不到家,可能上面思路不是最好的思路,谁有更好的思路在下方留言评论下来,共同学习,共同提升。

                ----------来自一个十八岁程序员的随笔记录

  • 相关阅读:
    使用idea的过程中,遇到其中一个maven模块变成灰色
    Java进阶之类加载的完整过程(类的生命周期)(转载)
    mysql 一些小问题
    @select 添加判断
    om.alibaba.com.caucho.hessian.io.HessianProtocolException: com.alibaba.com.caucho.hessian.io.ObjectDeserializer: unexpected object java.lang.String (CU) 调用dubbo返回这个错误
    方法重载
    形参和实参
    方法
    数组操作两个常见的小问题
    数组初始化
  • 原文地址:https://www.cnblogs.com/shadada/p/10011701.html
Copyright © 2011-2022 走看看