php 实名验证失败,【微信开发】为什么TOKEN一直验证失败呢?

我是用的SAE新浪云来搞的,也进行了实名认证,但是就是token验证不通过,眼睛都看花了,麻烦能人帮忙找找错~谢谢!

header('content-type:text/html;charset=utf-8');

//定义常量TOKEN,用来存储token

define("TOKEN","weixin");

//封装验证逻辑

function checkSignature(){

//获取微信服务器发送的GET请求,得到四个参数

$signature = $_GET['signature'];

$timestamp = $_GET['timestamp'];

$nonce = $_GET['nonce'];

//定义数组,存储三个参数

$tmpArr = array(TOKEN,$nonce,$timestamp);

//对数组进行排序

sort($tmpArr,SORT_STRING);

//转换为字符串

$tempStr = implode($tmpArr);

//进行sha1加密

$tempStr = sha1($tempStr);

if($tempStr == $signature){

return true;

}else{

return false;

}

}

//判断是否验证成功

if(checkSignature()){

if($echostr){

$echostr = $_GET['echostr'];

echo $echostr;

exit();

}

}

//获取微信服务器发送的POST数据

$postData = $HTTP_RAW_POST_DATA;

if(!$postData){

echo "error";

exit();

}

//解析获得的数据

$object = simplexml_load_string($postData,"SimpleXMLElement",LIBXML_NOCDATA);

$ToUserName = $object -> ToUserName;

$FromUserName = $object -> FromUserName;

$MsgType = $object -> MsgType;

//根据不同类型的消息做出不同的回复

switch($MsgType){

case "text":

$Content = $object -> Content;

$respXml = "

&s

";

$result = sprintf($respXml,$FromUserName,$ToUserName,time(),$Content);

echo $result;

break;

case "image":

$MediaId = $object -> MediaId;

$respXml = "

%s

";

$result = sprintf($respXml,$FromUserName,$ToUserName,time(),$MediaId);

echo $result;

break;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值