微信接入服务器配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信接入服务器配置相关的知识,希望对你有一定的参考价值。

填写服务器配置

打开https://mp.weixin.qq.com,登录到相应的公众号。在 开发-》基本配置里填写相关信息

技术分享

 

URL:是与微信进行接入认证的地址,由于我的默认页面是

Token:由开发者自定义填写,用作生成签名

EncodingAESKey:随机生成即可

消息加密方式:明文模式

服务端程序验证

可参考微信开发接入指南

1)获取微信通过GET传过来的参数

2)对token、timestamp、nonce三个参数进行字典排序

3)将上一步中的三个字符串参数进行拼接,并sha1加密

4)得到第三步加密后的字符串与微信传来的signature对比

官方demo如下:

<?php
/**
  * wechat php test
  */

//define your token
define("TOKEN", "faxiangame");
$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 (!empty($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(!empty( $keyword ))
                // {
                      // $msgType = "text";
                    // $contentStr = "Welcome to wechat world!";
                    // $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;
        }
    }
}

?>

要注意的是:程序中定义的token要与微信基本配置里填写的token值一致

接着到公众号中提交配置,如果显示提交成功,则微信接入成功,如下图

技术分享

接入失败的情况

1)访问URL响应时间过长

2)token不一致

3)URL端口错误

4)代码有误

快速验证方法

如果程序中signature比对成功,则需要原样返回微信传过来的echostr。所以可以在对应的PHP文件,如我的是wx.php,直接写一行代码就可以快速验证

技术分享

 

以上是关于微信接入服务器配置的主要内容,如果未能解决你的问题,请参考以下文章

微信公众平台开发 - 接入及配置常见问题

H3 BPM微信接入配置

接入指南

20160170002 微信公众平台开发接入指南

微信公众平台--1.开发者接入

zabbix如何接入微信告警