微信公众平台PHP源代码
来源:互联网 发布:王者荣耀红莲斗篷数据 编辑:程序博客网 时间:2024/06/08 09:47
以下为微信公众平台订阅号PHP源代码
<?php//定义您的标识define("TOKEN", "weixin");//请将 "weixin" 改为您命名的 TOKEN$wechatObj = new wechat();if(isset($_GET['echostr'])){$wechatObj->valid();}else{$wechatObj->responseMsg();}class wechat{ public function valid() { $echoStr = $_GET["echostr"]; //有效签名,选项 if ($this->checkSignature()) { echo $echoStr; exit; } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr,SORT_STRING); $tmpStr = implode($tmpArr); $tmpStr = sha1($tmpStr); if ($tmpStr == $signature) { return true; } else { return false; } } public function responseMsg() //接收数据 { //使用 get 亦或 post 数据,取决于不同环境 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //获取 post 数据 if (!empty($postStr)) { //用 SimpleXML 解析 post 过来的 XML 数据 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $type = trim($postObj -> MsgType); //判断数据类型 switch ($type) { case "text": $resultStr = $this -> receiveText($postObj); break; case "event": $resultStr = $this -> receiveEvent($postObj); break; default: $resultStr = "unknow msg type: ".$type; break; } echo $resultStr;//输出结果 } else { echo ""; exit; } } private function receiveText($object) { $funcFlag = 0; $keyword = trim($object->Content);//获取消息内容 $resultStr = ""; $contentStr = ""; //返回数据 //设置回复关键词18 if ($keyword == "18" || $keyword == " 18" || $keyword == "18 ") { $contentStr = '<a href="http://www.weixingon.com/wechat/wechatappdev/">微信公众平台应用开发实战</a>'; $resultStr = $this -> transmitText($object, $contentStr, $funcFlag); return $resultStr; } //设置回复关键词21 if ($keyword == "21" || $keyword == " 21" || $keyword == "21 ") { $contentStr = '<a href="http://www.weixingon.com/wechat/allenzhangofwechat/">微信帝国内争与外伐</a>'; $resultStr = $this -> transmitText($object, $contentStr, $funcFlag); return $resultStr; } //被动自动回复内容 else { $contentStr = '感谢您的关注/::)回复数字【18】阅读《微信公众平台应用开发实战》回复数字【21】阅读《微信帝国内争与外伐》';//返回消息内容 $resultStr = $this -> transmitText($object, $contentStr, $funcFlag); return $resultStr; } } private function receiveEvent($object) { $contentStr = ""; switch ($object -> Event) { case "subscribe": //关注後自动推送消息 $contentStr = '感谢您的关注/::)回复数字【18】阅读《微信公众平台应用开发实战》回复数字【21】阅读《微信帝国内争与外伐》'; break; } $resultStr = $this -> transmitText($object, $contentStr); return $resultStr; } private function transmitText($object, $content, $flag = 0) { //返回文本消息模板 $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>%d</FuncFlag> </xml>"; //格式化消息模板 $resultStr = sprintf($textTpl, $object -> FromUserName, $object -> ToUserName, time(), $content, $flag); return $resultStr; }}?>
阅读全文
0 0
- 微信公众平台PHP源代码
- 微信公众平台PHP开发
- 微信公众平台PHP开发
- 【php】微信公众平台--点歌功能
- 微信公众平台PHP开发
- 微信公众平台PHP开发
- PHP微信公众平台自定义菜单
- 微信公众平台PHP开发
- 微信公众平台PHP开发
- 微信公众平台PHP开发
- 微信公众平台php开发包
- PHP接入微信公众平台
- 微信公众平台PHP开发
- 微信公众平台开发-PHP版
- 微信公众平台开发-PHP版
- PHP之微信公众平台开发
- 公众号删除分组,php开发微信公众平台
- 微信公众平台开发框架sophia源代码
- 面向对象程序设计上机练习七(类和对象)
- Android常见的面试题总结(四)
- http请求中的方法
- c++ 循环简单说(for)(读书体会)
- Scratch第一课:让小猫走起来
- 微信公众平台PHP源代码
- RF+Selenium2Library元素定位不到的问题
- 什么是回调函数?
- 题目75-日期计算
- Ubuntu 下安装 Sublime Text 3
- typescript学习1 基础类型
- 希尔排序
- Leetcode-Merge Intervals
- python错误和异常