微信公众号交互代码的一个问题

微信公众号交互代码的一个问题

往微信公众号发送关键词后可以调用自定义的接口进行处理,

wx微信设计了一套交互的协议,其中有一部分是传递的参数需要signature校验。wx微信本身提供了checkSignature函数。以前用过正常,但不知从什么时候起这部分代码总是返回false。

	private function checkSignature()
	{
		$signature = $_GET["signature"];
		$timestamp = $_GET["timestamp"];
		$nonce =$_GET["nonce"];
		$token =TOKEN;
		$tmpArr = array($token, $timestamp,$nonce);
		sort($tmpArr);
		$tmpStr = implode( $tmpArr);
		$tmpStr = sha1( $tmpStr);
		if($tmpStr == $signature){
			return true;
		}else{
			return false;
		}
	}

解决的方法有2个

1.简单粗暴,直接返回true,不进行校验,快速解决问题

2.找出原因解决它。

试了一下发现居然是sort这个函数,执行sort的结果和要求的不一致。

PHP sort() 函数用来对数组元素进行升序排序,也就是从低到高排序,语法如下:

bool sort ( array &$arr [, int $sort_mode = SORT_REGULAR ] )

参数说明:

  • arr 是要排序的数组。
  • sort_mode 表示排序模式,是一个可选参数。sort_mode 可以使用如下的值: <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值