小程序变化太快了, 文档不断修改, 甚至官方文档都更新不上。
为了防止喷我胡说, 有图有链接为证
上链接
这个是支付引导:
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_11&index=2
这个是微信小程序微信支付的:
https://mp.weixin.qq.com/wxopen/frame?t=wxpay/index_frame&iframe=/pay/mp_wxopen&token=1523089829&lang=zh_CN
可以看到第一界面不对, 然后点击进去,文档说的是可以关联已有的支付, 而新版的没有。
虽然官方文档跟不上,但是相对别的文档,还是很多比较新, 所以, 只要文档一看到对不上,立刻放弃。 目前我没找到最新的, 哈哈哈。 所以胡乱写了这篇。
小程序支付和微信JSAPI支付差异的实践问题解析
1: 直接拿关联的小程序JSAPI接入, 会发现,商户传入的appid参数不正确,请联系商户处理
2: 在目前的官方文档里面,JSAPI跟小程序下单支付是一样的
3: 需要重新生成小程序的openid
可以看出来在支付的时候,其实把公众号的appid改成小程序的appid就可以了。
小程序的appid在: 开发->开发者设置
新版的是这个地址, 搜索引擎出来的都是旧版的地址找不到
Tip
如果没有做其他配置, 这时候还是会失败, 这时候打印信息,(如果有发现返回的值异常但是没看到错误信息,请修改源码,在微信统一下单的地方打印), 微信小程序支付统一下单的地址API如下https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1,可以去看异常信息
"商户号mch_id与appid不匹配"的问题解决
需要去微信支付添加appid(小程序appid)
然后去小程序->功能->微信支付->商户号管理,确认绑定
image.png
哈哈哈
不行,openid乱写被它知道了,接下来还是需要搞定小程序的appid
小程序获取openid
获取code值, 如果是web-view, 用url传参的方式传递到web-view, 然后进入后台获取openid,然后用wx.miniProgram.postMessage
把结果告诉小程序,下次就不需要获取code。
小程序:
wx.login({
success: res => {
console.log(res.code)
this.setData({
showWebUrl: true,
webUrl: `${webUrl}?code=${res.code}`
})
}
web-view:
不用web-view的请略过。 处理跟公众号一样, 参考我上个文章。
后台:
以nodejs为例子(可直接复制,纯原生代码):
(params) => new Promise(async (resolve, reject) => {
let {code} = params
var url = `https://api.weixin.qq.com/sns/jscode2session?appid=${Config.smallProgramPayInfo.appid}&secret=${Config.smallProgramPayInfo.appSecret}&js_code=${code}&grant_type=authorization_code`
https.get(url, (res) => {
var datas = ''
res.on('data', (d) => {
datas += d
})
res.on('end', (d) => {
console.log('微信授权结果')
console.log(datas)
console.log(typeof datas)
var result = JSON.parse(datas)
if(result.errcode){
resolve({code: 1, msg: result.errmsg})
return
}
if(result.openid){
resolve({code: 0, msg: result.openid})
return
}
})
})
.on('error', (e) => {
resolve({code: 0, msg: '服务器异常'})
console.error(e)
})
-- 等待更新--
-- 先睡觉 --
参考链接:
https://pay.weixin.qq.com/wiki/doc/api/index.html
小程序: 明月小店(可能还在审核中)
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1
关于:
写的有点辛苦,等我多搞点实用的东西,能给大家带来帮助的时候,请去明月小店消费, 谢谢。
--END--
网友评论