跳至主要內容

修复微信小程序消息推送失败

Tom Tan大约 2 分钟使用指南

微信小程序 调云函数 信息推送失 败 errcode":45015,"errmsg":"response out of time limit or subscription is canceled hint的具体解决方法

查了很多资料都说是, 由于长时间用户OpenId未和微信公众号做互动消息,微信公众号会停止对用户进行消息推送,但没说如何操作,决定写一下详细的操作步骤,希望对你有帮助。

1.登录微信公众平台

打开, https://mp.weixin.qq.com/,open in new window 扫描登录

2.开启客服收发信息

具体操作是 左边菜单 找到 功能 > 客服,进入后, 开启收发信息 和 增加客服的微信帐号。

1.png
1.png

绑定客服微信帐号
2.png

绑定成功之后,会收到微信公众平台的绑定信息。
3.png

3.给微信小程序客服发信息

先进入自己的微信小程序,查看属性
4.png

在微信小程序的介绍页面,有一个客服的入口,点击进去
5.png

这是关键点, 就是进入客服聊天界面之后,给它发一个信息。
6.png

如果你之前已经配置好云函数和推送配置了,这时你可以调云函数进行信息推送了,否则请继续。

4.配置云函数的代码

在 uniapp 的文件夹cloudfunctions 新建一个pushMessage函数(名称命名看你的习惯)。
7.png

主要代码下:

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
});
 
// 云函数入口函数
exports.main = async (event, context) => {
    const wxContext = cloud.getWXContext()
    await cloud.openapi.customerServiceMessage.send({
        touser: wxContext.OPENID,
        msgtype: 'text',
        text: {
            content: event.content
        },
    })
    return 'success'
}

把函数上传到云端
8.png

5.配置信息推送

打开微信开发者工具的云开发,设置 > 其他设置,点击添加信息推送
9.png

信息类型选择 text, 云函数选择刚才上传的pushMessage的方法。
10.png

6.完成

页面执行调用云函数试一下。

wx.cloud.callFunction({
  name: "pushMessage",
  data: {
    content: '收到了吗?'
  },
}).then((res) => {
  console.log("pushMessage.res", res);
})
.catch((err) => {
  console.log("pushMessage.err", err);
});

过一会会(2秒左右),微信收到信息了。
11.png

12.png
12.png

完整代码在这里
https://github.com/ssttm169/wechat_push_messageopen in new window

上次编辑于:
贡献者: Tom Tan