登录  /  注册
博主信息
博文 17
粉丝 0
评论 1
访问量 25543
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP 发送小程序订阅消息
Ant.
原创
2420人浏览过

发送订阅消息之前你先去申请模板 , 公共的直接选用就可以, 没有符合的你还得申请,审核时间有点久,
然后根据你申请的模板来填写模板需要的参数就好了, 前提是用户要授权接收订阅消息 , 不然用户是收不到的 , 如果想要以后可以实现自动发送, 可以引导用户永久授权 . 这样就不用每次都需要授权,因为现在订阅消息只有一次性订阅消息

  1. //根据小程序里面的模板消息来设置
  2. $msg = [
  3. 'time3' => ['value'=> date('Y-m-d H:i:s', time())],
  4. 'thing4' => ['value'=> $userName['name']],
  5. 'thing2' => ['value'=> $userInfo['content']],
  6. 'phrase8' => ['value'=> "报价消息"],
  7. 'thing7' => ['value'=> "您当前有{$count}条未读消息, 可能需要尽快处理"],
  8. ];
  9. 用户的openid
  10. $sendSubscribeMessage[] = $this->sendSubscribeMessage($userOpneid['wx_openid'],
  11. 'Mpfk11CE1uTnElfGbsSQ9Y6wjejdXtg2fhSpxvQYSRw', 'pages/myPrice/index', $msg);
  12. //access_token
  13. $access_token = $this->getAccessToken();
  14. //请求url
  15. $url = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' . $access_token ;
  16. /***
  17. * @param $touser //需要接受订阅消息的openid
  18. * @param $template_id //模板ID
  19. * @param $page //点击返回页面路径
  20. * @param $dataArray //订阅格式请参照小程序订阅消息模板中的格式
  21. * @return array
  22. * 订阅消息模板
  23. */
  24. public function sendSubscribeMessage($touser, $template_id, $page, $dataArray)
  25. {
  26. //access_token 一般都存在缓存 ,
  27. $access_token = $this->getAccessToken();
  28. //请求url
  29. $url = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' . $access_token ;
  30. //发送内容
  31. $data = [] ;
  32. $data['touser'] = $touser; //用户的openid
  33. $data['template_id'] = $template_id; //所需下发的订阅模板id
  34. //点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
  35. $data['page'] = $page;
  36. //模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
  37. $data['data'] = $dataArray;
  38. //跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
  39. $data['miniprogram_state'] = 'trial';
  40. $data['lang'] = 'zh_CN';
  41. $json_data = json_encode($data);
  42. $http = new Http();
  43. return [
  44. 'openid' => $touser,
  45. 'data' => $http->curlRequest($url, $json_data)//这里面就是个curl请求 , 转成数组返回
  46. ];
  47. }
  48. /***
  49. * @return mixed
  50. * 获取access_token
  51. */
  52. protected function getAccessToken()
  53. {
  54. $AccessToken = Cache::get('accessToken');
  55. if ($AccessToken) return $AccessToken; else{
  56. $model = new Http();
  57. $access_token = $model->curlRequest('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$this->appid.'&secret='.$this->appsecret);
  58. $access_token = $access_token['access_token'];
  59. Cache::set('accessToken',$access_token, 5400);
  60. return Cache::get('accessToken');
  61. }
  62. }
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学