FWQ
如何实现小程序发送服务通知
如何实现小程序发送服务通知? 小程序给用户发送消息需要比较多的验证,刚刚遇到这个需求可能会花较长时间研究测试,所以从基础整理了一整套发送消息的逻辑,为以后开发消息通知功能提供思路,减少学习时间 发送模板消息主要有以下几个部分 一、获取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…