php实现微信公众平台服务器地址(URL)配置验证

  在微信公众平台转为开发者模式之后,我们就需要在服务器配置中填写我们自己的服务器信息。需要的部分主要为服务器地址以及令牌(token)。但是这个服务器地址URL是需要校验的,在微信开发手册里面说明了如何进行校验。接下来我用php来实现怎么进行实现。你所需要做的就是

  1. 在你的服务器添加一个index.php来确保是这个php文件接收到微信服务器发送的GET数据请求
  2. 然后在下面代码中对token更改为你所填写的token
  3. 然后校验成功之后,把这个文件删除,编写新的index.php,用于与微信服务器交互,比如自动回复之类的,可以看我的其他博客。
<?php

//注释、代码维护:2ZW

// signature	微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
// timestamp	时间戳
// nonce	随机数
// echostr	随机字符串

// 开发者通过检验signature对请求进行校验(下面有校验方式)。
// 若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

//获得通过GET请求发送的微信服务器校验数据
$signature=$_GET["signature"];
$timestamp=$_GET["timestamp"];
$nonce=$_GET["nonce"];

// 1)将token、timestamp、nonce三个参数进行字典序排序 
// 2)将三个参数字符串拼接成一个字符串进行sha1加密 
// 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

//填写在微信公众平台服务器配置中填写的token
$token='你的微信公众平台服务器配置令牌(token)';

//第一部分:字典排序 

// 1)组合成一个数组
// 2)对数组元素进行升序排序
$tmpArr = array( $token,$timestamp,$nonce );
sort( $tmpArr );

// 第二部分:sha1加密

//把数组元素组成字符串
$tmpStr = implode( $tmpArr );

//sha1加密-安全哈希加密-Secure Hash Algorithm:不可逆
$tmpStr = sha1( $tmpStr );

//第三部分:到这里我们已经完成了校验的前两部分,排序以及加密,剩下的就是把加密完的本地字符串与get的微信服务器字符串进行比较

if($signature==$tmpStr){

    //如果校验正确,则原样返回echostr参数内容
    echo $_GET["echoStr"];
}
else{
    
    //反之不进行返回参数
    exit;
}
?>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值