0%

微信接入服务器配置验证

接入概述

接入微信公众平台开发,开发者需要按照如下步骤完成:

  1. 填写服务器配置
  2. 验证服务器地址的有效性
  3. 依据接口文档实现业务逻辑

填写服务器配置

登陆微信后台,点开左侧工具栏点开基本配置

URL 为你服务器验证微信身份的地址 如 http://www.kilingzhang.com/weixin/demo.php

Token 为自己设置的校验key,相当于一个密码 用来和服务器进行验证 如 wojiushigemima

EncodeAESKey 消息加密的密钥 用于解密加密消息 随机生成的

消息加密方式 根据实际情况选择

填好后配置信息后需要先在服务器中添加验证文件后才可以保存配置。

// 不上传验证文件保存会提示验证token失败。

验证消息的确来自微信服务器

当你填写好上列配置后,需要在上文填写的url地址的服务器中添加验证文件,如/www/weixin/demo.php
demo.php中 微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

signature 就是加密过后的Token 用来验证你的信息的 他是结合Token和timeStamp和nonce参数进行的加密 加密算法如下:

1. 将token、timestamp、nonce三个参数进行字典序排序

2. 将三个参数字符串拼接成一个字符串进行sha1加密

3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

4. 代码:

public function checkSignature($token){
    // 1)将token、timestamp、nonce三个参数进行字典序排序
    $timestamp = $_GET['timestamp'];
    $nonce     = $_GET['nonce'];
    $signature = $_GET['signature'];
    $temArr    = array($timestamp, $nonce, $token);
    sort($temArr);

    //2)将三个参数字符串拼接成一个字符串进行sha1加密
    $temStr = implode( $temArr );
    $temStr = sha1($temStr);

    //3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
    if ($temStr == $signature && isset($_GET['echostr'])) {
        $echostr = $_GET['echostr'];
        echo $echostr;
        exit;
    }
    else{
        return '{"errcode":-1,"errmsg":"失败"}';
    }
}

依据接口文档实现业务逻辑

验证URL有效性成功后即接入生效,成为开发者。你可以在公众平台网站中申请微信认证,认证成功后,将获得更多接口权限,满足更多业务需求。

只有第一次验证的时候才需要这个函数,其余业务逻辑的时候,这个URL就是接收微信服务器发送消息的地址,具体细节之后的文章将会详解。