118-微信支付流程

140 阅读3分钟

微信支付流程

准备工作

  1. 先以企业身份注册一个小程序账号,注册完成之后登录小程序后台,把小程序appid、小程序secret码复制好。在这之后登录微信支付商平台(需注册),准备好微信支付商号。
  • 小程序appid
  • 小程序secret码
  • 微信支付商号
  1. 准备服务器:可以到各大平台购买服务器,然后再去准备一个已经备过案的域名,并且该域名必须安装ssl证书,具体安装步骤在购买服务器的时候,可以询问服务器提供商,一般都会有相应的文档提供参考。
  2. 支付需要前后端一起配合,前端创建前端项目,后端创建后端的项目。
  3. 创建前端代码,调用wx.login()接口,该接口会返回用户code,可在wx.login调用成功回调函数中获取code。然后将appid、secret、code、grant_type(默认authorization_code)作为参数传给后端接口
  4. 后端代码会处理请求,和微信进行验证。

支付流程

  1. 前端将获得的openid和appid、商户号、支付金额、设备ip等参数发送给后端,后端接收到参数后将会向微信服务器发起预支付,如果参数无误的话,微信将返回prepay_id(很重要)

  2. 获取prepay_id后,我们就可以使用prepay_id进行在线支付了,这里将使用到wx.requestPayment()接口,该接口需要用到5个参数,一个是当前支付时间(timeStamp)、随机字符串(nonceStr)、package(当中包含prepay_id)、然后是支付签名,这个签名在后端服务器中生成(二次签名)。 支付成功

  3. 微信支付过后,微信服务器将会向回调地址发送支付结果,如果回调地址没有任何回应的话,微信服务器将视本次结果发送失败,过一会将会重新发送支付结果,当然,它不会无限发送结果,在多次发送无果之后,微信服务器将放弃本次结果推送。(具体信息可查看微信支付开发文档)。

    回调地址:就是你配置的微信返回的地址。

    2_2_4

前端流程

开发步骤:

  1. 产生购物车,选择对应商品

  2. 点击结算,生成订单。小程序会往后端发送一个请求,后端生成一个订单

    订单(未支付)未支付、已支付、已取消、超时、完成、已退款、退款退货、退款不退货 等等

  3. 后端有了订单过后,我们才会开始支付。

整个支付流程

  1. 前端需要先进行登录。一般微信授权登录。

  2. 前端结算,前端会订单数据传递给后端。数组。金额。后端还要算一次

  3. 后端马上订单存储数据库中,至少默认状态未支付。

  4. 后端马上会给微信服务器,发起请求。将刚刚这个订单发送微信服务器。(商品编号、订单金额等等)

  5. 微信服务器,接受到这些信息,微信服务器也会生成一个订单。(预支付订单)这个订单支付时间限制

    服务器需要商户号、需要支付密钥,openid,缺少一个都不行。

  6. 微信服务器将预支付订单返回后端服务器,后端服务器会这个预支付订单返回给前端

  7. 小程序唤起微信微信应用。开始进行密码验证。