浅谈PHP实现订阅消息添加到个人模板库
可能是由于小程序订阅消息功能刚刚上线,感觉在小程序订阅消息模块添加个人模板库接口返回的结果并不是很友好,导致很多时候在请求后,即使错误了,接口返回也是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实现订阅消息添加到个人模板库相关推荐
- kafka session.timeout.ms 是指消费一条数据的时间?_阿里工程师分享:浅谈分布式发布订阅消息系统Kafka...
Kafka的基本介绍 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/ngi ...
- 小程序订阅消息和公众号模板消息
通过小程序和公众号关联后发公众号模板消息 关联后用户登录获取到union_id,主体在小程序,根据对应场景发送模板消息 代码如下: /*** 模板消息 发送* @param $openid 接收消息的 ...
- 浅谈IM系统之消息必达
1 前言 暗恋女神良久,终于鼓起勇气决定向女神写一封情书.但如何表达才能感动女神?自感才疏学浅,于是通读四书五经.熟背唐诗宋词.遍览四大名著,已然腹有诗书气自华.一周末冥思苦想整日才写就一首七言律诗, ...
- 浅谈JS发布订阅模式
- 浅谈作为开发者,我为什么做考研题库小程序
"力尽不知热,但惜夏日长."之前,我就说过,我非常热爱用户体验和视觉设计. 一个优秀作品,用对颜色.颜色用好,提升品质感. 界面设计中,色彩的搭配比例,使得界面信息层级准确,方便用 ...
- js跟php增加删除信息,浅谈JavaScript数组的添加和删除
本文给大家浅谈一下JavaScript数组的添加和删除 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 1.添加 (1)最简单的方法:为新索引赋值 (2)使用push()和unsh ...
- PHP 对接微信公众号订阅消息详细教程
订阅通知是一个用户主动订阅.服务号按需下发的通知能力.使用过程请遵守<微信公众平台服务协议><微信公众平台运营规范>. 用户在前述场景主动订阅后,服务号可通过接口向用户发送订阅 ...
- 第四期 微信云开发之订阅消息以及定时发送(触发器)
前言 在我们开发过程中,很多场景都会使用到微信小程序订阅消息功能,例如打卡通知.订餐通知等等.但是在云开发过程中,没有后台的情况下,如何进行消息的定时通知呢?下面我将从小程序订阅消息到定时发送订阅消息 ...
- 公众号一次性订阅消息
洛塔服务号回复007获取代码. 功能说明 之前发布通知,要用订阅通知替代一次性订阅消息,不知道是被骂的太惨还是技术原因,一次性订阅消息还是一直能用. 和模板消息不同的是,一次性订阅消息无需用户关注公众 ...
最新文章
- 排名第一的安全软件,为啥会变成流氓软件?
- Linux ekho
- python安装库-python 安装库
- goland 远程调试go_手把手教你学Go语言,基础环境配置和Hello World
- 嵌入式开发基础环境搭建
- .NET开发者必备的工具箱
- 每个人都在谈论硒替代品-明智地选择!
- 程序员面试金典 - 面试题 16.26. 计算器(栈)
- android应用版本更新功能---完整版
- db2取数据库日期时间_DB2数据库取得当前时间的正确解析
- 高职计算机等级考试试题,高职院校计算机等级考试的教学与思考
- Custom Components 翻译
- 虹膜识别与虹膜定位(续)算法实现
- PL-SLAM:通过点和线段组合的立体SLAM系统
- 怎样将计算机和电视机连接网络,家里怎么连接网络到电视机,让电脑和电视都可以上网。...
- 财经APP富途/老虎/雪盈 牌照分析
- 2020年同济软院夏令营经历
- marshmallow库的简单学习
- 学习英特尔线程构建模块开源2.1库
- 数据库之查询表student——查询计算机系年龄在20岁以下的学生姓名
热门文章
- 第 0章 计算机安全综述
- Android使用Tesseract-ocr进行文字识别
- Underscore.js API 学习笔记
- 计算机毕业设计Java婚庆用品销售购物网站(源码+系统+mysql数据库+Lw文档)
- 微软商店 服务器出错,Microsoft Store应用商店出现故障,错误代码0x80073D0A/0x80070020...
- 社会保险信息管理系统
- 穷困潦倒的作者凭借手机游戏“你猜我画”一夜暴富
- python极客战记_极客战记
- 常用非线性模型和线性模型的理解
- 采用SRM软件反拍卖采购的好处多多