- 登录微信公众平台:
点左下角的基本配置:
先修改URL,点击修改配置:
消息加解密方式选择 【兼容模式】
在提交新的url时,微信会对该url校验,只有校验通过才给提交成功。
通过校验的办法:
通俗来讲:在你点击提交时,微信服务器去你家串门【你家的地址:就是你填写的url,http: //wx.clbon.cn/yz406.php 】,微信服务器带了4样东西,一把瑞士军刀(多功能,signature)(用于被比对),一块手表(timestamp)(比对的原料头),一个随机数(nonce)(比对的原料尾),和一封介绍信(echostr)(介绍信只在第一次串门时携带)(用于回传),你(yz406.php)出来接待微信服务器,然后处理这4样东西。
微服在来之前,你和他就已经约定好了接头暗号(token)
你把暗号(token),手表(timestamp)和随机数(nonce)放到一个篮子里(做成array),排好序(sort)然后粘到一起(implode),加密(sha1),生成了一个新的军刀, 然后查看新的军刀和微服带来的瑞士军刀比对一下看是否一致,如果一致,就在介绍信上签个名,然后返给微服(echo 出来),微服得到签过名的介绍信后,就给你通过url的修改。
代码如下:
<?php
index();
function index(){
$signature = $_GET['signature'];
$timestamp = $_GET['timestamp'];
$nonce = $_GET['nonce'];
$echostr = $_GET['echostr'];
$token = 'wanfengwallet';
$tmpArr = array($token,$timestamp,$nonce);
//use SORT rule
sort($tmpArr,SORT_STRING);
$tmpArr = implode($tmpArr);
$tmpArr = sha1($tmpArr);
if($tmpArr == $signature && $echostr){
echo $echostr;
}
}
红框里的echostr 可要可不要。
url修改成功后,以后你和微服就算是认识了,这段代码就不用再要了。
开发技巧:
在测试微信公众号的时候,如果出错,浏览器是不报错的,这时候需要写个记录日志:
$up_dir = "./apiLog/";
if(!is_readable($up_dir))
{
is_dir($up_dir) or mkdir($up_dir,0700);
}
$file = $up_dir.time().rand(1000,9999).'_1.txt';
file_put_contents($file,$postStr,FILE_APPEND);
exit();
把你需要看的数据写到47行的$postStr 这个位置。
微信公众平台的url只支持80 port