可能是由于小程序订阅消息功能刚刚上线,感觉在小程序订阅消息模块添加个人模板库接口返回的结果并不是很友好,导致很多时候在请求后,即使错误了,接口返回也是Not Found,而不是返回错误码,无法很好的定位到是因为什么原因而导致错误,有点小坑,研究了一下,终于搞定这一功能,分享一下我的过程:

1.第一步,编写自己的添加个人模板库的接口:
   /*** [addTemplates 订阅消息添加到个人模板库* @param [type] $tid              [模板标题id]* @param [type] $kidList          [模板关键词列表]* @param [type] $sceneDesc        [服务场景描述]*/public function addTemplates(){$param = ['appName'   => 'require','tid'       => 'require','kidList'   => 'require','sceneDesc' => ''];$post = (new validate($param,'post'))->goCheck();//以下是我传递的参数$appName   = trim($post['appName']);$tid       = trim($post['tid']);$kidList   = trim($post['kidList']);$sceneDesc = !empty(trim($post['sceneDesc'])) ? trim($post['sceneDesc']) : '';$kidList  = json_decode($kidList,true);//自定义封装的类$tService = new tService($appName);$list = $tService->addTemplates($tid,$kidList,$sceneDesc);//返回的结果return json_encode(['resultCode'=>1,'message'=>'success','priTmplId'=>$list]);}
2.第二步,封装工具类中的函数:
  /*** [addTemplates 组合模板并添加至帐号下的个人模板库](订阅消息)* @param [type] $tid              [模板标题id]* @param [type] $kidList          [模板关键词列表]* @param [type] $sceneDesc        [服务场景描述]*/public function addTemplates($tid,$kidList,$sceneDesc){//请求连接(这里获取access_token应该都会的,就不做交代了)$url = "https://api.weixin.qq.com/wxaapi/newtmpl/addtemplate?access_token=".$this->access_token;$data['tid']       = $tid;$data['kidList']   = $kidList;$data['sceneDesc'] = $sceneDesc;//进行请求$result = curl_datas($url,$data);  //封装好的公共函数$result = json_decode($result,true);if(!empty($result['errcode'])){throw new \Exception("获取数据错误(".$result['errcode']."): " . $result['errmsg']);}return $result['priTmplId'];}
3.第三步,封装curl公共函数:
// 請求方法(Post请求)
function curl_datas($url,$data=[],$timeout=30)
{$ch = curl_init();//取数据的地址curl_setopt($ch, CURLOPT_URL, $url);//传输为postcurl_setopt($ch, CURLOPT_POST, true);//传输数据(这里data是二维数组,一定要加http_build_query,不然会报错)curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); //隐藏返回结果curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//限制时间curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);//https支持curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//这个是重点。//执行$handles = curl_exec($ch);//断开curl_close($ch);return $handles;
}
4.第四步,使用postman进行请求,返回结果:

5.第五步,查看微信公众后台,发现确实多了一个新模板

到这里就大工告成了

以上完成的操作如有不正确的地方还望诸位多多指教

浅谈PHP实现订阅消息添加到个人模板库相关推荐

  1. kafka session.timeout.ms 是指消费一条数据的时间?_阿里工程师分享:浅谈分布式发布订阅消息系统Kafka...

    Kafka的基本介绍 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/ngi ...

  2. 小程序订阅消息和公众号模板消息

    通过小程序和公众号关联后发公众号模板消息 关联后用户登录获取到union_id,主体在小程序,根据对应场景发送模板消息 代码如下: /*** 模板消息 发送* @param $openid 接收消息的 ...

  3. 浅谈IM系统之消息必达

    1 前言 暗恋女神良久,终于鼓起勇气决定向女神写一封情书.但如何表达才能感动女神?自感才疏学浅,于是通读四书五经.熟背唐诗宋词.遍览四大名著,已然腹有诗书气自华.一周末冥思苦想整日才写就一首七言律诗, ...

  4. 浅谈JS发布订阅模式

  5. 浅谈作为开发者,我为什么做考研题库小程序

    "力尽不知热,但惜夏日长."之前,我就说过,我非常热爱用户体验和视觉设计. 一个优秀作品,用对颜色.颜色用好,提升品质感. 界面设计中,色彩的搭配比例,使得界面信息层级准确,方便用 ...

  6. js跟php增加删除信息,浅谈JavaScript数组的添加和删除

    本文给大家浅谈一下JavaScript数组的添加和删除 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 1.添加 (1)最简单的方法:为新索引赋值 (2)使用push()和unsh ...

  7. PHP 对接微信公众号订阅消息详细教程

    订阅通知是一个用户主动订阅.服务号按需下发的通知能力.使用过程请遵守<微信公众平台服务协议><微信公众平台运营规范>. 用户在前述场景主动订阅后,服务号可通过接口向用户发送订阅 ...

  8. 第四期 微信云开发之订阅消息以及定时发送(触发器)

    前言 在我们开发过程中,很多场景都会使用到微信小程序订阅消息功能,例如打卡通知.订餐通知等等.但是在云开发过程中,没有后台的情况下,如何进行消息的定时通知呢?下面我将从小程序订阅消息到定时发送订阅消息 ...

  9. 公众号一次性订阅消息

    洛塔服务号回复007获取代码. 功能说明 之前发布通知,要用订阅通知替代一次性订阅消息,不知道是被骂的太惨还是技术原因,一次性订阅消息还是一直能用. 和模板消息不同的是,一次性订阅消息无需用户关注公众 ...

最新文章

  1. VCSA 6.5 HA 配置之五:故障转移测试
  2. layer.confirm 询问框 的层遮盖
  3. delphi中利用Indy的TIdFtp控件实现FTP协议
  4. 数据可视化 信息可视化_更好的数据可视化的8个技巧
  5. linux基于域的虚拟目录,RHELAS4.0 apache配置之我的小结(虚拟目录,虚拟主机)
  6. es6 Promise,生成器函数,async
  7. 2012年下半年我国信息化和信息安全走势分析与预测
  8. linq to sql 查询操作(3):Insert/Update/Delete操作
  9. Mob云验证,让身份验证更简单
  10. bearer token头_接口认证方式:Bearer Token
  11. 自定义一个序列化表单的方法2+提示语
  12. 算法第四版 练习答案 1.4.1
  13. 《穿越计算机的迷雾》第二版再版说明
  14. unity简易游戏制作
  15. 金士顿U盘修复工具Kingston Format Utility
  16. 【xxl-job源码篇01】xxl-job源码解读 神奇的时间轮 触发流程解读
  17. python3 爬取搜狗微信的文章
  18. 适合程序员的英文名字
  19. idea 懒人神器 保存自动格式化 Save Action插件
  20. vue调用服务器图片

热门文章

  1. 简述多媒体计算机在教育与培训中应用,多媒体复习题
  2. 单机日记本软件-女孩子日记本
  3. win10下安装Ubuntu18.04LTS双系统与完全删除Ubuntu系统
  4. WPS office根目录在哪?_WPS和office到底区别在哪?工作学习中我们该如何选择?
  5. 广角镜头的标定、畸变校正和基于ROS的实时视频输出
  6. 【易飞9.0】自定义开窗需要新增字段
  7. 使用SIMD指令实现数据库运算(论文阅读笔记)
  8. C++虚函数表的底层原理 到底有几张虚函数表? 虚函数表是怎么维护的?
  9. egret添加字体样式
  10. APP淘宝,你为什么这么慢卡?