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

来源:互联网 发布:免费苹果恢复软件 编辑:程序博客网 时间:2024/05/17 02:28

        我承接app微信公众号开发,如果有谁需要的话,可以惠顾我,谢谢.

QQ: 40678884

微信: szuzsq

主页: http://www.wxshaker.com

博客: http://blog.csdn.net/szuzsq

-------------------------------------------------------------------------------------------------------------------------------------



一.注册微信公众号

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

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

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

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




        具体参数说明,后面讲解,请注册JS接口安全域名不能带http://以及https://,也不能有二级目录.例如:http://szuzsq.tunnel.qydev.com/weixin这个是非法的.

        注:认证通过并且开通了微信支付的公众号,会有以下参数要设置.具体参数,在各自的篇幅中会详解.

1.token: weixin
2.服务器配置: http://szuzsq.tunnel.qydev.com/weixin/index.php(开发->基本配置->修改配置)
3.JS接口安全域名: szuzsq.tunnel.qydev.com(公众号设置->功能设置)********可以有3个********可以调用微信开放的JSSDK接口
4.业务域名: szuzsq.tunnel.qydev.com(公众号设置->功能设置)********可以有3个********输入密码时,不弹出"防欺诈盗号"的警告
5.网页授权域名: szuzsq.tunnel.qydev.com(公众号设置->功能设置)********只能有1个********网页授权获取用户基本信息
6.支付授权目录: szuzsq.tunnel.qydev.com/weixin/wxpay/example/(微信支付->开发配置)**********可以有3个********公众号支付发起支付请求的链接地址
7.测试授权目录: szuzsq.tunnel.qydev.com/weixin/wxpay_test/example/(微信支付->开发配置)**********只能有1个********公众号支付发起支付请求的链接地址.测试用
8.扫码支付回调URL: szuzsq.tunnel.qydev.com/weixin/wxpay/example/pay_response.php


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

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





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




三.公众号服务器配置

        微信公众号分编辑模式和开发模式.编辑模式即在公众号官方后台管理界面里,设置自动回复(例如,粉丝发送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.phpdefine("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;}}?>
1 0