前言

今天是2020年一天,去年最后一个月开发了订单和支付系统,尤其在支付系统和微信对接的时候遇到了很多坑,这里给大家总结下,以免大家遇到相同的问题还浪费大量时间

微信支付前期准备

  1. 微信商户号,需要商户号,密码 ,退款时需要证书,证书默认密码是商户号
  2. 微信app(如 微信小程序 或者 微信公众号) 的appid和appsecret
  3. 需要在商户中关联微信小程序和微信公众号,然后运营者确认。
    至此微信支付前期工作完成

    payment

    封装了微信 支付宝 银联等很多支付的sdk
    git地址 https://github.com/essensoft/payment

    微信小程序使用h5嵌入完成微信支付

    由于小程序发版审核周期长,我司采用h5嵌入的方式(webview)
    实现很简单,利用jssdk 从h5跳转到小程序页面,唤起支付,支付完成后,再跳转回h5

1.获取accesstoken
2.拿着accesstoken获取票据(tickt)

都是两小时有效,建议注入单例对象,每次get的时,拦截器中判断过期时间即可

3.jssdk引入h5 需要先初始化 也就是wx.config 需要初始化成功才能使用他提供的功能

一直报签名无效 这个问题耗费了我四天,整整四天啊。配合网上提供的那些解决方法,我这边的问题是没有对wx.config 中的url 先进行encode 在后台接口再进行decode ,在开发过程中无需到微信后台配置任何https什么的。

4.然后h5调用后台接口进行预支付,成功后,wx.miniprogram.navigateto({ url: path });到原生小程序 发起wx.requestpayment

至此即可完成支付

微信公众号

待更新