小程序微信支付(ios无法进行虚拟商品支付)


最近使用到了小程序微信支付,小程序是不支持ios端的虚拟商品微信支付的,例如一些付费知识都是虚拟商品,但是微信支付确实很简单。

  1. 小程序的微信支付功能也是非常的简单的,后端我在使用的是大神封装好的php文件,只需要填上小程序Appid,AppSecret,商户平台key,商户平台Secret与获取到的小程序用户openid即可。

  2. 首先我们需要判断到用户是否授权,如果授权成功我们可以获取到用户的code值。(code值一次只能使用一次,如果用户已经授权过一次了,那么我们可以一直获取到用户的code值,不需要重新授权。)
    wx.login({
    success:function(res) {
      console.log(code)
    },
    })
    • 如果未授权,需要先授权(小程序登陆授权进行了改版,不能进入即弹出授权按钮,需要用户自行触发按钮确认授权)
  • 获取到code值,我们需要通过后端使用小程序官方提供的接口获取到用户的openid值。

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

这里前端如果不通过后端获取,选中了不校验域名,开发环境是可以通过前端获取到用户的openid值的,但是线上是无法获取到的,因为我们不能将这个接口添加到我们小程序后端的域名列表中。

我们可以通过后端获取到openid。

获取到openid之后,后端通过处理,会得到一些数据。

wx.requestPayment({
  timeStamp: ' ',
  nonceStr: ' ',
  package: ' ',
  signType: 'MD5',
  paySign: ' ',
})

这样就可以调起微信支付了。

关于ios端商品虚拟支付问题,到目前为止二大巨头的战争未结束(可苦了我们这些开发者了),大部分小程序选择了ios端免费,引导用户公众号充值购买等方法,(实测有引导信息无法通过审核),所以现在大部分小程序都是对ios端用户免费,获取限制ios端用户,这样丢失了部分ios用户。

小程序也给我们提供了获取用户手机系统的api:

wx.getSystemInfo({
   success: function(res) {
    consolo.log(res.system)
   }
  })

这样就可以获取到用户手机系统了,我们获取到就可以通过手机系统进行处理了。

声明:Web前端小站 - 前端博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 小程序微信支付(ios无法进行虚拟商品支付)


行路有良友,便是捷径。带上我吧,一起去看更大的世界。