小程序发送服务通知

本文详细介绍了小程序发送服务通知的全过程,包括获取access_token、建立消息模板、获取与管理form_id、发送消息通知及设定定时任务。通过这些步骤,可以有效减少开发消息通知功能的学习时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

​ 小程序给用户发送消息需要比较多的验证,刚刚遇到这个需求可能会花较长时间研究测试,所以从基础整理了一整套发送消息的逻辑,为以后开发消息通知功能提供思路,减少学习时间

发送模板消息主要有以下几个部分

一、获取access_token
二、建立消息模板
三、获取form_id
四、发送消息通知
五、设定定时任务

一、获取access_token

​ 向微信请求发送消息时,会需要到access_token,access_token相当于是小程序的身份证,虽然有appid和appsecret这2个证明,但是微信为了保证安全性,就用了access_token这个有时效的身份证明来验证,一条access_token只有2小时有效期,而且单个小程序1天只能请求1000次access_token,所以我们需要一套逻辑来保证access_token的可用性

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

​ 只需要向上面这个地址请求就可以返回对应的access_token

​ 根据这个接口,写如下方法

public function test(){
   
	$appId = '';
	$appSecret = '';
	$token = file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appId."&secret=".$appSecret);
	$token = json_decode($token);
	$token = $token->access_token;
	db('token')->where('id',1)->update(['access_token'=>$token]);//覆盖上一条access_token
}

​ 再设置一个定时器每小时触发一次该接口,之后就可以随意取出肯定能用的token了

$token = db('token')->find();
$token = $token['access_token'];

二、建立消息模板

​ 在小程序微信公众平台的左边栏有一个模板消息的选项卡,只需要按照文档添加一个模板消息,就可以得到对应的对应的模板ID,这一步基本都是网页自行操作,不作更多展示

三、获取form_id

​ 微信为了防止小程序对用户进行过多消息通知,对消息通知进行了一个限制,每发送一条消息通知,就需要一条form_id或者prepay_id

​ prepay_id是用户在使用微信支付之后返回的Id,本文中不做详解

​ form_id是与button绑定的Id,每当用户点击绑定过的button就会返回一条form_id,一条form_id的有效期是7天,且每个用户的form_id只能对该用户使用,所以我们需要一个专门的逻辑来保存和使用form_id

①设计form_id表结构

​ form_id有2个条件,第一个是仅7天内有效,第二个是仅对创建form_id的用户有效,针对这2个要求建立如下表

创建时间 用户id
id createTime openId form_id

​ id作为主键自增不用解释

​ createTime作为找到过期form_id的标志,设置定时任务,删除过期form_id

​ openId用来找到用户自己的form_id来使用

②取到form_id

<!--pages/index/index.wxml-->
<form  report-submit='ture' bindsubmit='form_id'>
    <button form-type="submit">确定</button>
</form>
// pages/index/index.js
form_id: function(e) {
   
    wx.request({
   
        url: 'test.com/index/index/form_id',//自行替换接口
        method: "POST",
        data: {
   
            form_id
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值