没啥好写的了.也懒得写了.碰巧这几天在开发公众号.所以记录下开发公众号的相关流程.
首先在基础配置中设置白名单.也就是将服务器的ip地址写进去.很简单不多逼逼
然后配置服务器配置
这里url为路由.直接配置到方法就行.需要注意的是必须以http://或https://开头,分别支持80端口和443端口.
这里的token ,你可以自己随意定义一个.此token非彼token,用作生成签名.
这里的EncodingAESKey随机生成一个直接保存就好,用作消息体加解密密钥.
消息加解密方式默认就行.
然后接下来验证服务器来自微信服务器:
开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,GET请求携带参数如下所示:
参数 | 描述 |
---|---|
signature | 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 |
timestamp | 时间戳 |
nonce | 随机数 |
echostr | 随机字符串 |
开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:
1)将token、timestamp、nonce三个参数进行字典序排序 2)将三个参数字符串拼接成一个字符串进行sha1加密 3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
检验signature的PHP示例代码:
public function index()//验证服务器!
{
//获得参数 signature nonce token timestamp echostr
$nonce = $_GET['nonce'];
$token = 'test'; // 前期填写的token
$timestamp = $_GET['timestamp'];
$echostr = $_GET['echostr'];
$signature = $_GET['signature'];
//形成数组,然后按字典序排序
$array = array();
$array = array($nonce, $timestamp, $token);
sort($array);
//拼接成字符串,sha1加密 ,然后与signature进行校验
$str = sha1( implode( $array ) );
if( $str == $signature && $echostr ){
//第一次接入weixin api接口的时候
echo $echostr;
exit;
}
}
然后在公众号里面提交测试.因为微信官方的问题.可能存在失败,多次尝试就好.