使用SAE作为云服务器设计和开发微信公众号
(一)准备工作
- 注册SAE
地址:http://sae.sina.com.cn/,注册并实名认证成功后,就可以开始创建云应用了。
由于我使用的是php作为后台语言,所以这里选择的php,版本如果不确定可以先选一个,后期可以随时修改,标准环境支持Git和SVN同步代码,域名自定义,可能会提示不能使用或重复,多试几个就好了。 - 进入已创建应用的管理界面
打开代码管理,创建新版本,默认版本为1,点击在线编辑可进入到项目文件的编辑。前面提到可以使用Git上传本地项目,我是使用Git客户端完成上传的,Git地址以及用户名和密码见上图。 - 添加与测试号对接的测试代码文件
index.php
<?php
/**
* wechat php test
*/
//define your token
define("TOKEN", "wechat");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
$wechatObj->responseMsg();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
//valid signature , option
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
public function responseMsg()
{
//get post data, May be due to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//extract post data
if (!empty($postStr)){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
if(!empty( $keyword ))
{
$msgType = "text";
$contentStr = "Welcome to wechat world!";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}else{
echo "Input something...";
}
}else {
echo "";
exit;
}
}
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
// header('content-type:text');
return true;
}else{
return false;
}
}
}
?>
此段代码主要实现了对微信服务器的验证响应以及自动回复固定信息的功能。右键改文件通过URL打开,复制地址栏待会用到,,。
- 注册测试号
地址: https://mp .weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
使用微信号登陆即可免费申请注册,测试号的好处在于具有比订阅号更高的权限和更多的接口,对于初学者来说可以有更多的体验。
进入到配置界面,可看到该测试号得appID和appsecret,在接口配置信息中URL栏填写刚才复制的url,Token值自定义,只需保证和测试代码中定义的相同即可。提交无误的话会提示配置成功。 - 自定义菜单
在创建接口中有讲解创建菜单的请求数据格式,在底部会有网页调试工具。
选择基础支持,appid和secret在上一步中提到过,检测问题,无误的话会返回真确结果。
选择自定义菜单,将刚获得的access_token填写好,在body栏填入想要创建的菜单代码,检查问题,没有问题的话就可以关注公众号测试一下啦!
扫码关注测试号
测试自动回复功能以及自定义的菜单
到此,准备工作就做好了、、。