微信服务器GET的方法和检验方法(一步一)
2023-09-10 15:00:45 欢乐点

第一步:填写服务器配置

在开发->基本配置处启用服务器配置。更改配置

其中URL是开发者拿来接收微信消息和风波的插口URL。

Token可由开发者可以任意填写,用作生成签名(该Token会和插口URL中包含的Token进行比对,进而验证安全性)。

由开发者自动填写或随机生成,将用作消息体加揭秘秘钥。

点击递交

微信接单平台app_微信接单平台_微信接单平台在哪里

第二步:验证服务器地址的有效性

开发者递交信息后,微信服务器将发送GET恳求到填写的服务器地址URL上,GET恳求携带四个参数:

------微信加密签名,结合了开发者填写的token参数和恳求中的参数、nonce参数。

------时间戳

nonce------随机数

微信接单平台app_微信接单平台_微信接单平台在哪里

------随机字符串

开发者通过检验对恳求进行校准(下边有校准方法)。若确认这次GET恳求来自微信服务器,请原貌返回参数内容,则接入生效微信接单平台,成为开发者成功微信接单平台,否则接入失败。

    //获取接口Token值和UID
        $memberModel = D('Member');
        $userinfo = $memberModel -> getWechatInfo(WID);
        
        //获取用户的微信账号信息 
        $weixinLogic = D('Weixin','Logic');
        $weixin = $weixinLogic -> detail(WID);
        
        $weixin = new ThinkWechat($userinfo['token']);

在微信公共函数上面,检验:

if(IS_GET){
            $this->auth($token) || die('token信息错误');
            exit($_GET['echostr']);
        }
        
 /**
     * 对数据进行签名认证,确保是微信发送的数据
     * @param  string $token 微信开放平台设置的TOKEN
     * @return boolean       true-签名正确,false-签名错误
     */
    private function auth($token){
        /* 获取数据 */
        $data = array($_GET['timestamp'], $_GET['nonce'], $token);
        $sign = $_GET['signature'];
        
        /* 对数据进行字典排序 */
        sort($data, SORT_STRING);
        /* 生成签名 */
        $signature = sha1(implode($data));
        return $signature === $sign;
    }

注意:随后用户每次向公众号发送消息、或者形成自定义菜单点击风波时,开发者填写的服务器配置URL将得到微信服务器推送过来的消息和风波,之后开发者可以根据自身业务逻辑进行响应,比如回复消息等。

免责声明:部分文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性,如本站文章和转稿涉及版权等问题,请作者在及时联系本站,我们会尽快为您处理。

欢乐点

留言咨询

×