PHP版小程序添加订阅消息详细教程

作者 : 蜜桃源码 发布时间: 2020-08-26 文章热度:108 共2128个字,阅读需6分钟。 本文内容有更新 字体:
夜间模式

目 录

uniapp云开发版小程序订阅消息的添加教程,但是考虑到使用uniapp云开发的用户比较少,今天给大家写一个PHP版小程序添加订阅消息详细教程,比较简单,只是单纯的为了实现功能而写的,什么框架都没有使用,单纯的PHP代码。

创建订阅消息id

直接在小程序后台添加订阅消息就可以获取到小程序ID了,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。

获取下发权限

获取下发权限属于前端内容,所以和昨天的方法是一样的,只需要调用订阅消息API就可以了,代码如下:

  1. wx.requestSubscribeMessage({
  2. tmplIds: [‘xxxxxxxxx’], //订阅消息ID
  3. success(res) {
  4. console.log(‘已授权接收订阅消息’)
  5. }
  6. })

注:各个平台方法类似,只是API前缀不同而已,如果是QQ小程序就改为qq.requestSubscribeMessage,抖音小程序同理。在获取下发权限之前,需要先获取到用户的openID,因为订阅消息是根据用户openID来发送的。

下发订阅消息

原理和uniapp云开发是一样的,首先获取到订阅消息的接口调用凭证,也就是access_token,然后再下发订阅消息。

获取接口凭证

这里我直接写成了一个函数,只需要access_token了,代码如下:

  1. function getAccesscode()
  2. {
  3. $appid = “xxxxxx”; //小程序appid
  4. $secret = “xxxxxxxxxxxx”; //小程序secret
  5. $url = sprintf(‘https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s’, $appid, $secret);
  6. $info = file_get_contents($url);
  7. $json = json_decode($info);
  8. $arr = get_object_vars($json);
  9. $accesscode = $arr[‘access_token’];
  10. return $accesscode;
  11. }

填写上小程序的appid和secret就可以直接使用了,获取到接口凭证之后就可以进行最后的下发订阅消息了。

下发订阅消息

由于PHP使用file_get_contents进行post请求,性能不加,而且还会出现一下意想不到的bug,所以这里我采用了curl方式进行post请求,代码封装完整(php不太熟练,封装函数网上找的)。代码如下:

  1. function curlPost($url,$data)
  2. {
  3. $ch = curl_init();
  4. $params[CURLOPT_URL] = $url; //请求url地址
  5. $params[CURLOPT_HEADER] = FALSE; //是否返回响应头信息
  6. $params[CURLOPT_SSL_VERIFYPEER] = false;
  7. $params[CURLOPT_SSL_VERIFYHOST] = false;
  8. $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
  9. $params[CURLOPT_POST] = true;
  10. $params[CURLOPT_POSTFIELDS] = $data;
  11. curl_setopt_array($ch, $params); //传入curl参数
  12. $content = curl_exec($ch); //执行
  13. curl_close($ch); //关闭连接
  14. return $content;
  15. }

然后就可以进行最后的post请求了,代码如下:

  1. $accesscode = getAccesscode();
  2. $subscribeUrl = ‘https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=’.$accesscode;
  3. $data = [] ;
  4. $data[‘touser’] = ‘xxxxxxxxxx’; //用户openid
  5. $data[‘template_id’] = ‘xxxxxxxxx’;//订阅消息模板id
  6. $data[‘page’] = “/pages/index/index”;
  7. $data[‘miniprogram_state’] = ‘developer’;
  8. $data[‘data’] = [
  9. “thing2”=>[
  10. ‘value’ => ‘测试推送’
  11. ],
  12. “date1”=>[
  13. ‘value’ => ‘2015年01月05日’
  14. ]
  15. ];
  16. return curlPost($subscribeUrl,json_encode($data));

以上就是一套可以完整的使用订阅消息的方案,其中data的数据最好就是按照我写的方式去写,不然会出现很多意想不到的问题,昨天两次都是因为这个post参数弄了半天,明明json验证都正确,可是就是格式不对,所以这里给大家整理出来,也少走弯路。

不过这只是简单的单个订阅消息发送,大家如果需要应用到小程序中,还需要进行一下简单的修改,例如通过什么方式给每个已经订阅的用户发送,小程序用户openid如何去获取等问题,以后会给大家写一下相关的教程。

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
解压密码
本站默认解压密码:@www.mitaobbo.com
本文由蜜桃源码网整理自网络,如有侵权请联系本站删除! 如需转载请注明出处:https://www.mitaobo.com ====================================================================================== 本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;

2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!

3、本站默认解压密码 @www.mitaobo.com

蜜桃源码网 » PHP版小程序添加订阅消息详细教程

发表评论