微信公众号开发教程 接口配置与身份验证
要想成为微信公众号的开发者,首先必须有可以对外访问的服务器。微信公众号的开发不限制使用什么语言,这里我们使用PHP作为开发语言。
接口接入配置
登录微信公众平台官网后,在公众平台后台管理页面 - 开发者中心页,点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey,其中URL是开发者用来接收微信消息和事件 的接口URL。Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。 EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。
同时,开发者可选择消息加解密方式:明文模式、兼容模式和安全模式。模式的选择与服务器配置在提交后都会立即生效,请开发者谨慎填写及选择。加解密方式的默认状态为明文模式,选择兼容模式和安全模式需要提前配置好相关加解密代码,详情请参考消息体签名及加解密部分的文档。
身份验证
填写完接口信息以后,开始进行进行身份验证同时也是验证服务器的有效性。在我们提交信息以后,微信服务器会发送GET请求到我们上面填写的URL上。在上面填写的URL地址中我们可以看到,我们填写了一个php文件。没错,我们就是用这个PHP文件来进行验证的。
部分验证代码如下
public function valid(){
$echoStr = $_GET["echostr"];
//valid signature , option
if($this->checkSignature()){
echo $echoStr;
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;
}
}
通过上面的代码我们可以看到,微信服务器会向我们的服务器地址发送四个参数,分别是:
signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串
那么token又是从哪里来的呢?这里的token就是我们上面填写的Token——URL下面的字段。所以在我们的验证代码中需要定义token常量
define("TOKEN",”我们填写的token”); //注意,这里的值必须和我们上面填写的一致
php完整代码下载
我们的验证代码准备完成以后,提交信息,我们会惊喜的看到在顶部会提示我们配置成功。
接入成功以后,我们要想着启用我们的接口,然后我们就可以根据开发文档来实现我们想要的效果了。
本文转载自:迹忆客(https://www.jiyik.com)
以上是 微信公众号开发教程 接口配置与身份验证 的全部内容, 来源链接: utcz.com/z/290125.html