关于微信小程序自己走的笨路-----小程序推送模板消息提示openid 40003

近日公司要进行小程序开发,姑且担任开发一职.
首先对标题的解释,由于对组件以及功能进行熟悉以及初稿编写,appId以及小程序密钥使用个人的,之后提示appID没有发送模板消息权限
地址调用:
	https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token={0}

错误提示内容{ “errcode” 48001, " errmsg" " api unauthorized hint: [athn307719241!]"},查阅需要认证的小程序账户或者绑定已经认证的
公众号都可以,故而将小程序中的配置更换成公司小程序账户中的对应配置(注:此处只对getApp().globalData中的appId以及密钥)。
变更后新问题出现提示,后端请求模板消息发送总是提示40003 invalid openid,查询好多资料比如有的说是openId格式错误缺少引号比。
如请求JSON格式错误,而且最有效的官方文档看了多遍竟然没有注意官方的提示
比如
!最终发现project.config.json中的配置AppId没有变更,变更后终于在1天后成功看到了模板消息的推送
在这里插入图片描述
蜜汁感动终于—》囧
不知道后面还会遇到什么问题,暂存

### 实现 Uni-app 中微信小程序消息推送 在 Uni-app 开环境中实现微信小程序消息推送主要依赖于 `uni-subscribemsg` 组件以及云函数的支持。此组件允许开者请求用户订阅特定类型的模板消息,从而能够在满足条件的情况下向用户送通知。 #### 使用 `uni-subscribemsg` 请求订阅权限 为了使应用能够送订阅消息给用户,在首次尝试送前需先获取用户的同意。这一步骤通过调用 `uni.requestSubscribeMessage()` API 来完成[^1]: ```javascript // 调用API请求订阅授权 uni.requestSubscribeMessage({ tmplIds: ['your_template_id'], // 替换成实际的模板ID列表 success(res) { console.log('用户同意:', res); }, fail(err) { console.error('用户拒绝或生错误:', err); } }); ``` #### 配置并上传至云端处理逻辑 由于 `uni-subscribemsg` 只能在云函数内部使用,因此需要创建相应的云函数来处理后续的操作,比如当触某些事件时向指定用户送已获准的通知。具体来说就是在项目的 `/cloudfunctions/` 文件夹下新建一个 JavaScript 文件作为云函数入口,并编写如下代码片段用于起 HTTP POST 请求到微信公众平台接口以提交待送的内容: ```javascript const cloud = require('wx-server-sdk'); cloud.init(); exports.main = async (event, context) => { const { OPENID } = cloud.getWXContext(); try { let response = await wx.cloud.callFunction({ name: 'sendTemplateMsg', data: { templateId: event.templateId, page: event.page || '', data: event.data, toOpenid: OPENID } }); return response.result; } catch(error){ throw new Error(`Failed sending message ${error.message}`); } }; ``` 上述例子假设存在另一个名为 `sendTemplateMsg` 的辅助云函数负责执行具体的网络通信工作;而这里的主函数则专注于准备参数并将它们传递过去以便进一步操作。 #### 送统一服务消息替代方案 除了传统的基于模板消息外,还可以考虑利用微信提供的“统一服务消息”。这种方式不需要预先定义固定的模板结构,而是可以根据业务需求灵活构建消息体。不过需要注意的是,这种方法通常涉及更复杂的配置过程和服务端支持[^2]。 对于那些希望简化流程或者不具备复杂后端架构能力的小型项目而言,“统一服务消息”的直传模式提供了一种更为便捷的选择。它允许前端直接调用特定的服务端接口(如 Send 接口),并通过返回的结果确认是否成功投递了消息[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值