微信公众平台开发2:示例代码分析
2016-09-30 17:39
357 查看
大致分为四个部分:定义TOKEN声明一个类 wechatCallbackapiTest创建类wechatCallbackapiTest 的一个实例对象 $wechatObj调用类的 valid() 方法。
详细分析
定义TOKEN
TOKEN 是用来交互时进行安全认证的,开发者可以随意定义,但要和公众平台里设置的一样。声明一个类
声明一个类 wechatCallbackapiTest,该类中包含有三个方法。valid() 申请 成为开发者 时向微信发送验证信息。验证通过后,需要注释掉对此函数的调用。responseMsg()处理并回复用户发送过来的消息,也是用的最多的一个函数,几乎所有的功能都在这里实现。在此处可以获取到用户的openid
public function responseMsg(){ //get post data, May be due to the different environments //接收微信公众平台发送过来的用户消息,该消息数据结构为XML,不是php默认的识别数据类型, //因此这里用了$GLOBALS['HTTP_RAW_POST_DATA']来接收 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //extract post data if (!empty($postStr)){ //使用 simplexml_load_string() 函数将接收到的XML消息数据载入对象$postObj中。 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName;//用户的 openid $toUsername = $postObj->ToUserName;//公众账号的ID $keyword = trim($postObj->Content);//trim() 函数从字符串的两端删除空白字符和其他预定义字符,得到用户输入的关键词 $time = time(); //微信输出内容模板 $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; if(!empty( $keyword )){ $msgType = "text";//给用户返回文本消息类型 $contentStr = "Welcome to wechat world!";//回复的消息内容 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }else{ echo "Input something...";//you can output help } }else { echo ""; exit; } }checkSignature()开发者通过检验signature对请求进行校验。若确认此次GET请求来自微信服务器,原样返回echostr参数内容,则接入生效,否则接入失败。signature结合了开发者填写的token参数和请求中的timestamp参数、nonce随机数参数。加密/校验流程:1. 将token、timestamp、nonce三个参数进行字典序排序2. 将三个参数字符串拼接成一个字符串后进行sha1加密3. 开发者获得加密后的字符串可与signature对比,验证该请求是否来源于微信调用类的valid()方法执行接口验证,接口设置成功后需要将其注释掉。
艺搜参考
http://www.cnblogs.com/mchina/archive/2013/06/07/3120592.html相关文章推荐
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 微信公众平台开发(PHP)(二) 微信公众平台示例代码分析
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 微信公众平台开发2:示例代码分析
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 微信公众平台开发(二) 微信公众平台示例代码分析
- 微信公众平台开发 微信公众平台示例代码分析
- 微信公众平台开发模式 自定义菜单 指南与菜单新建错误代码分析
- php微信公众平台示例代码分析(二)
- 代码函数从零开始学习OpenCL开发(二)一个最简单的示例与简单性能分析