微信公众号服务器配置及接入验证

目录

 

一、填写服务器配置

二、微信服务器验证


一、填写服务器配置

登录微信公众平台官网后,在公众平台官网的开发-基本设置页面,点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey,

其中URL是开发者用来接收微信消息和事件的接口URL(即自己服务器接收处理url)。Token可由开发者可以任意填写,用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。

EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。

二、微信服务器验证

开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下表所示:

填写好服务器之后,先不要提交,在服务器响应url处增加方法处理,以响应微信的验证

路由配置

//微信公众号事件接口
Route::any('wxNotify', 'ApiWeChatController@wxNotify');

控制器代码如下

   /**
     * 微信事件通知
     */
    public function wxNotify()
    {
        $model = new ApiOther();
        # 接收值方式为laravel框架封装方法 非框架可使用 $_GET
        $signature = request()->input('signature');
        $timestamp = request()->input('timestamp');
        $nonce = request()->input('nonce');
        $echostr = request()->input('echostr');
        echo $model->checkSignature($signature, $timestamp, $nonce, $echostr);
    }

模型层代码如下

   /**
     * 微信验证签名
     * @param $signature
     * @param $timestamp
     * @param $nonce
     * @param $echostr
     * @return bool
     */
    public function checkSignature($signature, $timestamp, $nonce, $echostr)
    {
        if (empty($signature) || empty($timestamp) || empty($nonce)) return false;

        $token = 'xxxxxxxxxxxx'; # 自己设定的Token
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode($tmpArr);
        $tmpStr = sha1($tmpStr);
        // 检验signature,若确认此次GET请求来自微信服务器,原样返回echostr参数内容,则接入生效,否则接入失败
        if ($tmpStr == $signature) {
            return $echostr;
        }
        return false;
    }

写好后,可提交微信配置,开启服务器配置

这样验证URL有效性成功后即接入生效,用户每次向公众号发送消息、或者产生自定义菜单、或产生微信支付订单等情况时,

开发者填写的服务器配置URL将得到微信服务器推送过来的消息和事件,开发者可以依据自身业务逻辑进行响应。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值