果果我是黎小芳 發表於 2019-11-6 09:21:00

微信公众号开发(一)——环境搭建

<p>一、 微信公众号开发环境的搭建</p>
<p>工欲善其事必先利其器,要进行微信公众号的开发离不开开发环境和开发工具。在微信公众号开发前要准备两样东西:</p>
<ol>
<li>微信公众号测试账号</li>
<li>调试代码的开发环境</li>
</ol>
<h3 id="blogTitle1">1.1、注册测试公众号</h3>
<p>  微信公众号分为服务号、订阅号、企业号,订阅号可以个人申请,服务号和企业号要有企业资质才可以。</p>
<p>  <img src="data:image/png;base64,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"></p>
<p>  我们所说的微信公众号开发指的是订阅号和服务号。</p>
<p>  关于订阅号和服务器的区别,官方是这样解释的</p>
<p align="left"><strong>  服务号</strong>:主要偏向于服务交互(功能类似12315,114,银行,提供绑定信息,服务交互),每月可群发4条消息;服务号<strong>适用人群:</strong>媒体、企业、政府或其他组织。</p>
<p align="left"><strong>  订阅号</strong>:主要偏向于为用户传达资讯,(功能类似报纸杂志,为用户提供新闻信息或娱乐趣事),每天可群发1条消息;订阅号<strong>适用人群</strong>:个人、媒体、企业、政府或其他组织。</p>
<p align="left">  个人订阅号有一些接口是没有权限的,也就是说个人订阅号无法调用一些高级的权限接口,下图就是一个我的个人订阅号所具备权限列表,如下图所示:</p>
<p align="left">  <img src="https://images2015.cnblogs.com/blog/289233/201601/289233-20160121173738406-1003032428.png"></p>
<p align="left">  而一些高级接口,如生成二维码、网页授权、自定义菜单、微信支付这样的接口权限个人订阅号是没有调用权限的,如上图红色框起来的那些接口,个人订阅号都无法调用。</p>
<p>  幸运的是,<strong>微信公众平台提供了测试公众账号</strong>,测试公众号的注册地址为:<strong>http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login</strong>,只需要到这个页面,点击登录,并用自己的微信客户端扫码,并授权登录,就可以获得属于自己的测试公众号。<strong>测试公众号具备几乎所有的接口</strong>,所以平时学习微信公众号开发时,就可以去注册一个测试公众号,然后使用这个测试公众号做开发就可以了。不废话了,还是先注册一个测试公众号吧</p>
<p>  访问http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login,注册一个测试公众号。</p>
<p>  注册测试公众号的步骤如下图所示:</p>
<p>  <img src="https://images2015.cnblogs.com/blog/289233/201601/289233-20160121174711500-1359584625.jpg"></p>
<p>&nbsp;</p>
<p>  <img src="https://images2015.cnblogs.com/blog/289233/201601/289233-20160121174850640-897379523.png"></p>
<p>  用微信扫描上述的二维码进行登录,登录成功后,就可以看到腾讯分配给我们的测试公众号的信息了,如下图所示:</p>
<p>  <img src="https://images2015.cnblogs.com/blog/289233/201601/289233-20160121175354672-1735605030.jpg"></p>
<p>  测试公众号的所拥有的接口权限如下:</p>
<p>  <img src="https://images2015.cnblogs.com/blog/289233/201601/289233-20160121175700515-1034757400.png"></p>
<p>  可以看到,测试公众号拥有大部分的接口调用权限,因此<strong>用测试公众号来学习微信开发是完全可以的</strong>。</p>
<h3>1.2 搭建微信公众号本地开发环境</h3>
<p>想要实现本地测试,那么需要实现外网能访问本地内网,即需要实现内网穿透,即我们可以将内网的服务器映射到外网给别人访问。</p>
<p>微信开发使用的内网映射工具,下面介绍两款,本章会以natapp作为工具介绍:</p>
<ol>
<li>natapp</li>
<li>花生壳</li>
</ol>
<p>natapp 内网穿透工具使用简介:</p>
<ol>
<li>
<p>首先在本站注册账号&nbsp;点击注册</p>
</li>
<li>
<p>登录后,点击左边 购买隧道,免费/付费均可<br data-filtered="filtered"><img src="https://cdn.natapp.cn/uploads/ueditor/php/upload/image/20170118/1484720646741386.png"></p>

</li>
<li>
<p>根据需要选择隧道协议,这里以web演示,购买隧道<br data-filtered="filtered"><img src="https://cdn.natapp.cn/uploads/ueditor/php/upload/image/20170118/1484720927733591.png"></p>

</li>
<li>
<p>本机建立web服务,如 nginx/apache/iis 等,默认80端口</p>

</li>

</ol>
<p>确保&nbsp;http://127.0.0.1&nbsp;可以访问,如</p>
<p><img src="https://cdn.natapp.cn/uploads/ueditor/php/upload/image/20160529/1464510319626619.jpeg"></p>
<p>5.在&nbsp;natapp.cn&nbsp;根据您的本机下载对应的客户端,比如我的本机是win10,64位,则下载Windows 64位的客户端</p>
<p><img src="https://cdn.natapp.cn/uploads/ueditor/php/upload/image/20160529/1464510369724565.jpeg"></p>
<p>6.下载之后,解压至任意目录,得到natapp.exe</p>
<p><img src="https://cdn.natapp.cn/uploads/ueditor/php/upload/image/20160529/1464511029401933.jpeg"></p>
<p>7.取得authtoken&nbsp;在网站后台,我的隧道处,可以看到刚才购买的隧道</p>
<p><img src="https://cdn.natapp.cn/uploads/ueditor/php/upload/image/20160529/1464512052420728.jpeg"></p>
<p>点击复制,即可得到 authtoken 这个authtoken便是您的隧道登录凭证.如这里得到的authtoken为9ab6b9040a624f40</p>
<p>&nbsp;</p>
<p>8.运行natapp</p>
<p>&nbsp;</p>
<p>natapp支持两种运行方式</p>
<p>&nbsp; &nbsp; a) config.ini方式 (推荐)<br data-filtered="filtered">&nbsp; &nbsp; &nbsp;&nbsp;根据操作系统下载不同的config.ini文件到刚才下载的natapp.exe同级目录&nbsp;详见<br data-filtered="filtered">&nbsp;&nbsp;&nbsp;&nbsp;将第7步得到的authtoken填进去 (其他地方都不填),然后保存&nbsp;<br data-filtered="filtered">&nbsp; &nbsp; &nbsp;<img src="https://cdn.natapp.cn/uploads/ueditor/php/upload/image/20170118/1484722444192504.png">&nbsp; &nbsp; &nbsp;&nbsp;</p>
<p>&nbsp; &nbsp; &nbsp;windows下,直接双击natapp.exe 即可.</p>
<p>&nbsp;</p>
<p>&nbsp; &nbsp; &nbsp;在Linux/Mac 下 需要先给执行权限</p>
<div>
<div id="highlighter_580164" class="syntaxhighlighteras3">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="as3 spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="as3 plain">chmod&nbsp;a+x&nbsp;natapp</code></div>

</div>

</td>

</tr>

</tbody>

</table>

</div>

</div>
<p>&nbsp; &nbsp; &nbsp;然后再运行<br data-filtered="filtered">&nbsp; &nbsp;</p>
<div>
<div id="highlighter_793323" class="syntaxhighlighteras3">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="as3 spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="as3 plain">./natapp</code></div>

</div>

</td>

</tr>

</tbody>

</table>

</div>

</div>
<p>&nbsp; &nbsp; &nbsp;<br data-filtered="filtered">&nbsp; &nbsp;&nbsp;&nbsp;b) cmd -authtoken= 参数方式运行.<br data-filtered="filtered">&nbsp; &nbsp;&nbsp;&nbsp;windows ,点击开始-&gt;运行-&gt;命令行提示符 后进入 natapp.exe的目录<br data-filtered="filtered">&nbsp;&nbsp;&nbsp;&nbsp;运行</p>
<div>
<div id="highlighter_335030" class="syntaxhighlighteras3">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="as3 spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="as3 plain">natapp&nbsp;-authtoken=9ab6b9040a624f40</code></div>

</div>

</td>

</tr>

</tbody>

</table>

</div>

</div>
<p>&nbsp; &nbsp; linux ,同样给予可执行权限之后,运行</p>
<p>&nbsp; &nbsp;&nbsp;</p>
<div>
<div id="highlighter_970714" class="syntaxhighlighteras3">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>

</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="as3 spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="as3 plain">./natapp&nbsp;-authtoken=9ab6b9040a624f40</code></div>

</div>

</td>

</tr>

</tbody>

</table>

</div>

</div>
<p>&nbsp;注意参数输入正确性,不要有多余的空格等!<br data-filtered="filtered"><br data-filtered="filtered">&nbsp;<br data-filtered="filtered">9.运行成功,都可以得到如下界面:</p>
<p><img src="https://cdn.natapp.cn/uploads/ueditor/php/upload/image/20170118/1484723077222282.png"><br data-filtered="filtered">Tunnel Status &nbsp;Online 代表链接成功<br data-filtered="filtered">Version &nbsp; &nbsp; &nbsp;当前客户端版本,如果有新版本,会有提示<br data-filtered="filtered">Forwarding &nbsp; &nbsp;当前穿透 网址 或者端口<br data-filtered="filtered">Web Interface &nbsp;是本地Web管理界面,可在隧道配置打开或关闭,仅用于web开发测试<br data-filtered="filtered">Total Connections 总连接数<br data-filtered="filtered">Avg Conn Time 0.00ms 这里不代表,不代表,不代表 延时,需要注意!<br data-filtered="filtered"><br data-filtered="filtered"></p>
<p>10.将natapp分配的网址(上图Forwarding ),鼠标选定然后复制下来(选定之后单击鼠标右键),在浏览器中访问,可以看到内网穿透成功了!</p>
<p><img src="https://cdn.natapp.cn/uploads/ueditor/php/upload/image/20170118/1484724146724048.png"><br data-filtered="filtered">该网址&nbsp; http://ywy9n8.natappfree.cc &nbsp;就是可以全球访问的网址,可以发给您的小伙伴试试 :)</p>
<p>到此微信开发的前置条件已经准备好了。</p><br><br>
来源:https://www.cnblogs.com/yhtboke/p/11803168.html
頁: [1]
查看完整版本: 微信公众号开发(一)——环境搭建