Newtmpl.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | WeChatDeveloper
  4. // +----------------------------------------------------------------------
  5. // | 版权所有 2014~2023 ThinkAdmin [ thinkadmin.top ]
  6. // +----------------------------------------------------------------------
  7. // | 官方网站: https://thinkadmin.top
  8. // +----------------------------------------------------------------------
  9. // | 开源协议 ( https://mit-license.org )
  10. // | 免责声明 ( https://thinkadmin.top/disclaimer )
  11. // +----------------------------------------------------------------------
  12. // | gitee 代码仓库:https://gitee.com/zoujingli/WeChatDeveloper
  13. // | github 代码仓库:https://github.com/zoujingli/WeChatDeveloper
  14. // +----------------------------------------------------------------------
  15. namespace WeMini;
  16. use WeChat\Contracts\BasicWeChat;
  17. /**
  18. * 公众号小程序订阅消息支持
  19. * Class Mini
  20. * @package WeChat
  21. */
  22. class Newtmpl extends BasicWeChat
  23. {
  24. /**
  25. * 获取小程序账号的类目
  26. * @param array $data 类目信息列表
  27. * @return array
  28. * @throws \WeChat\Exceptions\InvalidResponseException
  29. * @throws \WeChat\Exceptions\LocalCacheException
  30. */
  31. public function addCategory($data)
  32. {
  33. $url = 'https://api.weixin.qq.com/cgi-bin/wxopen/addcategory?access_token=ACCESS_TOKEN';
  34. return $this->callPostApi($url, $data, true);
  35. }
  36. /**
  37. * 获取小程序账号的类目
  38. * @return array
  39. * @throws \WeChat\Exceptions\InvalidResponseException
  40. * @throws \WeChat\Exceptions\LocalCacheException
  41. */
  42. public function getCategory()
  43. {
  44. $url = 'https://api.weixin.qq.com/wxaapi/newtmpl/getcategory?access_token=ACCESS_TOKEN';
  45. return $this->callGetApi($url);
  46. }
  47. /**
  48. * 获取小程序账号的类目
  49. * @return array
  50. * @throws \WeChat\Exceptions\InvalidResponseException
  51. * @throws \WeChat\Exceptions\LocalCacheException
  52. */
  53. public function deleteCategory()
  54. {
  55. $url = 'https://api.weixin.qq.com/cgi-bin/wxopen/deletecategory?access_token=TOKEN';
  56. return $this->callPostApi($url, [], true);
  57. }
  58. /**
  59. * 获取帐号所属类目下的公共模板标题
  60. * @param string $ids 类目 id,多个用逗号隔开
  61. * @return array
  62. * @throws \WeChat\Exceptions\InvalidResponseException
  63. * @throws \WeChat\Exceptions\LocalCacheException
  64. */
  65. public function getPubTemplateTitleList($ids)
  66. {
  67. $url = 'https://api.weixin.qq.com/wxaapi/newtmpl/getpubtemplatetitles?access_token=ACCESS_TOKEN';
  68. $url .= '&' . http_build_query(['ids' => $ids, 'start' => '0', 'limit' => '30']);
  69. return $this->callGetApi($url);
  70. }
  71. /**
  72. * 获取模板标题下的关键词列表
  73. * @param string $tid 模板标题 id,可通过接口获取
  74. * @return array
  75. * @throws \WeChat\Exceptions\InvalidResponseException
  76. * @throws \WeChat\Exceptions\LocalCacheException
  77. */
  78. public function getPubTemplateKeyWordsById($tid)
  79. {
  80. $url = 'https://api.weixin.qq.com/wxaapi/newtmpl/getpubtemplatekeywords?access_token=ACCESS_TOKEN';
  81. $url .= '&' . http_build_query(['tid' => $tid]);
  82. return $this->callGetApi($url);
  83. }
  84. /**
  85. * 组合模板并添加至帐号下的个人模板库
  86. * @param string $tid 模板标题 id,可通过接口获取,也可登录小程序后台查看获取
  87. * @param array $kidList 开发者自行组合好的模板关键词列表,关键词顺序可以自由搭配(例如 [3,5,4] 或 [4,5,3]),最多支持5个,最少2个关键词组合
  88. * @param string $sceneDesc 服务场景描述,15个字以内
  89. * @return array
  90. * @throws \WeChat\Exceptions\InvalidResponseException
  91. * @throws \WeChat\Exceptions\LocalCacheException
  92. */
  93. public function addTemplate($tid, array $kidList, $sceneDesc = '')
  94. {
  95. $url = 'https://api.weixin.qq.com/wxaapi/newtmpl/addtemplate?access_token=ACCESS_TOKEN';
  96. return $this->callPostApi($url, ['tid' => $tid, 'kidList' => $kidList, 'sceneDesc' => $sceneDesc], false);
  97. }
  98. /**
  99. * 获取当前帐号下的个人模板列表
  100. * @return array
  101. * @throws \WeChat\Exceptions\InvalidResponseException
  102. * @throws \WeChat\Exceptions\LocalCacheException
  103. */
  104. public function getTemplateList()
  105. {
  106. $url = 'https://api.weixin.qq.com/wxaapi/newtmpl/gettemplate?access_token=ACCESS_TOKEN';
  107. return $this->callGetApi($url);
  108. }
  109. /**
  110. * 删除帐号下的个人模板
  111. * @param string $priTmplId 要删除的模板id
  112. * @return array
  113. * @throws \WeChat\Exceptions\InvalidResponseException
  114. * @throws \WeChat\Exceptions\LocalCacheException
  115. */
  116. public function delTemplate($priTmplId)
  117. {
  118. $url = 'https://api.weixin.qq.com/wxaapi/newtmpl/deltemplate?access_token=ACCESS_TOKEN';
  119. return $this->callPostApi($url, ['priTmplId' => $priTmplId], true);
  120. }
  121. /**
  122. * 发送订阅消息
  123. * @param array $data 发送的消息对象数组
  124. * @return array
  125. * @throws \WeChat\Exceptions\InvalidResponseException
  126. * @throws \WeChat\Exceptions\LocalCacheException
  127. */
  128. public function send(array $data)
  129. {
  130. $url = 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN';
  131. return $this->callPostApi($url, $data, true);
  132. }
  133. }