好久没有更新博客,最近课余时间看看微信的开发,本文主要介绍如何认证微信的token,开启微信开发之旅。
首先我是申请了一个新浪云的一个应用,进行开发(SAE),主要利用php进行验证。
1.首先是修改配置,需要填写url 和 Token ,token 可以随便填写只要和服务器端的自己设置的token对应起来就可以了。
2.验证微信端发来的信息,用php代码进行验证,我将代码封装了一下,两个文件
weixin.php //实现
index.php // 调用
wexin.php 代码如下
<?php
define("TOKEN", "yusw");
class WeiXinConfirm{
private function checkSignature()
{
//1.接收微信发过来的get请求过来的4个参数
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"]; //随机数
//2.加密
//1.将token,timestamp,once 三个参数进行字典序排序
$tmpArr = array(TOKEN,$timestamp,$nonce);
sort($tmpArr,SORT_STRING);
//2.将三个参数字符串拼接成一个字符串进行sha1加密
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
//3.将 加密后的字符串与$signature对比
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
public function valid()
{
if ($this->checkSignature()){
echo $_GET["echostr"];
}else{
echo "hello world";
}
}
}
?>
主要有4步:
1.接收微信发过来的get请求过来的4个参数
2.加密将token,timestamp,once 三个参数进行字典序排序
3.将三个参数字符串拼接成一个字符串进行sha1加密
4.将 加密后的字符串与$signature对比。
index.php 实现调用 ,代码如下
<?php
require("weixin.php");
$wx = new WeiXinConfirm();
$wx->valid();
?>
success!
本文
完!