这篇文章介绍的内容是关于微信公众平台开发者模式的启用并自动回复,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
首先,什么是开发者模式?
开发者模式,就是先验证你的服务器地址,验证完成之后,用户一旦给微信公众号发消息,微信的就会把微信用户的消息转发到这个地址上。你的服务器接到数据后,然后你自己设计一套程序,输出一个结果,再由微信服务器返回给用户。
个人学习开发建议使用测试号
微信测试号地址:http://mp./debug/cgi-bin/sandbox?t=sandbox/login
登录后,在接口配置信息中填写刚才生成的URL地址和Token.
URL地址就是二级域名地址。
Token在程序中固定为 weixin
填写好提交,提示配置成功!
如果提示“token验证失败”,多重次几次。<?php
//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->run();
class wechatCallbackapiTest
{
public function run(){
if($this->checkSignature() == false){
die("非法请求");
}
if(isset($_GET["echostr"])){
$echoStr = $_GET["echostr"];
echo $echoStr;
exit;
}else{
$this->responseMsg();
}
}
public function responseMsg(){
//get post data, May be due to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
// $postStr = file_get_contents("php://input");
file_put_contents('msg.txt',$postStr, FILE_APPEND);
//extract post data
if (!empty($postStr)){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "
%s
0
";
if(!empty($keyword)){
$msgType = "text";
$contentStr = "你好!";
// $contentStr = "hi!";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo "Input something...";
}
}else {
echo "";
exit;
}
}
private function checkSignature(){
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
?>
相关推荐: