php微信公众平台开发类实例,php公众平台实例

本文实例讲述了php微信公众平台开发类。分享给大家供大家参考。具体分析如下:

ThinkWechat.php类文件如下:

auth($token) || exit;

if(!empty($_GET['echostr'])){

exit($_GET['echostr']);

} else {

try

{

$xml = file_get_contents("php://input");

$xml = new SimpleXMLElement($xml);

$xml || exit;

foreach ($xml as $key => $value) {

$this->data[$key] = strval($value);

}

}catch(Exception $e){

}

}

}

/**

* 获取微信推送的数据

* @return array 转换为数组后的数据

*/

public function request(){

return $this->data;

}

/**

* * 响应微信发送的信息(自动回复)

* @param string $to 接收用户名

* @param string $from 发送者用户名

* @param array $content 回复信息,文本信息为string类型

* @param string $type 消息类型

* @param string $flag 是否新标刚接受到的信息

* @return string XML字符串

*/

public function response($content, $type = 'text', $flag = 0){

/* 基础数据 */

$this->data = array(

'ToUserName' => $this->data['FromUserName'],

'FromUserName' => $this->data['ToUserName'],

'CreateTime' => time(),

'MsgType' => $type,

);

/* 添加类型数据 */

$this->$type($content);

/* 添加状态 */

$this->data['FuncFlag'] = $flag;

/* 转换数据为XML */

$xml = new SimpleXMLElement('');

$this->data2xml($xml, $this->data);

exit($xml->asXML());

}

/**

* 回复文本信息

* @param string $content 要回复的信息

*/

private function text($content){

$this->data['Content'] = $content;

}

/**

* 回复音乐信息

* @param string $content 要回复的音乐

*/

private function music($music){

list(

$music['Title'],

$music['Description'],

$music['MusicUrl'],

$music['HQMusicUrl']

) = $music;

$this->data['Music'] = $music;

}

/**

* 回复图文信息

* @param string $news 要回复的图文内容

*/

private function news($news){

$articles = array();

foreach ($news as $key => $value) {

list(

$articles[$key]['Title'],

$articles[$key]['Description'],

$articles[$key]['PicUrl'],

$articles[$key]['Url']

) = $value;

if($key >= 9) { break; } //最多只允许10调新闻

}

$this->data['ArticleCount'] = count($articles);

$this->data['Articles'] = $articles;

}

/**

* 数据XML编码

* @param object $xml XML对象

* @param mixed $data 数据

* @param string $item 数字索引时的节点名称

* @return string

*/

private function data2xml($xml, $data, $item = 'item') {

foreach ($data as $key => $value) {

/* 指定默认的数字key */

is_numeric($key) && $key = $item;

/* 添加子元素 */

if(is_array($value) || is_object($value)){

$child = $xml->addChild($key);

$this->data2xml($child, $value, $item);

} else {

if(is_numeric($value)){

$child = $xml->addChild($key, $value);

} else {

$child = $xml->addChild($key);

$node = dom_import_simplexml($child);

$node->appendChild($node->ownerDocument->createCDATASection($value));

}

}

}

}

/**

* 对数据进行签名认证,确保是微信发送的数据

* @param string $token 微信开放平台设置的TOKEN

* @return boolean true-签名正确,false-签名错误

*/

private function auth($token){

if(empty($_GET['signature'])) return;

/* 获取数据 */

$data = array($_GET['timestamp'], $_GET['nonce'], $token);

$sign = $_GET['signature'];

/* 对数据进行字典排序 */

sort($data,SORT_STRING);

/* 生成签名 */

$signature = sha1(implode($data));

return $signature === $sign;

}

}

希望本文所述对大家的php程序设计有所帮助。

www.bkjia.comtrueTechArticlephp微信公众平台开发类实例,php公众平台实例 本文实例讲述了php微信公众平台开发类。分享给大家供大家参考。具体分析如下: ThinkWecha…

微信公众平台开发实例 php,php微信公众平台开发类实例,php公众平台实例_PHP教程...相关推荐

  1. php在文本框中输入一个年份_判断其生肖_并输出在文本框旁边.代码,PHP开发工程师面试真题之Web网页设计(附参考答案)_PHP教程...

    一.Form表单 真题1:简述POST和GET传输的最大容量分别是多少? 参考答案: GET方法传递数据,控制在1MB之内(因为URL的长度限制在1MB字符以内):POST方法传输数据没有大小的限制. ...

  2. 微信开发实例视频教程-深入浅出微信公众平台实战开发

    微信开发视频教程-深入浅出微信公众平台实战开发(微网站.LBS云.Api接口调用.服务号高级接口) 一.微信开发实例视频教程总目录: 微信开发实例视频教程 讲师介绍: 易伟,现广东合桓律师事务所专职律 ...

  3. php公众号开发关注事件推送图文_PHP_微信公众平台开发关注及取消关注事件的方法,本文实例讲述了微信公众平台 - phpStudy...

    微信公众平台开发关注及取消关注事件的方法 本文实例讲述了微信公众平台开发关注及取消关注事件的方法.分享给大家供大家参考.具体分析如下: 用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的 ...

  4. 微信公众平台开发(31)微信第三方登录接口

    原文: http://www.cnblogs.com/imaker/p/5491433.html 第一步:获取AppID AppSecret(不做解释,自己去微信公众平台申请) 第二步:生成扫描二维码 ...

  5. 微信公众号api关注接口php,微信公众平台接口开发入门示例

    本文实例讲述了微信公众平台接口开发入门示例.分享给大家供大家参考.具体如下: 微信公众平台的接口开发是一个现在比较常用的功能了,很多的人都会去了解一下微信公众平台一些简单开发应用,这里就来给大家介绍一 ...

  6. 微信公众平台开发(二) 微信公众平台示例代码分析

    http://www.cnblogs.com/mchina/archive/2013/06/07/3120592.html 微信公众平台开发(二) 微信公众平台示例代码分析 一.摘要 微信公众平台提供 ...

  7. 微信/易信公共平台开发(一):开发了一个简单易用的PHP类(提供源码),十几行代码搞定一个公众号

    这两天学习了一下微信公共平台和易信公共平台的开发 (易信与微信协议是基本一样的)(PS:没听说过易信?你out了?) 公共平台开发原理这里就不讲了,如果是初次接触的同学,建议先看 David_Tang ...

  8. 微信公众平台开发(24) 自定义菜单功能开发

    原文: http://www.cnblogs.com/imaker/p/5491433.html 一.简介 微信公众平台服务号以及之前成功申请内测资格的订阅号都具有自定义菜单的功能.开发者可利用该功能 ...

  9. 微信公众开放平台开发07---java servlet 实现微信开发第一步:微信服务器验证

    微信公众开放平台开发07---java servlet 实现微信开发第一步:微信服务器验证  技术qq交流群:JavaDream:251572072 ------------------------- ...

  10. 微信公众号html在线编辑器,【微信公众平台工具开发】雷人微信网页编辑器

    原标题:[微信公众平台工具开发]雷人微信网页编辑器 [微信公众平台工具开发]雷人微信网页编辑器 雷人微信编辑器--真正的微信神器,可以将热门.头条和自己感兴趣的文章,包括微信朋友圈分享的公众号里面的精 ...

最新文章

  1. request.getParameter如何获取radio的属性值
  2. python反转列表不用切片,在Python中反转切片
  3. Nginx 学习笔记(五)nginx-vod-module 模块
  4. 测试你的开源 IQ 答案
  5. postman导入swagger文档,并设置cookies进行测试
  6. put url带参数_避免自己写的 url 被diss!建议看看这篇RESTful API简明教程!
  7. python接口自动化参数化_python接口自动化6-参数化关联
  8. 禁用校园网烦人的客户端下载自动弹窗
  9. java学习笔记---3
  10. 白盒测试方法与黑盒测试方法简析
  11. 书写台灯哪种比较适合儿童?盘点护眼的儿童读写台灯推荐
  12. python+html实现前后端数据交互界面显示
  13. 如果真的存在外星人,AI终将找到它
  14. SSM框架搭建简单实例
  15. 光具有无穷维度及不同维度空间中的物体
  16. 4种改善类别不平衡的方法
  17. 树莓派(raspberry pi)日记1之个人网站的构建(localhost内网穿透实现公网可以访问)
  18. VuePress 不用Algolia 全文搜索那就缺了灵魂
  19. 马斯克与贝索斯:世界上最有钱的两人展开太空大战
  20. heritrix mysql_heritrix的简单使用以及在后台调用heritrix

热门文章

  1. 动态规划 机器人军团 POJ2533 中等
  2. redission实现分布式锁
  3. 计算机显示器黑屏首先检查,电脑显示器黑屏怎么回事?教你处理方案
  4. Word 首页如何不插入页码? 页码从正文开始,如何分节
  5. 操作系统知识点总结(十四)文件保护:文件访问类型和访问控制
  6. 中富之命能有多少钱_一般算命的都说中富 请问,褔贵之命,怎么解释,一般算命都会说,富贵命...
  7. java 发 腾讯企业邮_JAVA使用腾讯企业邮箱发送邮件时报错Could not connect to SMTP host...
  8. 雪豹10.6升级10.8
  9. 法宝合成时的五行位置分配是什么
  10. 2018年春季学期《软件工程》教学总结