微信公众号开发环境搭建
第一章 申请服务器资源
创建新浪云计算应用
申请账号
我们使用SAE新浪云计算平台作为服务器资源,并且申请PHP环境+MySQL数据库作为程序运行环境。
申请地址为:http://www.sinacloud.com/ucenter.html
点击进入之后,使用新浪微博账号登录;登录之后,按照提示注册个人信息即可。
创建新应用
回到首页,在菜单顶部选择 控制台 ,再选择 云应用SAE ;进入SAE应用列表,点击下侧的 创建应用,这时会弹出提示, 禁止放置违法违规内容,点击 继续创建;开发语言选择PHP,运行环境为 标准环境,语言版本 5.3,代码管理选择 SVN(新浪云支持Git、SVN、代码打包上传三种提交方式,具体请参考:https://www.sinacloud.com/doc/sae/tutorial/code-deploy.html),二级域名自己想一个名字,应用名称可以用系统默认填的,然后点击右方的 创建应用,应用创建成功。并自动跳转到应用列表中,可以看到已经有刚才创建的这个应用。
创建版本
点击刚才创建的应用名称,进入应用主页;点击左侧的 应用管理 下面的 代码管理,在代码管理中,选择使用SVN托管的方式。不要使用云空间和Git的方式,跳转到代码管理,点击右侧的“创建版本”,版本号默认为1,点击创建,有时会弹出安全登录,需要输入安全密码,如果不知道或者忘记了,就点里面的找回密码,重新设置一下。验证通过之后,到这里,就成功创建了一个域名URL为 http://***.sinaapp.com/ 的应用了,记住你的这个URL,后面将会用到。
上传代码
下述代码index.php是一个微信接口文件,看不懂没有关系,你可以暂时不用弄明白它的意思。
<?php
header('Content-type:text');
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {
$wechatObj->valid();
}else{
$wechatObj->responseMsg();
}
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
if($this->checkSignature()){
header('content-type:text');
echo $echoStr;
exit;
}
}
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
public function responseMsg()
{
$postStr = $GLOBALS["HTTP_RAW_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($keyword == "?" || $keyword == "?")
{
$msgType = "text";
$contentStr = date("Y-m-d H:i:s",time());
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}
}else{
echo "";
exit;
}
}
}
?>
我们将使用上述代码与微信公众平台对接。
回到SAE的代码管理界面中;再选择“上传代码包”,点击上传文件,选择index.zip(对index.php打包)文件,点击上传。
上传成功后中间是一个绿色的横条;如果没有绿色的横条,表示上传失败,需要重试(可以考虑在Chrome浏览器下重试一下)。
点击编辑代码按钮,有时候需要输入自己的安全密码,如果不记得了就点击“找回密码”,安全验证成功后继续之前的操作。
我们可以看到index.php已经上传成功,双击可以查看编辑里面的代码
新浪云应用的创建就成功了。
经测试,有的应用会自动出现一个叫index.html的文件,只需要我们自己上传的index.php和config.yaml文件就可以了。多余的要删除!!!
第二章 启用开发模式
微信公众平台开发模式
个人开发者使用测试号
个人学习开发建议使用测试号
微信测试号地址:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
登录后,在接口配置信息中填写刚才生成的URL地址和Token.
URL地址就是上面介绍的云应用的域名地址:http://1.***.applinzi.com/ 或者 http://***.applinzi.com/都可以;
Token在程序中固定为 weixin
填写好提交,顶部显示配置成功;如果提示“token验证失败”,多重次几次。
企业开发者并且有订阅号或者服务号
微信公众平台地址:https://mp.weixin.qq.com
登录微信公众平台后台,在左侧列表中最下方,找到“ 基本配置 ”,点击进入服务器配置填写框,点击“修改配置”按钮。
此处的URL为上面介绍的云应用的域名;而Token在index.php中定义为weixin;EncodingAESKey则不用填,点击“随机生成”让自动生成一个;消息加解密方式选择“明文模式”,然后点击“提交”按钮。
在弹出的提示框中,点击“确定”;配置修改后,再点击“启用”按钮;询问“是否确定开启服务器配置”,点击“确定”。如果提示“token验证失败”,可以先重次几次,微信服务器有时候不稳定。另外新浪SAE要求进行实名认证,请先上传身份证进行实名认证并通过审核后再试!
如果还是失败,请先用微信调试器测试一下url和token是否正确(点此查看详细测试方法)。
成功启用后,恭喜,你成功启用开发模式。
自动回复
在上面的例子中,实现了一个发送“?”就能回复当前时间的功能。至此,你的微信公众平台账号已经实现自动回复了。
如上操作正确的话,最基础的微信公众号开发搭建算是完成了,接下来更多丰富多彩的公众号开发技术还要等你去实现咯。
如有技术问题以及意见,还请各位看客多多指正分享。
技术参考链接:http://www.cnblogs.com/txw1958/
微信公众号开发环境搭建相关推荐
- 微信公众号开发环境搭建(一)
公网映射配置 需要将本地地址映射到公网,这里我们使用natapp 注意:本地端口必须是要填8080的(这个购买后也是可以再修改的),因为微信公众平台接口的调用仅支持80 客户端下载 1.配置confi ...
- 微信公众号本地环境搭建(解决微信接口需要公网地址,但是只有本地环境的问题)
微信公众号本地环境搭建(解决微信接口需要公网地址,但是只有本地环境的问题) 置顶2018年01月08日 17:22:13 阅读数:342 目前移动开发处于比较火的的趋势,很多的开发者都跃跃欲试,目前移 ...
- 微信公众号开发——项目搭建
一 前往微信公众平台(https://mp.weixin.qq.com/)获取开发权限和开发账号,公众号分为好几种,小程序,订阅号,服务号,企业号,个人只能用订阅号,权限比较少(api接口权限): 二 ...
- 【微信公众平台开发之一】微信公众平台开发环境搭建
微信公众平台二次开发的环境有3部分:微信公众账号.百度云平台.ide开发工具 当然我们也可以自己搭建服务器来代替百度平台,只要在服务器url那里改成自己对应的服务器url就行,我们后面会说到. 微信公 ...
- 微信公众平台开发环境搭建
- 微信公众号开发 - 配置表设计以及接入公众号接口开发
微信公众号开发文章目录 1.微信公众号开发 - 环境搭建 2.微信公众号开发 - 配置表设计以及接入公众号接口开发 3.微信公众号开发 - token获取(保证同一时间段内只请求一次) 4.微信公众号 ...
- 微信公众号开发 - 事件处理和回复消息
微信公众号开发文章目录 1.微信公众号开发 - 环境搭建 2.微信公众号开发 - 配置表设计以及接入公众号接口开发 3.微信公众号开发 - token获取(保证同一时间段内只请求一次) 4.微信公众号 ...
- 微信公众号开发 - token获取(保证同一时间段内只请求一次)
微信公众号开发文章目录 1.微信公众号开发 - 环境搭建 2.微信公众号开发 - 配置表设计以及接入公众号接口开发 3.微信公众号开发 - token获取(保证同一时间段内只请求一次) 4.微信公众号 ...
- 微信公众号开发 - 发送Emoji表情
微信公众号开发文章目录 1.微信公众号开发 - 环境搭建 2.微信公众号开发 - 配置表设计以及接入公众号接口开发 3.微信公众号开发 - token获取(保证同一时间段内只请求一次) 4.微信公众号 ...
最新文章
- virtualbox+vagrant学习-2(command cli)-27-vagrant connect命令
- python自动化测试开发_基于python的selenium2自动化测试从基础到实战(Python3、selenium2、自动化测试、web测试)...
- 循环矩阵与傅里叶相关的几点性质
- Spring 4.3 的新功能和增强
- 字符串拼接,什么时候会走StringBuilder?
- 国外大神一张图学会python-没有接触过编程Python难学吗?
- ubuntu 12.04 源码安装 Xen 4.2
- Opencv图像数据结构剖析
- 搭建内网文件共享服务器,如何搭建共享服务器实现办公室文件共享?
- 地图可视化开发技巧:geojson转svg后再转emf格式插入ppt实现编辑的解决方案
- 06.第七章、成本管理
- lodop直接打印服务器的文件,C-Lodop云打印服务器
- 【GCC】gcc警告选项汇总--编辑中|gcc编译选项
- HDU4489 动归解决
- 【移动端网页布局】移动端网页布局基础概念 ① ( 移动端浏览器 | 移动端屏幕分辨率 | 移动端网页调试方法 )
- 密码中对称非对称加密是什么意思?
- 12.1.2、Doris__基本使用、doris的基本命令、建表概念、语句、建表语法、建表方式(引擎存储规则)、导入数据的方式、支持的数据类型、rollup索引
- OpenGL实验2.3 三维模型的平移、缩放和旋转
- 【有利可图网】配色攻略-红色篇
- 关于redis缓存穿透浅析