- 小程序下发统一消息,接口调用每天次数是多少?或者哪里可以看到?
https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-message-management/uniform-message/sendUniformMessage.html#%E9%94%99%E8%AF%AF%E7%A0%81 下面这个错误码,调用超过天级别频率限制,具体是多少次? 45009 reach max api daily quota limit 调用超过天级别频率限制。可调用clear_quota接口恢复调用额度。
2023-04-24 - 小程序消息订阅全流程介绍
本文将介绍小程序消息订阅的完整流程 一、首先需要配置你的模板消息 1. 登录[微信公众平台](https://mp.weixin.qq.com/),进入“功能”>“订阅消息”。 2. 点击“新建模板”,选择一个模板,然后点击“下一步”。 3. 在模板详情页,可以看到模板的标题和内容。标题下面的小字就是模板内容中的参数,例如:{{thing1.DATA}}。 4. 可以根据需要修改参数的名称,例如将{{thing1.DATA}}改为{{thing1.活动名称}}。 5. 点击“保存”按钮,完成模板的配置。 这样就完成了模板的配置,接着以在小程序中发送订阅消息为例,通过调用wx.requestSubscribeMessage接口获取用户的订阅授权,用户同意授权之后通过调用云函数或者服务端接口来实际推送消息。下面是微信小程序中调用云函数的示例: // main.js wx.requestSubscribeMessage({ tmplIds: ['配置好的模板ID'], // 最多支持3条 success(res) { // 'accept'表示用户同意订阅该条id对应的模板消息 if (res['配置好的模板ID'] === 'accept') { // 用户同意订阅,调用云函数或服务器接口发送订阅消息 wx.cloud.callFunction({ name: 'sendSubscribeMessage', data: { templateId: '配置好的模板ID', openid: '用户的openid', data: { thing1: { value: '活动名称' }, // 其他参数... } }, success(res) { console.log('订阅消息发送成功', res) }, fail(err) { console.error('订阅消息发送失败', err) } }) } } }) 二、如何实现服务器接口发送订阅消息 在上面的示例中演示了小程序端唤起用户订阅授权的方式,接下去会介绍服务端的接口如何推送模板消息。 我们以node.js和express框架来演示: 1. 安装所需的依赖项: npm install express axios 2. 创建一个server.js文件,设置你的微信小程序信息: // server.js const express = require('express'); const axios = require('axios'); const app = express(); app.use(express.json()); const appId = '小程序AppID'; const appSecret = '小程序AppSecret'; 3. 添加一个用于发送订阅消息的接口: // server.js app.post('/sendSubscribeMessage', async (req, res) => { const { templateId, openid, data } = req.body; try { // 获取access_token const tokenResponse = await axios.get(`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appId}&secret=${appSecret}`); const accessToken = tokenResponse.data.access_token; // 发送订阅消息 const messageResponse = await axios.post(`https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=${accessToken}`, { touser: openid, template_id: templateId, data: data }); res.json({ success: true, data: messageResponse.data }); } catch (error) { res.status(500).json({ success: false, error: error.message }); } }); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); }); 以上就是服务端发送模板消息的代码示例,在小程序端完成用户订阅授权后调用服务端接口即可完成完整的订阅消息推送流程。 三、可能遇到的问题 1. 用户无法收到订阅消息 确保用户已经同意接收订阅消息。在小程序中,需要调用requestSubscribeMessage接口来获取用户的订阅授权。如果用户同意订阅,接口返回的结果中会包含模板ID对应的状态为accept。 2. 订阅消息发送失败 检查服务器接口是否正确调用了微信小程序的API。确保已经获取了正确的access_token,并且在发送订阅消息时使用了正确的模板ID、用户openid和数据。 3. 订阅消息内容显示不正确 确保在微信公众平台上配置的订阅消息模板与在小程序中发送的数据相匹配。例如,如果模板中有一个参数为{{thing1.活动名称}},那么在发送订阅消息时,数据中也应该包含一个名为thing1的对象,其value属性为活动名称。 4. 订阅消息接口调用次数超过限制 微信小程序对订阅消息接口的调用次数有限制。如果小程序调用次数超过限制,可能会导致订阅消息发送失败。可以在[微信公众平台]查看小程序的接口调用情况,并根据需要调整调用频率。 5. 订阅消息模板无法修改 微信小程序订阅消息模板一旦创建,就无法修改。如果需要修改模板内容,可以创建一个新的模板,并在小程序中使用新的模板ID。
2023-05-29 - 小程序一次性订阅消息,通知消息是否有内置次数限制?
API接口 :小程序开发文档->服务端开发->消息相关->发送订阅消息-> 接口路由(sendMessage)"https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN" 情况描述: 我基于一次性消息模板使用这个API接口向指定客户发送模板消息,使用这个接口的前提是,用户在进入小程序前必须先授权一次性订阅消息模板(弹出框). 而我测试下来的情况:用户每授权一次,服务端才可以推送到该用户微信一次消息,即使用户勾选了"总是保持以上选择",起到的作用的也只是不再弹出让用户授权界面 仍有一个内置的授权次数限制(这一点我并未在官方文档上找到描述),总的来讲就是用户在小程序中授权了几次,服务端才能对应通知用户几次消息 我现在疑惑的是: 1.这个一次性订阅消息:用户授权最高能授权多少次,比如:达到100次就不会再累加授权次数,还是会无限累加次数? 2.这个授权次数有时间限制吗?比如:7天内服务端没有通知消息,是否就需要用户重新授权
2023-05-30 - 教你对接微信公众号订阅消息
订阅通知是一个用户主动订阅、服务号按需下发的通知能力。使用过程请遵守《微信公众平台服务协议》《微信公众平台运营规范》。 用户在前述场景主动订阅后,服务号可通过接口向用户发送订阅通知,如信用卡动账提醒、物流到货通知等。订阅通知分为一次性订阅和长期订阅,一次性订阅是指用户订阅一次,服务号可不限时间地下发一条对应的订阅通知;长期订阅是指用户订阅一次,服务号可长期多次下发通知,长期订阅通知仅向政务民生、医疗等公共服务领域开放。 微信订阅消息和微信模版消息的区别在于模版消息可以无视用户的主观意识,直接发给用户;而订阅消息则必须用户同意系统才能发给用户。这样避免了给用户带来的骚扰。 因为微信有打算使用订阅消息来取代模版消息,所以知识付费新增了订阅消息功能,知识付费系统可以选择使用模版消息还是订阅消息。下面我们就来看看知识付费是如何加订阅消息功能的。 下面以CRMEB为例讲解订阅消息如何添加! 第一步:公众号添加订阅消息 [图片] [图片] [图片] [图片] [图片] 第二步:对照我们知识付费后台的订阅消息添加订阅消息 [图片] [图片] [图片] [图片] [图片] [图片] 第三步:代码里添加订阅消息 知识付费根目录下extend\service\RoutineTemplateService [图片] 添加新的订阅消息 添加发送方法: [图片] 例如下面的方法: public static function sendOrderSuccess(array $data, $uid, $link = '') { RoutineTemplateService::sendTemplate(WechatUser::uidToOpenid($uid), RoutineTemplateService::setTemplateId(RoutineTemplateService::ORDER_PAY_SUCCESS), $link, $data); } 发送订阅消息 $data['character_string1']['value'] = $orderId; $data['amount3']['value'] = $order['pay_price']; $data['time2']['value'] = date('Y-m-d H:i:s', time()); $data['thing6']['value'] = '您购买的资料已支付成功!'; RoutineTemplate::sendOrderSuccess($data, $order['uid'], $site_url . Url::build('wap/material/my_material')); 第四步:前端用户触发订阅消息 通过微信文档,我们可以看到微信公众号的订阅消息是通过wx-open-subscribe标签来调起选择的。如下事例: <style> .subscribe-btn {color: #fff;background-color: #07c160;} </style> <button class="subscribe-btn"> 一次性模版消息订阅 </button> var btn = document.getElementById('subscribe-btn'); btn.addEventListener('success', function (e) { console.log('success', e.detail); }); btn.addEventListener('error',function (e) { console.log('fail', e.detail); }); 根据事例我们可以了解使用wx-open-subscribe标签给template属性传入你需要弹出的订阅消息模板ID即可,多个以英文逗号分隔。 通过下面的方法获得需要的订阅消息模板ID; [图片] 下面的方法中加触发时返回的订阅消息模板ID [图片]
2022-10-21