(提示:需要有服务器或云虚拟机)
一开始不明白公众号不是可以这样管理吗?
那么为什么用开发平台进行公众号开发,官方文档是这样说的
为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,
如果需要在多公众号、移动应用之间做用户共通,则需前往微信开放平
台,将这些公众号和应用绑定到一个开放平台账号下,绑定后,一个用
户虽然对多个公众号和应用有多个不同的OpenID,但他对所有这些同
一开放平台账号下的公众号和应用,只有一个UnionID,可以在用户管
理-获取用户基本信息(UnionID机制)文档了解详情。
下面开始基本配置吧
下面这些都要设置的
(以上信息建议复制一份到文本文档中)
当然要上传相应文件到服务器上
代码如下:
1 define("TOKEN", "hello");//令牌改成自己的 2 3 $wechatObj = new wechatCallbackapiTest(); 4 5 $wechatObj->valid(); 6 7 8 9 class wechatCallbackapiTest 10 11 { 12 13 14 public function valid() 15 16 { 17 18 $echoStr = $_GET["echostr"]; 19 20 21 22 //valid signature , option 23 24 if($this->checkSignature()){ 25 26 echo $echoStr; 27 28 exit; 29 30 } 31 32 } 33 34 35 36 public function responseMsg() 37 38 { 39 40 //get post data, May be due to the different environments 41 42 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; 43 44 45 46 //extract post data 47 48 if (!empty($postStr)){ 49 50 51 52 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); 53 54 $fromUsername = $postObj->FromUserName; 55 56 $toUsername = $postObj->ToUserName; 57 58 $keyword = trim($postObj->Content); 59 60 $time = time(); 61 62 $textTpl = "<xml> 63 64 <ToUserName><![CDATA[%s]]></ToUserName> 65 66 <FromUserName><![CDATA[%s]]></FromUserName> 67 68 <CreateTime>%s</CreateTime> 69 70 <MsgType><![CDATA[%s]]></MsgType> 71 72 <Content><![CDATA[%s]]></Content> 73 74 <FuncFlag>0</FuncFlag> 75 76 </xml>"; 77 78 if(!empty( $keyword )) 79 80 { 81 82 $msgType = "text"; 83 84 $contentStr = "Welcome to wechat world!"; 85 86 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); 87 88 echo $resultStr; 89 90 }else{ 91 92 echo "Input something..."; 93 94 } 95 96 97 98 }else { 99 100 echo ""; 101 102 exit; 103 104 } 105 106 } 107 108 109 110 private function checkSignature() 111 112 { 113 114 $signature = $_GET["signature"]; 115 116 $timestamp = $_GET["timestamp"]; 117 118 $nonce = $_GET["nonce"]; 119 120 121 122 $token = TOKEN; 123 124 $tmpArr = array($token, $timestamp, $nonce); 125 126 sort($tmpArr); 127 128 $tmpStr = implode( $tmpArr ); 129 130 $tmpStr = sha1( $tmpStr ); 131 132 133 134 if( $tmpStr == $signature ){ 135 136 return true; 137 138 }else{ 139 140 return false; 141 142 } 143 144 } 145 146 }
配置成功后,按启用,基本配置就算完成了。