微信公众平台的服务器配置(php开发示例)

服务器配置的作用

微信公众平台的服务器配置启用后可以成为开发者,微信会将事件消息发送到开发者填写的url地址中,开发者可以依据自身业务逻辑进行响应,更好的开发管理微信公众平台。例如配置底部菜单,接收事件推送,客服消息等等。

在这里插入图片描述
如果开发者启用了服务器配置,微信公众平台的一些功能会受到影响,例如自动回复和自定义菜单会失效。

实现逻辑

开发者按照微信提示提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,参数详解:
signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串

开发着业务逻辑
1)将token、timestamp、nonce三个参数进行字典序排序
2)将三个参数字符串拼接成一个字符串进行sha1加密
3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

代码逻辑

//配置服务器
public function serverMenu(){
     if(!isset($_GET["echostr"])){
         $this->responseMsg();  //接收事件推送
     }else{
         $this->valid();   //配置微信服务器
     }
 }
//微信请求本地
private function valid(){
      $signature = $this->request->param('signature');
      $timestamp = $this->request->param('timestamp');
      $nonce = $this->request->param('nonce');

      $token = '925010178';   //开发者自己填写的token
      $tmpArr = array($token, $timestamp, $nonce);
      sort($tmpArr, SORT_STRING);
      $tmpStr = implode( $tmpArr );
      $tmpStr = sha1( $tmpStr );

      if( $tmpStr == $signature ){
          echo $_GET["echostr"];
      }else{
          return false;
      }
 }

附上连接

微信官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值