收藏
回答

「云开发」云函数有计划支持微信支付?

虽然可以使用类似 node-tenpay  插件在云开发实现微信支付,但还是希望云函数官方支持微信支付API

这个功能貌似有消息很久啦,云开发更新速度这么缓慢是咋回事,要学习下知晓云

最后一次编辑于  2019-10-23
回答关注问题邀请回答
收藏

2 个回答

  • C c c
    C c c
    04-24

    大佬,你用这个做云开发微信支付。然后是在那里写

    中间件・微信消息通知

    • middleware参数: pay<支付结果通知, 默认> refund<退款结果通知> nativePay<扫码支付模式一回调>
    • 需自行添加bodyParser接收post data
    • 中间件会对通知消息进行合法性验证, 并将消息解析为json格式放入req.weixin(Express)或ctx.request.weixin(Koa)
    • reply()会自动封装SUCCESS消息, reply('some error_msg')会自动封装FAIL消息


    Express中使用

    app.use(bodyParser.text({type'*/xml'}));
     
    // 支付结果通知/退款结果通知
    router.post('/xxx', api.middlewareForExpress('pay'), (req, res) => {
      let info = req.weixin;
     
      // 业务逻辑...
     
      // 回复消息(参数为空回复成功, 传值则为错误消息)
      res.reply('错误消息' || '');
    });
     
    // 扫码支付模式一回调
    router.post('/xxx', api.middlewareForExpress('nativePay'), (req, res) => {
      let info = req.weixin;
     
      // 业务逻辑和统一下单获取prepay_id...
     
      // 响应成功或失败(第二个可选参数为输出错误信息)
      res.replyNative(prepay_id, err_msg);
    });
    


    04-24
    有用
    回复 13
    • C c c
      C c c
      04-24
      因为需要需要在用户支付成功之后做其他的逻辑,但是不知道该怎么写这个
      04-24
      回复
    • 染柒
      染柒
      04-24
      你指的是 notify_url 支付回调吗
      04-24
      回复
    • C c c
      C c c
      04-24回复染柒
      不是, notify_url需要服务器这个。tenpay文档不是有一个‘中间件,微信通知吗’,这个你有用过吗?或者是你在做这个的时候,遇到用户支付成功锁屏,你是怎么处理的?
      04-24
      回复
    • 染柒
      染柒
      04-25回复C c c
      我是通过 notify_url 回调进行支付判断的,曲线救国的方式,应该很少人这样做,全程没有服务器参与,你可以参考参考。

      notify_url 填写的是阿里云函数计算调用链接(跟云函数一样的东西,但是是阿里的,支持通过链接调用)

      通过调用函数计算,反过来调用云开发的云函数,相当于一个转发器,同时函数计算支持获取到回调的 XML 内容,所以订单ID什么的都可以拿到,也可以给回调正确的返回。


      ps: 虽然有点绕,但确实不需要服务器,不需要维护服务器也更稳定
      04-25
      回复
    • 染柒
      染柒
      04-25回复C c c
      云函数 要是支持通过链接调用,我就不用这么麻烦了
      04-25
      回复
    查看更多(8)
  • McWhy
    McWhy
    2019-10-08

    我记得有一个模块支持微信支付,貌似宣传的不太多。

    2019-10-08
    有用
    回复
登录 后发表内容
问题标签