微信支付篇---小程序支付接口原理说明

小程序支付接口原理说明

创建支付订单

使用微信支付,那么就要在微信平台生成支付订单,注意这个支付订单微信平台上面的,跟电商平台的购物订单不是一回事儿。
微信平台要记录什么时候,哪个用户向哪个商户付款,这些信息必须要记录清楚,所以我们需要向微信平台提交支付订单。
这幅时序图,讲的就是怎么生成支付订单的。各位同学一定要记住,这个支付订单不是小程序向微信平台申请创建的,而是又商户系统发出请求,让微信平台创建。为什么不是小程序来创建呢?
在微信平台眼中,商户比微信用户更值得信任,这是因为想要开通微信支付,必须要通过企业认证,而微信用户是不需要实名认证的。所以由商户平台发起请求创建支付订单更加值得信任。
另外创建支付订单需要提交很多数据,包括AppID、AppSecret、密钥、数字证书,还有商户号。因为小程序是安装在用户手机上面的,所以这些重要的材料不适合保存在小程序上面。既然这些重要的材料应该保存在商户系统上面,那么申请创建支付订单的请求,就应该由商户系统发出了,各位同学,你说是这个道理吧。
好了,下面咱们来仔细看一下,创建微信支付订单的流程。
在这里插入图片描述

  1. 首先用户在小程序上面点击微信支付按钮。

  2. 小程序发起Ajax请求,告诉商户系统,你应该向微信平台申请创建支付订单了。

  3. 接下来商户系统先要提取小程序提交过来的数据,比如说OpenID是否有效,OpenId是用户拿微信登陆小程序产生的ID值。商户系统在数据库里面要记录这个OpenID值。发起付款的时候,商户系统必须要验证一下,小程序提交过来OpenId在数据库里面是不是存在。如果有人拿POSTMAN模拟小程序提交支付请求,胡乱编了一个OpenId,商户系统必须要能分辨出来。包括用户是否登录,我们需要通过传递过来的Token参数进行一个判断,还有就是小程序提交过来的订单编号,商户系统也要验证订单的有效性。

  4. 商户系统要向微信平台发送生成支付订单的请求,并且上传跟支付相关的各种信息。比如说,发起付款的用户,微信的OpenID是什么?订单的金额是什么?人民币付款,还是美元付款?收款的商户ID是什么等等。

  5. 微信平台收到这些信息之后,核实之后没有问题,那么微信平台上面就会生成支付订单,并且把订单的信息返回给商户系统。

  6. 商户系统得到订单信息之后,还要对这些信息生成MD5数字签名。然后商户系统,会把支付订单的参数,返回给小程序。这幅时序图走下来,意味着微信平台上面生成支付订单。

用户付款

在这里插入图片描述

  1. 大家请看,这幅时序图讲的是用户怎么付款的。刚才说到了,小程序会拿到商户平台返回的支付参数。但是小程序这边也担心,毕竟订单是商户系统生成的,万一生成的支付金额,跟商品订单的金额对不上怎么办?说的难听一点,用户买了300块钱的商品,但是商户系统在微信平台上面创建了一个3000块钱的支付订单。小程序这边是不是得提防商户系统创建高额支付订单,所以还是得拿着支付订单号,到微信平台上面查询一下,究竟这个支付订单的金额是多少钱?

  2. 小程序把商户系统返回的支付参数,提交给微信平台。

  3. 微信平台确认小程序提交的支付参数没有问题,于是就把商户创建的支付订单信息返回给小程序,让用户确认。

  4. 这时候小程序就会弹出支付的金额和收款的商户,以及备注信息

  5. 用户对支付金额没有异议,于是就输入支付密码或者扫脸,接下来小程序想微信平台发送确认支付的请求

  6. 微信平台验证用户支付密码正确,就可以执行支付订单了。是从用户零钱里扣除,还是从银行卡里扣款,这个就是微信平台的事情了,跟我们没有关系。

  7. 信平台会把支付结果,分别发送给商户系统和小程序。然后用户和商户就都知道付款到底成功,还是失败了。

  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值