一、你得有一个公众号。
- 注册公众号,填写相关信息,等待审核。
- 审核通过之后,登陆界面,进入开发模式,配置相关接口信息。
二、进入开发模式,配置接口信息。
- 需要填写服务器的URL;
- 填写验证信息的TOKEN,用于识别这个服务器是你的;
- 详细步骤:
- 此处URL应该要配置为可以验证消息的Token。即文档中说明的第二步(验证服务器地址的有效性)。
- 验证流程:
- (1)开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带四个参数。(signature/timestamp/nonce/echostr)
- (2)开发者通过检验signature对请求进行校验(下面有校验方式)。
- (3)若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
三、在SAE建立建立自己的服务器
- 加密/校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
三、在SAE建立建立自己的服务器
- 加密/校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
public function valid()
{
$echoStr = $_GET["echostr"];
//valid signature , option
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
private function checkSignature()
{
// you must define TOKEN by yourself
if (!defined("TOKEN")) {
throw new Exception('TOKEN is not defined!');
}
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
// use SORT_STRING rule
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}