您的位置:首页 > 移动开发 > 微信开发

微信公众号开发 配置服务器URL,验证Token

2017-06-29 21:51 1436 查看
主要讲配置,验证token,以及可能遇到的错误和需要注意的细节。

1.你肯定要有个微信公众号;if(no)return;

2.在平台上,找到 ‘开发’ –’基本配置’,



服务器地址: 你的服务器地址,推送消息会转发到这个地址上; 只支持http:80端口/ https:443端口

令牌: 作为第一次验证的标识,要和你php文件里面的token保持一致;

消息加解密: 随机生成即可;

消息加解密方式:根据需要;

至于外头的白名单配置,如果开发中不需要access_token的话,不配置白名单也没事。

3.后台需要编写验证token脚本,下面以php的为例,(你的服务器要有php环境)

<?php

/**

* wechat php test

* update time: 20141008

*/

//define your token

define("TOKEN", "weixin");  // 改成在平台上配置的token

$wechatObj = new wechatCallbackapiTest();

$wechatObj->valid();

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

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

//extract post data

if (!emptyempty($postStr)){

$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(!emptyempty( $keyword ))

{

$msgType = "text";

$contentStr = "Welcome to wechat world!";

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

echo $resultStr;

}else{

echo "";

}

}else {

echo "";

exit;

}

}

private function checkSignature()

{

$signature = $_GET["signature"];

$timestamp = $_GET["timestamp"];

$nonce = $_GET["nonce"];

$token = TOKEN;

$tmpArr = array($token, $timestamp, $nonce);

sort($tmpArr, SORT_STRING);

$tmpStr = implode( $tmpArr );

$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){

return true;

}else{

return false;

}

}

}

?>


4.后台写好之后,即可在平台上点击提交配置,出现 提交成功提示,就算配置成功。

用这个php来验证,不会有问题,如果提示 url超时,先确认你的url能不能被访问到,用postman的工具测一下,也可以抓包看一下。查看服务器有没有拦截微信的ip,登录服务器,用
iptables -list
查看当前ip禁用配置。如果都没有问题,请先别怀疑这段代码,换个服务器试一下。

5.提交成功之后,别忘了启动配置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: