微信支付竟然跟云开发发生了关系,手残党又迎来福音喽!
但!本着跟着官方教程复制粘贴就能跑的心态,拎包哥慢慢发现事情并不简单。。。
下面列出几个填过的小坑。
1. 退款API权限
1.1 如果只是想进行微信支付,退款API权限不需要授权的,
只要在微信支付商家助手(公众号)上授权了JSAPI权限就可以进行微信支付。
1.2 如果要对退款API进行授权,就得在登录商户平台后,再打开
https://pay.weixin.qq.com/index.php/extend/product/submch ,才能看到“我授权的产品"
这他喵竟然是在首页你敢信?
所以产品中心根本就没有的,不要再瞎找了。
2. 两个云函数
不要被官方文档所蒙蔽了,其实我们需要写两个云函数。
functionName就是官方文档没有写的第二个云函数的名字。如果你不写这个函数,
就会出现各种莫名其妙的报错,不要试图从这些报错上找出答案,都是扯淡。
functionName对应函数代码
exports.main = async (event, context) => {
return(event,context)
}
踩过这两个坑,再跟着教程走基本上就可以进行微信支付的云调用了。
欢迎大哥们批评指正错误。
最后感谢这些知识的来源:
1.微信问答 https://developers.weixin.qq.com/community/pay/doc/0002ce8b3007d89db65aa98f655c00
2.bilibili李东教学 https://www.bilibili.com/video/BV1uz411B7Kb
================点个赞,是拎包哥继续瞎逼逼的动力哦=================
番外坑
outTradeNo要放在exports.main里面,放在外面则会得到相同而不是随机的值。
老张哥或者各路大神如果你看到这个问题,请帮忙解释一下为啥,谢谢!
exports.main = async(event,context)=>{
var randomNo = Math.random().toString(36).subStr(2,15)
var timeStamp = parseInt(Date.now()/1000) + ''
var outTradeNo = 'otn' + timeStamp + randomNo
}
================2020/5/27更新=================
授权那块终于等到有人踩坑回来。点赞。
收藏点赞了,这个以后应该会用得着。大概看了下,用的时候就不踩坑了
围观一下
请问这个回调有什么用呢?具体在什么场景下可以用到?我这几天接入了这个支付,但是没有想到使用第二个云函数的场景??
先收藏
吃瓜
云开发,退款有回调的说法吗,我看官方文档没写。
await cloud.cloudPay.refund({...
functionName确定这样写就可以了吗?我还以为一定要return一个模式消息呢:
return { errcode:0, errmsg:'SUCCESS' }