评论

微信支付云调用拼夕夕版尝鲜踩坑教程 [拎包哥]

~~吃吃微信支付云调用的大闸蟹~~

微信支付竟然跟云开发发生了关系,手残党又迎来福音喽!

但!本着跟着官方教程复制粘贴就能跑的心态,拎包哥慢慢发现事情并不简单。。。

下面列出几个填过的小坑。

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更新=================


最后一次编辑于  2020-05-27  
点赞 5
收藏
评论

10 个评论

  • 老张
    老张
    2020-05-24

    授权那块终于等到有人踩坑回来。点赞。

    2020-05-24
    赞同 2
    回复
  • Admin²⁰²¹
    Admin²⁰²¹
    2020-05-24

    收藏点赞了,这个以后应该会用得着。大概看了下,用的时候就不踩坑了

    2020-05-24
    赞同 1
    回复 1
    • 拎包哥
      拎包哥
      2020-05-24
      嘿嘿,好滴!
      2020-05-24
      回复
  • 苏军
    苏军
    2020-05-24

    围观一下

    2020-05-24
    赞同 1
    回复 3
    • 拎包哥
      拎包哥
      2020-05-24
      嘿嘿,希望能帮到你,要不点个赞?
      2020-05-24
      回复
    • 苏军
      苏军
      2020-05-24回复拎包哥
      虽然我不用这个,但是为你对社区做的贡献必须给你点个赞
      2020-05-24
      回复
    • 拎包哥
      拎包哥
      2020-05-24
      3Q苏哥
      2020-05-24
      回复
  • 努力到无能为力💪💪💪
    努力到无能为力💪💪💪
    2020-10-20
    求大佬告知outTradeNo 怎么来的?产生规则是什么?
    

    2020-10-20
    赞同
    回复 1
    • 拎包哥
      拎包哥
      2020-10-23
      你好,outTradeNo就是你随机产生的32位以内的随机字符串,没有什么特别规则,随机就好
      2020-10-23
      回复
  • 小肥羊
    小肥羊
    2020-07-06

    请问这个回调有什么用呢?具体在什么场景下可以用到?我这几天接入了这个支付,但是没有想到使用第二个云函数的场景??

    2020-07-06
    赞同
    回复 1
    • 拎包哥
      拎包哥
      2020-07-13
      哈哈,其实我也不太清楚啊,只是有了第二个云函数微信支付云调用才能正常run,官方貌似也没有给个说法。。。
      2020-07-13
      回复
  • 小肥羊
    小肥羊
    2020-07-04

    先收藏

    2020-07-04
    赞同
    回复
  • Funky_Tiger
    Funky_Tiger
    2020-06-18

    2020-06-18
    赞同
    回复 4
    • Funky_Tiger
      Funky_Tiger
      2020-06-18
      请问这个点哪个可以授权 服务商API退款 啊? 按钮都是置灰点 也不能点击啥点啊?? 老哥回复一下 谢谢了
      2020-06-18
      回复
    • Funky_Tiger
      Funky_Tiger
      2020-06-18
      我是普通商户 好像没有服务商?
      2020-06-18
      回复
    • Funky_Tiger
      Funky_Tiger
      2020-06-18
      2020-06-18
      回复
    • 拎包哥
      拎包哥
      2020-06-19
      Funky哥,你得是商户平台的超级管理员才可以授权的
      2020-06-19
      回复
  • xy
    xy
    2020-06-17

    吃瓜

    2020-06-17
    赞同
    回复 1
    • 拎包哥
      拎包哥
      2020-06-19
      xy老弟,咱们又见面了
      2020-06-19
      回复
  • 王政娇
    王政娇
    2020-06-09

    云开发,退款有回调的说法吗,我看官方文档没写。

    2020-06-09
    赞同
    回复 1
    • 拎包哥
      拎包哥
      2020-06-19
      政哥,你只需将统一下单的官方代码改成如下的,再将必填的字段写上去就好了。
      2020-06-19
      回复
  • 老张
    老张
    2020-05-24

    functionName确定这样写就可以了吗?我还以为一定要return一个模式消息呢:

    return {
        errcode:0,
        errmsg:'SUCCESS'
      }
    
    2020-05-24
    赞同
    回复 5
    • 拎包哥
      拎包哥
      2020-05-24
      老张哥,亲测可行,至于情况复杂之后是否有bug我就不清楚了。官方文档实在是语焉不详, 不过开发版咱也没法要求太多,希望之后官方文档能完善起来吧。
      2020-05-24
      回复
    • 老张
      老张
      2020-05-24回复拎包哥
      亲测不会收到重复的支付回调吗?
      2020-05-24
      回复
    • 拎包哥
      拎包哥
      2020-05-24回复老张
      你说的是这里的支付回调吗,都不一样的哦
      2020-05-24
      回复
    • 拎包哥
      拎包哥
      2020-05-27
      老张哥,有空请帮忙看看我文章里的番外坑,不太懂为什么outTradeNo一定要放在exports.main里生成。谢谢!
      2020-05-27
      回复
    • Funky_Tiger
      Funky_Tiger
      2020-06-18回复拎包哥
      老哥 请看下我的问题 谢谢 卡到退款授权了 谢谢谢谢了🙏!
      2020-06-18
      回复
登录 后发表内容