/**

* 模板消息,申请后获取模板id:FDfSaS63i3sVCRw0e5hTvjnLO6hMpjGD8HmFHIEeGw4,示例为成为会员通知,

{{first.DATA}}

昵称:{{keyword1.DATA}}

手机:{{keyword2.DATA}}

成为会员赠送积分:{{keyword3.DATA}}

会员级别:{{keyword4.DATA}}

会员卡号:{{keyword5.DATA}}

{{remark.DATA}}

token.php为获取token文件

*/

//define your token

define("TOKEN", "weixin");

$wechatObj = new wechatCallbackapiTest();

$wechatObj->responseMsg();

class wechatCallbackapiTest

{

public function valid()

{

$echoStr = $_GET["echostr"];

//valid signature , option

if($this->checkSignature()){

echo $echoStr;

exit;

}

}

public function responseMsg()

{

//get post data, May be due to the different environments

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

//extract post data

if (!empty($postStr)){

/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,

the best way is to check the validity of xml by yourself */

libxml_disable_entity_loader(true);

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

$fromUsername = $postObj->FromUserName;

$toUsername = $postObj->ToUserName;

$keyword = trim($postObj->Content);

$time = time();

if(!empty( $keyword ))

{

include("token.php");

$url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={$token}";

$a=array("first"=>array("value"=>"欢迎加入会员中心","color"=>"#FF0000"),"keyword1"=>array("value"=>"张三","color"=>"#FF0000"),"keyword2"=>array("value"=>"13455555555","color"=>"#FF0000"),"keyword3"=>array("value"=>"100","color"=>"#FF0000"),"keyword4"=>array("value"=>"铜牌会员","color"=>"#FF0000"),"keyword5"=>array("value"=>"001","color"=>"#FF0000"),"remark"=>array("value"=>"点击查看更多优惠","color"=>"#FF0000"));

$b=array("touser"=>"{$fromUsername}","template_id"=>"FDfSaS63i3sVCRw0e5hTvjnLO6hMpjGD8HmFHIEeGw4","url"=>"http://www.qq.com","topcolor"=>"#FF0000","data"=>$a);

$post=json_encode($b);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);//url

curl_setopt($ch, CURLOPT_POST, 1); //post

curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

curl_exec($ch);

curl_close($ch);

}else{

echo "Input something...";

}

}else {

echo "";

exit;

}

}

private function checkSignature()

{

// you must define TOKEN by yourself

if (!defined("TOKEN")) {

throw new Exception('TOKEN is not defined!');

}

$signature = $_GET["signature"];

$timestamp = $_GET["timestamp"];

$nonce = $_GET["nonce"];

$token = TOKEN;

$tmpArr = array($token, $timestamp, $nonce);

// use SORT_STRING rule

sort($tmpArr, SORT_STRING);

$tmpStr = implode( $tmpArr );

$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){

return true;

}else{

return false;

}

}

}

?>

php微信获取模板id,微信模板消息示例相关推荐

  1. 微信获取用户信息 ”微信用户“

    微信获取用户信息 "微信用户" 微信小程序 调用getUserProfile库的时候显示"微信用户" ,不显示微信头像和昵称的情况原因是: 由于版本太高选择低于 ...

  2. 微信获取open ID

    获取code https://open.weixin.qq.com/connect/oauth2/authorize?appid=这里是你的公众号的APPID&redirect_uri=htt ...

  3. 微信公众号开发 [04] 模板消息功能的开发

    1.模板消息的概况 模板消息的定位是用户触发后的通知消息,不允许在用户没做任何操作或未经用户同意接收的前提下,主动下发消息给用户.目前在特殊情况下允许主动下发的消息只有故障类和灾害警示警告类通知,除此 ...

  4. 微信公众平台开发之模板消息(Java)

    目录(?)[-] 模版消息 具体调用方法 事件推送 返回码说明 一开发模板消息SDK 二构造模板消息并发送 模版消息 由于柳峰老师的新书还没有出来,网上也没有过多介绍基于Java语言的开发微信公众平台 ...

  5. 微信公众平台开发-发送模板消息

    微信公众账号开发-发送模板消息: 内容概要 本篇文章主要叙述如何在微信公众帐号上实现"发送模板消息开发"功能.包含json的封装与解析. 何谓模板消息 为了保证用户不受到骚扰,在开 ...

  6. 公众号 接收规则 消息_微信公众号开发之模板消息

    欢迎留言.转发 微信极速开发系列文章:点击这里 最近有点小感冒,文章的更新进度延误了一些,希望此系列文章对你研究微信公众开发有帮助.前几篇文章介绍了微信支付. 公众号支付.微信扫码支付.刷卡支付.微信 ...

  7. 微信小程序 云开发 订阅消息 获取下发权限失败 errCode: 20001

    通过下面的代码获取订阅消息的下发权限 提示错误 errMsg: "requestSubscribeMessage:fail No template data return, verify t ...

  8. 【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏

    开始前,请先完成圆梦宝典中宫格导航的开发,详见 [微信小程序-原生开发]实用教程 07 - Grid 宫格导航,详情页,侧边导航(含自定义页面顶部导航文字) https://blog.csdn.net ...

  9. 微信小程序云开发教程-手把手:获取微信订阅消息的模板ID

    本小节,我们将手把手带领大家一起实现第一个接口,获取微信订阅消息的模板ID 通过开发这个接口,我们将学会云函数的基本结构和函数返回值的格式定义. 开发接口前,我们必须先写接口文档.小程序后端的接口文档 ...

最新文章

  1. 【集合论】序关系 ( 偏序集元素之间的关系 | 可比 | 严格小于 | 覆盖 | 哈斯图 )
  2. 使用github+hexo搭建静态博客
  3. 其他的AdapterView——Spinner
  4. mvc设计模式_MVC设计模式
  5. 数学建模保姆教程-1
  6. 广州地铁公厕(洗手间)和母婴室信息汇总
  7. Python爬虫整站爬取安居客新房房源数据
  8. 用冰封服务器安装系统,冰封一键重装系统怎么使用 冰封一键重装系统使用教程...
  9. 2018 蓝桥杯 C++ A组 1-7
  10. 锐文科技发布基于国产FPGA的智能网卡芯片
  11. allegro16.6导出版图到ADS2019仿真的方法
  12. Linux 人大金仓安装部署记录
  13. 新唐n76e003单片机遥控PWM信号检测控制航灯系统
  14. 天天在做的数据可视化,才是企业数字化转型的关键
  15. 站长常用的200个js代码
  16. 三年上一大台阶,联想凌拓做对了什么?
  17. C++17之省略不必要的拷贝Copy Elision
  18. 计算机无法信任的英文,关于信任的英语名言佳句语录
  19. ArcGIS 切片/瓦片的发布与加载
  20. python的request发请求报500原因

热门文章

  1. 阅读分享:A Frustratingly Easy Approach for Entity and Relation Extraction-NAACL2021
  2. RS232/RS485信号转8路模拟信号 隔离D/A转换器WJ33
  3. 解决问题:ubuntu双屏显示的时候,鼠标从左屏幕向右切在边界处会卡顿,需要快速移动鼠标冲过
  4. el-dialog对话框重新打开后数据遗留问题
  5. liunx服务器项目迁移,linux服务器数据迁移
  6. 年薪500k阿里云大咖:掌握好以下数据库八大要点,月薪50k不是梦
  7. 微信支付 php简单源码,php微信支付相关源码
  8. ChinaUnix-负载均衡沙龙
  9. 8000 sentences of Oral English(three)
  10. 【算法】哈夫曼压缩算法-学习记录