看这篇文章之前请务必先看第一篇:微信公众号开发一:服务器资源配置)。
1,进入新浪sae里的代码管理,点击编辑代码
接下来是具体接入微信服务器:具体说明可以看官网API
2,验证消息来自微信服务器。在atom里编辑一个PHP文件wechat.php(名字随意),点击黄色尖头上传至sae里;wechat.php文件里的代码如下:
<?php
//创建一个字符串来存储token值
$token = "bigBear";
//接收微信发过来的各种参数
$timestamp = $_GET["timestamp"];//时间戳
$nonce = $_GET["nonce"];
//定义一个数组
$array = array($token,$timestamp,$nonce);
//将数组按照字符串排序
sort($array,SORT_STRING);
//将数组合并成字符串
$str = implode($array);
//对字符串进行加密
$sign = sha1($str);
//得到传过来的签名
$signature = $_GET["signature"];
//判断是否来自微信的请求
if ($sign == $signature) {
echo "$_GET['echostr']";
}
?>
3,登陆微信公众平台->基本配置->修改配置
4,修改配置后,点击提交,如果提示“token验证失败”,先多试几次,微信服务器偶尔不稳定。进行这个操作之前保证你的新浪SAE实名认证成功!!!token验证成功之后就可以调用微信的各种接口来实现你的业务逻辑了。
接下来就可以具体实现部分业务逻辑了:
在这里我需要用的三个文件(图中红色部分)
1,request.php里的代码主要封装了两个方法:httpGet()和httpPost()方法,根据后续发送请求的方式不同按需调用,具体代码:
<?php
function httpGet($url)
{
//创建一个会话
$curl = curl_init();
//为会话设置参数
//参数1: 要给哪个会话设置参数
//参数2: 要从PHP文件中获取URL地址
// 参数3: 请求哪个网址
curl_setopt($curl,CURLOPT_URL,$url);
// CURLOPT_RETURNTRANSFER将获取到的信息以文件流的方式返回
// true是一个boolean值 是否返回头信息
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
// 执行会话
$response = curl_exec($curl);
// 关闭会话
curl_close($curl);
//返回请求结果
return $response;
}
function httpPost($url,$data){
// /设置抓取的url
$curl = curl_init();
curl_setopt($curl,CURLOPT_POST,ture);
curl_setopt($curl,CURLOPT_URL,$url);
// CURLOPT_POSTFIELDS 传递一个作为HTTP “POST”操作的所有数据的字符串
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$res = curl_exec($curl);
return $res;
}
?>
2,wechat.php文件里主要是处理event类型事件的代码;(代码比较长,源码附百度云链接)
3,testWechat.php文件里主要是获取access_token、创建自定义菜单、个性化菜单上传临时文件等(代码比较长,源码附上面百度云链接)
说明:代码注释自己认为还差不多,所以这里对代码没有进行解读,代码中具体用到的微信接口请在官方文档中查看,日后可能也会对具体细节再写点文章吧,后续应该也会把大概逻辑和基本原理再写一篇文章
如有疑问或者想法,欢迎留言交流,共同学习。