微信开发中验证 基本配置 的token验证 及自动回复代码(PHP)
2017-11-29 20:09
597 查看
<?php
/**
* wechat php test
*/
//define your token
define(“TOKEN”, “demo”);
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
//这个地方只需要验证一次就够了
//$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 if (PHP_VERSION >= 7) { $postStr = file_get_contents('php://input'); } else { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; } //file_put_contents('999.txt', $postStr); //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(); $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 = "自动回复中你想输出的内容"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }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微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
- php微信开发 接口配置信息 如何代码实现,代码实现,入口文件 token 配置失败
- 微信开发(PHP实现订阅号的公众号配置和自动回复)
- 关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
- 基于PHP的微信公众平台开发(TOKEN验证,消息回复)
- PHP微信开发---简单的文本自动回复
- 微信自动回复图片 api标准接口的 php代码
- PHP微信开发新浪sea服务器提示token验证失败
- php版微信开发Token验证失败或请求URL超时问题的解决方法
- PHP微信开发, 简单的文本自动回复
- php版微信开发之接收消息,自动判断及回复相应消息的方法
- eclipse完美配置PHP开发环境 ;(下载 安装 配置php自动提示代码 优化eclipse)
- 微信公众号开发之文本消息自动回复,以及系统关注自动回复,php代码
- TP5微信开发地址验证中的配置失败或者token验证失败的解决办法
- 微信.NET 微信开发 自动内容回复 ASP.NET C#代码
- PHP微信开发之文本自动回复
- PHP微信开发之微信消息自动回复下所遇到的坑
- [开发记录][微信]开发者模式验证与基本回复功能
- PHP微信开发之文本自动回复
- PHP微信公众平台开发:配置、微信api接入验证