微信公众号开发教程[002]-配置

一.注册微信公众号

微信公众号官方入口https://mp.weixin.qq.com注册公众号,注册过程中,类型选择可能是新手比较迷惑的地方.微信公众号分为订阅号和服务号(还有个企业号,似乎用的人不多),每种类型下面又分为公司,政府部门,社会组织,个人等不同性质.不同类型,不同性质的公众号,权限不同,申请资料也不同.

例如:公司(订阅号或服务号),你得提供工商注册号,银行对账号.注册成功后,也并不是所有权限都默认开通,需要手动开通.有些权限还得微信认证之后才能开通.关于这些细节,可参阅微信公众号官方文档https://mp.weixin.qq.com/wiki

我选择个人订阅号,不用那么多资料.个人订阅号不支持微信认证,功能也很少,只能当成熟悉游戏规则来玩玩.不过可以开通测试账号,测试账号拥有除了跟钱有关的(微信支付,微信门店等)之外的所有功能.等到后期我开始写微信支付等功能的文章时,再想办法弄一个服务号过来,或者热心的网有手头上有多余的也可能借来用用.

测试账号申请办法:微信公众号官方管理平台->开发->开发者工具->公众平台测试账号.其中需要做一些配置,如接口配置信息,JS接口安全域名等.我的如下:

具体参数说明,后面讲解,请注册JS接口安全域名不能带http://

二.微信公众号官方后台管理界面

可能大家在其他教程(别人以前写的)里看到的是如下的界面:

这些应该都是几年前写的,微信已经改了官方后台管理界面,不再是这样了,导致大家按这些教程来操作,怎么都找不到这些界面....最新的界面如下:

三.公众号服务器配置

微信公众号分编辑模式和开发模式.编辑模式即在公众号官方后台管理界面里,设置自动回复(例如,粉丝发送1,则回复新电影介绍;发送2,则回复优惠套餐等).设置自定义菜单.而开发模式则需要开发者有一个公网上面的网站.当粉丝发送消息时,微信的服务器,会送此消息包装成一定格式的xml,转发到开发者的网站上;同时,开发者向微信服务器回复特定格式的xml,然后微信服务器会将相应的内容转发到粉丝的微信客户端上..开发者还可以调用相应的api(前提是开通了相应的权限),完成某些高级功能.如:微信支付等.

设置公众号服务器步骤为公众号官方后台管理->开发->基本配置->修改配置.如下:

点击提交时,微信服务器会向你设置的URL网站(我的即为http://szuzsq.tunnel.qydev.com/weixin/index.php)发送一个get请求,因而,你得提前写好服务器响应代码,回复一条字符串,表示成功匹配微信服务器需要的服务器.怎么回复的逻辑请参阅官方文档说明.我将在后面将代码给出(其实就是微信文档里的例子代码,见六.响应微信服务器配置URL提交代码).

最后确保在公众号官方后台管理->开发->基本配置里已启用.如下:

开发模式启用后,某些编辑模式下的功能则无法使用.例如,微信官方后台管理->功能->自动回复(以及自定义菜单等),右边会显示一把销,表示未开启自动回怎么设置.如下:

四.建立公网服务器

很多其他教程,都是以百度云BAE,新浪云SAE作为服务器,当前这2个玩意不是免费的,而且需要实名认证.特别要指出的是新浪SAE如果没有认证,所有的返回响应,都会自动添加一些html标签,提醒用户去认证,就是因为这些标签,微信接收服务器配置提交时,不能成功..

教大家一种方式,将公网上的网站,映射到你本机电脑的服务器上(反向代理).比较有名的是花生壳,但这玩意同样收钱,免费的特不稳定..

ok,新利器隆重出场,ngrok!!!!!!!!!!!这是一个开源项目,干的活就是花生壳,将网络上访问公网上的网站(我的是http://szuzsq.tunnel.qydev.com/weixin/index.php)映射到本机电脑.国内有人架设了ngrok的服务,我们直接用.

http://www.qydev.com下载相应操作系统客户端(我的是window7),然后在解压目录下执行ngrok -config ngrok.cfg -subdomain szuzsq 80

szuzsq是我的子域名,这样,访问http://szuzsq.tunnel.qydev.com就是访问我本机电脑的服务器了.在本地,你可以轻松调试.我一般使用error_log("xxx", 3, "err.log");的方式打印日志.

五.搭建本地开发环境

我使用php作为开发语言(所有的例子都是基于php+ html5 + css3 + javascript),大家可选用自己熟悉的语言(只要是http服务器语言就行),并且会搭建环境.我的环境为:windows7
+ wampserver3 + eclipse..其中mysql默认编码以及排序均设置为utf8;php打开了xdebug调试;eclipse上集成web,javascript,php插件.如果有同样使用php又不会的配置的,可联系我...关于断点调试,我的eclipse可调试普通网站的php代码,浏览器可调试普通网站的javascript代码.但是,怎么在微信公众号开发时断点调试php和javascript,我还不会,有会的同学,请指教.

wampserver3(wampserver3.0.4_x86_apache2.4.18_mysql5.7.11_php5.6.19-7.0.4.exe)下载地址:
 https://sourceforge.net/projects/wampserver/files

eclipse3.7.2(eclipse-SDK-3.7.2-win32.zip)下载地址: http://www.eclipse.org/downloads/packages/eclipse-classic-372/indigosr2

wampserver3自运安装了apache,mysql和php.

要运行eclipse,请先安装java(我的是java6).然后解压.

然后从菜单Help->Install New Software->Add.进入Add Respository界面,在Name处填写Indigo,在Location处填写: http://download.eclipse.org/releases/indigo.如果上一级Install界面的Work with里面直接有Indigo - http://download.eclipse.org/releases/indigo,也可以直接选中这一项...

解析完之后,会有一项"Web,XML,Java EE and OSGi Enterprise Development",不用全部安装,我只安装了"JavaScript Development Tools", "PHP Development Tools(PDT) SDK Feature"和"Web Page Editor"

六.响应微信服务器配置URL提交代码

这些代码只需保证在微信官方管理后台,提交开发者服务器配置时,能响应就行了.公众号正常运行后,可删除.

<?php
//文件名: http://szuzsq.tunnel.qydev.com/weixin/index.php

define("TOKEN", "weixin");

$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();

class wechatCallbackapiTest {
	public function valid() {
		$echoStr = $_GET["echostr"];
		if($this->checkSignature()) {
			echo $echoStr;
			exit;
		}
	}
	private function checkSignature() {
		if(!defined("TOKEN"))
			throw new Exception('TOKEN is not defined!');

		$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;
		return false;
	}
}
?>
时间: 2024-10-12 11:38:24

微信公众号开发教程[002]-配置的相关文章

微信公众号开发教程详细完整第1篇

| 版权声明:本文为博主原创文章,未经博主允许不得转载. 从2014.12月份左右接触微信公众号开发,短短续续也有了一年多在这期间做了不知道多少个公众号,各种奇葩的功能都有涉猎.从一无所知的小白,到对整个微信公众号生态的理解,不知道经历了多少个日日夜夜,鬼知道我经历了什么.此次教程不谈什么微信公众号O2O(基本死光了)也不谈什么分答,大字(基本被微信封的差不多了),这次我们只是对微信公众号的二次开发者们,希望对你们有所帮助,也希望有更多的朋友一起探讨,讨论. 下面说一下这个教程的前言:首先此次教

微信公众号开发教程[003]-消息管理-接收消息

当微信用户向公众号发送消息时,微信服务器会向公众号配置的服务器URL地址发送请求,并将相关内容包装成一定格式的xml发送到这个服务器;响应时,这个服务器只要回复特定格式的xml字符串给微信服务器,微信服务器即可向微信用户的客户端转发这条回复消息.(假设公众号开发模式已开启,以后的教程,如果没有特别说明,都是如此).如下图: 例如,文本消息的xml结构如下: <xml> <ToUserName><![CDATA[toUser]]></ToUserName> &

微信公众号开发教程

开发和调试之殇 微信公众号的开发,说简单也简单,说麻烦也麻烦,麻烦的不是开发过程,而是搭建开发环境的过程.只是俗话说得好,磨刀不误砍柴工,我们有必要花点时间来研究下怎样攻破微信公众号的开发环.说白了,公众号的开发就是基于HTML/CSS/JS的移动端Web App的开发.但微信公众号和普通的移动Web App开发还略有不同,由于非常多情况下我们会调用公众号的接口.而仅仅要涉及微信接口的请求,都必须通过微信内置的浏览器来訪问,假设我们想把请求放到PC桌面浏览器上执行调试.就会跳转到一个笑脸,提醒你

微信公众号开发教程[005]-消息管理-消息加解密

一.配置公众号消息加解密方式 在公众号官方管理后台->开发->基本配置->修改配置上有3种方式,如下: 其中,EncodingAESKey可以随机生成. 加解密方式说明: 1).明文模式:微信服务器向公众号服务器(即我们要处理的http://szuzsq.tunnel.qydev.com/weixin/index.php)发送的xml结构是原始的,没有加密.如下: <xml> <ToUserName><![CDATA[gh_733c42e0aee9]]>

微信公众号开发教程 微信小程序

PHP微信公众平台开发高级篇 http://www.imooc.com/u/197650/courses?sort=publish 微信小程序教程 .链接:http://pan.baidu.com/s/1slmAwDf 密码:ciry

微信公众号开发教程[006]-PHP使用CURL详解

往后的编章,开始涉及微信公众号的api了,php中访问站点有很多方式,例如file_get_contents也可以get,post站点: <?php $formdata = array('sParam1' => 'test1', 'sParam2' => 101, 'isAuto' => 1); $data = http_build_query($formdata); $options = array('http' => array('method' => 'POST'

微信公众号开发系列教程一(调试环境部署)

原文:微信公众号开发系列教程一(调试环境部署) 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) 微信公众号火了好一阵子了,笔者算是比较早接触微信公众号开发的了,大概做了一年半了,从最开始的到处网上找demo到现在也开发一些公众号.园子里关于微信开发的教程已经数不胜数了,我也准备来凑凑热闹.一是梳理下这段时间开发的经验,二是希望能帮到想做微信开发的小伙伴们,希望大大神们吐槽的时候悠着点,

C#微信公众号开发系列教程二(新手接入指南)

http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可直接跳过,也欢迎大神吐槽. 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流程是这样的,用户发送消息到微信服务器,微

微信公众号开发系列教程一(调试环境部署续:vs远程调试)

原文:微信公众号开发系列教程一(调试环境部署续:vs远程调试) 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) 前几天决定写个微信公众平台开发系列,在发布第一篇博文后,收到了很多园友的反馈和建议,在这里感谢大家的支持,我会坚持写完这个系列,希望能帮助更多的小伙伴.特别要感谢下@ZIP,是他的一个提醒才有了这篇博文.也希望更多的小伙伴能把你的想法反馈给我. 上一篇中主要介绍的是使用花生壳