评论

云支付,pay_cb/functionName的正确打开姿势

云支付,pay_cb的正确打开姿势,第一次运行就过了。云支付,太牛太威武了。 建议官方的文档应该加上这段代码,今天碰到好几个人问这个问题了。

纯代码:第一步就秒过:

// pay_cb 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
const _ = db.command

exports.main = async (event, context) => {
  //回调信息备案
  await db.collection('cloudPay').doc(event.outTradeNo).set({
    data:event
  })
  //其他业务逻辑
  return {
    errcode:0,
    errmsg:'SUCCESS'
  }
}

更多内容:

最后一次编辑于  2020-10-25  
点赞 4
收藏
评论

6 个评论

  • 小人物
    小人物
    2021-11-24

    // 更新数据库状态

    exports.main = async (event, context) => {
    
      // 更新数据库
      await request({
          url: 'http://xxxxxxxxxxxxxxxxxxx.com', // 我们自己的服务
          method: 'POST',
          data: {
              ...event,
          },
          success: (res) => {
              console.log('更新成功') /* 2 */
              if (res && parseInt(res.statusCode) === 200) {
                  return { errcode: 0, errmsg: 'SUCCESS' }
              } else {
                  return { errcode: 1, errmsg: 'FAIL' }
              }
          },
          fail: (res) => {
              console.log('更新失败') /* 2 */
              return { errcode: 1, errmsg: 'FAIL' }
          },
      })
      
    }
    

    请教大佬,这种写法中,注释 1 和 2 处观察不到代码执行(使用云函数本地调试打断点也不会进入回调),微信也得不到这两个回调中 return 的对象——是这种写法有问题吗?还是说并没有必要这样写,直接判断一下 returnCode 和 resultCode 均为 SUCCESS 就可以放心的返回 { errcode: 0 } 了?

    烦请不吝赐教,感谢!

    2021-11-24
    赞同
    回复 1
    • 老张
      老张
      2021-11-24
      印象里request是不支持Promise写法的。改用request-promise吧。
      2021-11-24
      回复
  • 妙音
    妙音
    2021-07-06

    大神,functionName填写回调的函数名还需要什么其他的操作吗?我填写了payBack云函数它不执行,支付是成功的,但是日志中这个函数根本没被调用

    2021-07-06
    赞同
    回复 4
    • 老张
      老张
      2021-07-06
      猜是没部署成功。
      2021-07-06
      回复
    • 妙音
      妙音
      2021-07-06回复老张
      如何判断是否部署?在云开放控制台中,云函数显示已部署算部署了吗?
      2021-07-06
      回复
    • 老张
      老张
      2021-07-06回复妙音
      在代码里写点调试断点。小程序端主动调用一下,然后看返回数据,或者在控制台看日志。
      2021-07-06
      1
      回复
    • 妙音
      妙音
      2021-07-06
      另外从小程序发起,这个云函数是可以执行的,只是运行支付之后不执行
      2021-07-06
      回复
  • 诗和远方
    诗和远方
    2020-10-20
    求大佬告知outTradeNo 怎么来的?产生规则是什么?
    

    2020-10-20
    赞同
    回复 1
    • 老张
      老张
      2020-10-20
      任意规则。
      2020-10-20
      回复
  • 六个周
    六个周
    2020-06-30

    支付成功了 但是回调没有接收到

    我只在数据库中新建了一个集合cloudPay
    

    还有其它操作吗?

    2020-06-30
    赞同
    回复
  • 奋斗的东少🏀
    奋斗的东少🏀
    2020-06-10

    大神,能帮助下吗?为什么我返回的package: "prepay_id=",是空的?谢谢啦

    success {timeStamp: "1591790706", nonceStr: "spRXXjRuaCJV5vEL", package: "prepay_id=", signType: "MD5", …}

    2020-06-10
    赞同
    回复 8
    • 老张
      老张
      2020-06-10
      看上去不象云支付?
      2020-06-10
      回复
    • 奋斗的东少🏀
      奋斗的东少🏀
      2020-06-10回复老张
      // 云函数入口函数
      exports.main = async function(event, context) {
        const res = await cloud.cloudPay.unifiedOrder({
          "body" : event.body,//支付内容描述
          "outTradeNo" : event.outTradeNo,//支付订单号
          "spbillCreateIp" : event.spbillCreateIp,//这里填这个就可以
          "subMchId" : event.subMchId,
          "totalFee" : event.totalFee,//订单总金额
          "envId": "dwyz-shop-72a24a",//云开发环境ID
          "functionName": "pay_cb",//回调函数名
        })
        return res
      }


      统一下单的函数,返回的prepay_id是空的。。。
      2020-06-10
      回复
    • 老张
      老张
      2020-06-10回复奋斗的东少🏀
      控制台配置云支付过了吗?
      2020-06-10
      回复
    • 奋斗的东少🏀
      奋斗的东少🏀
      2020-06-10回复老张
      我刚刚自己搞定啦,是个商户支付的配置问题,不过还是要谢谢你
      2020-06-10
      回复
    • 落叶🍂
      落叶🍂
      2020-06-12回复奋斗的东少🏀
      我也是空的,怎么配置呢
      2020-06-12
      回复
    查看更多(3)
  • 张大鹏
    张大鹏
    2020-05-22

    您做外包吗?可否建立联系,微信号:zhangdapengno1

    2020-05-22
    赞同
    回复
登录 后发表内容