微信小程序支付遇到的坑

1,微信公众号支付和微信小程序支付有差异

微信公众号:可以直接跳转走h5的微信支付

微信小程序:在测试环境、沙箱环境使用微信公众号的跳转支付没有问题,在线上存在支付异常

最后商讨的解决方法

openid获取的方法------appid----code----apenid,accestoken

通过appenid拿到对应的验签--

{"code":0,"data":{"onlyCardPay":false,"paramStr":"{\"appId\":\"wx42717f54417ecce1\",\"nonceStr\":\"jf3nrssre50imqiw7odgrg37l2xbd0kd\",\"package\":\"prepay_,\"paySign\":\"C60C1DB483CD8C9A7DA518C3CE11CAD8\",\"signType\":\"MD5\",\"timeStamp\":\"1546921178\"}","payChannel":"wx_xcx","payOrderId":"281975780250193921","paySuccessUrl":"https://minisite.daojia.com/pt/topic/collage2/index.html?product,"result":true},"message":"成功","success":true}

业务线给我们传递OPENID---进入收银台

去支付——收银台判断当前是微信小程序,跳转业务方提供的原声小程序链接,进行跳转,支付他们去支付

let url = data.paySuccessUrl

let signData = data.paramStr

Window.wx.miniProgram.getEnv(function (res) {

let sd = encodeURIComponent(signData)

url = `/pages/h5-weapp-pay/h5-weapp-pay?signData=${sd}&url=${url}`

if (res.miniprogram) {

if (signData.length === 0) {

// alert("signData不能为空")

return false

}

Window.wx.miniProgram.navigateTo({

url: url

})

}

})

wx.requestPayment(

{

'timeStamp': '',

'nonceStr': '',

'package': '',

'signType': 'MD5',

'paySign': '',

'success':function(res){},

'fail':function(res){},

'complete':function(res){}

})

二、第二天遇到一个bug问题,在不同微信的账号上,登录的统一的账号的,其中一个手机提示,支付账单和账单账号不匹配,他们传的openid是一致的。