- 订阅消息,subscribeMessage.send报43101
背景介绍:小程序已经上线三个月了,发送订阅消息的云函数是在其它云函数内采用cloud.callFunction调用功能来触发的。 有90%以上的用户接收不到订阅消息。 我同事们的手机,经过我确认,已经授权,并且多次授权。有的可以接收到,有的接收不到。 请问这种BUG怎么排查? 另外,发送订阅消息的云函数报以下错误,看不出来所以然: [这里是正常的日志...] {"traceId":"86ea4f96fca24a63a90d506bcc25396c","functionName":"sendMsg","childOf":"","errorMessage":"","errorCode":"","source":"server-sdk","invoker":"administrator","ua":"tcb-node-sdk/2.4.7","invokerIp":"9.193.48.125","spanId":"b917805c66db2ee3","service":"function","startTime":"1642144193175","endTime":"1642144196783","event":"InvokeFunction","timeCost":"3608","seqId":"1642144197878_0.5277659077549728_16841746-17e576bda87_4"} REPORT RequestId:f890700e-7508-11ec-abeb-52540048fc82 Duration:2911ms Memory:256MB MemUsage:104.827232MB END 以上 ----------------------------------------分隔线---------------------------------------- 经过郑旭东提醒,改成延时调用发送订阅消息的云函数,上面的红色字体报错消息没有了。 不过,多次授权的还是会接收不到消息,报43101错误,不知道问题出在哪里... 把代码付上: const tasks = [] for (saler of salerList) { const promise = new Promise((resolve,reject)=>{ const _saler = { salerID: saler._id, nickName: saler.nickName, _openid: saler._openid } cloud.openapi.subscribeMessage.send({ "touser": _saler._openid, "page": '...', "lang": 'zh_CN', "templateId": '...', "miniprogramState": 'formal', "data": { ... } }).then(res=>{ resolve(Object.assign({},res,_saler)) }).catch(err=>{ resolve(Object.assign({},err,_saler)) }) }) tasks.push(promise) } // 等待所有任务执行完成 await Promise.all(tasks).then(async(res) => { console.log("发送完成", res.length) const successList = res.map((saler)=>saler.errCode === 0 ? saler.salerID : null).filter((salerID)=> salerID !== null) const refuseList = res.map((saler)=>saler.errCode === 43101 ? saler.salerID : null).filter((salerID)=> salerID !== null) console.log("发送成功:", successList.length) console.log("发送失败[拒绝接收]:", refuseList.length) //提取发送成功的saler._id用于数据库更新 await db.collection('saler').where({ _id: _.in(successList) }).update({ data: { "accecpNoticeNum": _.inc(-1) } }) }).catch(function(err) { console.log("Promise.all err", err) }) 以上 谁能帮帮我!!!
2022-01-14 - 云开发?报errCode: -7
try { //延时调用 const result = await cloud.openapi.cloudbase.addDelayedFunctionTask({ "env": '***', "data": '{"docID": "' + event.docID + '"}', "functionName": '***', "delayTime": 6 //延迟时间,单位:秒,合法范围:6s-30天 }) console.log("addDelayedFunctionTask ok", result) } catch (err) { console.log("addDelayedFunctionTask err", err) } 以上代码线上正常使用,今天却报了一个错误,报错内容如下。我想请问一下,这个"errCode": -7是什么错误?怎么解决? addDelayedFunctionTask err { "errCode": -7, "errMsg": "system error: error code: -7" } REPORT RequestId:60eab18e-647b-11ec-802f-525400fdf61a Duration:775ms Memory:256MB MemUsage:31.626610MB
2021-12-24 - 云开发退款CloudPay.refund报错,但是没有提示具体错误信息,请问是什么原因?
try { const logRes = await db.collection('...').doc(event.docID).get() let refunddata = { //"envId": "...", //结果通知回调的环境 //"functionName": "...", //结果通知回调,这两行注释的参数用上也是一样 "sub_mch_id": "...", //子商户号 "nonce_str": randomString(), //随机字符串 String(32) "out_trade_no": logRes.data.outTradeNo, //商户订单号 String(32) "out_refund_no": outrefundno, //退款订单号 String(32) "total_fee": logRes.data.totalFee, //总金额 Int "refund_fee": fee, //申请退款金额 } console.log("start cloudPay", refunddata) const res = await cloud.CloudPay.refund(refunddata) console.log("cloudPay ok", res) }catch (e) { console.log("catch err", e) } 云函数报错,但是没有具体错误。 catch err {} 退款API权限已经成功授权,支付功能已经完成。目前就是这个退款功能,因为没有提示具体错误,不知道如何排查错误。 请帮忙一下,看看有什么问题是我没有注意到的
2021-09-26 - 公司内部管理小程序,怎么申请长期订阅消息?
公司开发的小程序是内部管理小程序,需要用到模版消息推送的功能,如何才能申请添加使用长期订阅消息模版?我们的小程序是工具->办公类目。我们的小程序主要的需求场景是: 1、由于分工不同,部分员工做审核工作,只需要在手机上接收到消息通知,无需或者不方便在小程序里操作,而是在网站后台或者其它系统内操作。 2、部分管理者只需要在手机上接收到消息通知,无需其它操作。 请官方考虑把办公类小程序添加长期订阅消息功能。
2019-12-28 - 开发者工具暂时不支持订阅消息调试,请使用真机进行开发?
可否在开发者工具中直接返回调用成功?请加快支持此功能!
2019-12-06