学习微信官方代码wx_sample.php

微信开发学习,官方把一些常用命令都已经封装好了,直接调用即可。但本着钻研的态度,还是来详细看一下。


定义常量TOKEN,,是为了服务器安全,防止他人调用,可以自行更改,更改后公众号借口配置也要做相应更改.

$wechatObj -> valid()为验证开发模式借口,验证完即可注视获或是忽略


valid验证借口的方法,从用户端获取一个随机字符变量$echoStr,checkSIgnature验证签名是否一致,为真是输出变量$echoStr,完成验证操作 。


自动回复信息的方法,用户端发送的数据存入变量$postStr中,格式为xml,$_POST无法解析,$GLOBALS["HTTP_RAW_POST_DATA"]来获取,

解析变量$postStrl,

  libxml_disable_entity_loader(true);
           $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);//解析xml
         $fromUsername = $postObj->FromUserName; //用户名
         $toUsername = $postObj->ToUserName; //公众号ID

         //自定义event,subscribe事件
         $type = $postObj -> MsgType;
         $customevent = $postObj -> Event;

         //提取纬度和精度
         $latitude = $postObj -> Location_X;
         $longitude = $postObj -> Location_Y;

         $keyword = trim($postObj->Content);     //发来的文本内容
         $time = time(); //系统时间变量
         $textTpl = "


%s


0
";

 $fromUsername微信用户端用户名,

$toUsername公众账号ID

$keyword用户发来的文本内容

$time系统时间

$textTpl微信内容固定格式

微信目标方

<FromUserName>微信来源方

>系统时间

回复微信的信息类型

回复微信的内容

是否星标微信


重点来了

$msgType设置回复文本类型

$contentStr我们需要回复的信息,内容在这里更改

$resultStr定义xml

建立私有方法签名,看看即可

获取用户端签名$signature

获取用户端时间戳$timestamp

获取用户端随机数$snonce

常量赋值$token

数组$tomArr

新建名排序

字典排序

sha1加密

判断$tmpStr和$signature变量是否同值

你可能感兴趣的:(微信开发)