火雷一号 發表於 2019-5-2 15:37:00

微信公众号开发:服务器配置

<p><span style="color: rgba(45, 148, 222, 1); font-size: 18pt">前言</span>:</p>
<p>&nbsp; &nbsp; 如果让大家说出一款国内比较热门的社交软件,那无疑就是QQ和微信了,说到微信,无不例外的会想到微信公众号和小程序,所以现在它们已经是很多企业流量及品牌推广的主要途径,</p>
<p>&nbsp; &nbsp; 而作为一个开发者而言呢,如果想要开发打造一款属于自己或企业的公众号,就是需要对微信公众号平台API文档的熟悉。</p>
<p>&nbsp; &nbsp; 你可以花上半天的时间大致阅读一下文档微信公众号开发文档</p>
<p><span style="color: rgba(45, 148, 222, 1); font-size: 18pt">资源</span>:</p>
<p>当你大致了解了微信公众号开发文档之后,就可以开始入手了</p>
<p>&nbsp; &nbsp; 1.需要登录微信公众号平台https://mp.weixin.qq.com/</p>
<p>&nbsp; &nbsp; 2.注册公众号账号,选择类型,如果你是作为个人开发的话,可以选择订阅号,如果作为企业开发的话,也可以选择服务号、企业,在这里,为了测试使用,所以暂时使用个人的订阅号作为开发</p>
<p>&nbsp; &nbsp; 3.注册成功后,登录 选择成为开发者</p>
<p><span style="color: rgba(45, 148, 222, 1); font-size: 18pt">配置</span>:</p>
<p>&nbsp; &nbsp; 1.需要appID,appsecret来获得Token</p>
<p>&nbsp; &nbsp; 2.需要一个服务器,可以去买一个服务器或者通过内网映射的方式让外部网络通过域名可以访问本地IIS站点</p>
<p>&nbsp; &nbsp; 3.通过C# VS2017 并且结合微信公众平台SDK Senparc.Weixin for C#,所以你必须对Senparc进行独立的了解&nbsp;http://weixin.senparc.com/</p>
<p><span style="color: rgba(51, 102, 255, 1); font-size: 18pt"><span style="color: rgba(45, 148, 222, 1)">开始</span>:</span></p>
<p>1.登录公众号后:</p>
<p>&nbsp; &nbsp; 可以看到系统分配了一个AppID(应用ID)和<label class="frm_label">AppSecret(应用密钥)</label>&nbsp;</p>
<p><img src="https://img2018.cnblogs.com/blog/1576550/201905/1576550-20190502143613709-50588203.png" alt="" width="1113" height="441"></p>
<p>&nbsp; &nbsp; &nbsp;而里面需要我们手动填写服务器配置并启用开发者模式: URL地址,Token令牌,EncodingAESKey消息加密密钥</p>
<p><img src="https://img2018.cnblogs.com/blog/1576550/201905/1576550-20190502143738733-321931022.png" alt="" width="724" height="357"></p>
<p><img src="https://img2018.cnblogs.com/blog/1576550/201905/1576550-20190502143836677-409213537.png" alt="" width="720" height="325"></p>
<p>&nbsp; &nbsp; 这里的Token令牌可以自己创建,EncodingAESKey消息密码系统自动生成的,而URL呢,我们的资源服务器,资源服务器是给微信中转的服务器,微信将对这个接口(我们的站点)进行Get和POST的请求</p>
<p>具体的可以查看微信公众号开发文档</p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/1576550/201905/1576550-20190502144719094-1435975234.png" alt="" width="1261" height="309"></p>
<p>2.配置服务器地址</p>
<p>&nbsp;2.1引入安装Senparc.Weixin.MP库&nbsp;</p>
<p>&nbsp;2.2新建控制器WXController ,控制器包含一个GET请求,Get是验证使用</p>
<div class="cnblogs_code">
<pre>    <span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">class</span><span style="color: rgba(0, 0, 0, 1)"> WXController : Controller
    {
      </span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">static</span> <span style="color: rgba(0, 0, 255, 1)">readonly</span> <span style="color: rgba(0, 0, 255, 1)">string</span> Token = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">WXToken</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">与微信公众账号服务器配置的Token设置保持一致,区分大小写。</span>
      <span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">static</span> <span style="color: rgba(0, 0, 255, 1)">readonly</span> <span style="color: rgba(0, 0, 255, 1)">string</span> EncodingAESKey = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Q3vhz8zLwPYPbjz6S7JXiwSyAgW4vmInz6RzWWltEpk</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">与微信公众账号服务器配置的EncodingAESKey设置保持一致,区分大小写。</span>
      <span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">static</span> <span style="color: rgba(0, 0, 255, 1)">readonly</span> <span style="color: rgba(0, 0, 255, 1)">string</span> AppId = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">.........</span><span style="color: rgba(128, 0, 0, 1)">"</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">与微信公众账号后台的AppId设置保持一致,区分大小写。(这里的AppId填写自己的)

      </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> GET: WC/WX</span>
      <span style="color: rgba(0, 0, 255, 1)">public</span><span style="color: rgba(0, 0, 0, 1)"> ActionResult Index()
      {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> View();
      }

      
      
      </span><span style="color: rgba(0, 0, 255, 1)">public</span> Task&lt;ActionResult&gt; Get(<span style="color: rgba(0, 0, 255, 1)">string</span> signature, <span style="color: rgba(0, 0, 255, 1)">string</span> timestamp, <span style="color: rgba(0, 0, 255, 1)">string</span> nonce, <span style="color: rgba(0, 0, 255, 1)">string</span><span style="color: rgba(0, 0, 0, 1)"> echostr)
      {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span> Task.Factory.StartNew(() =&gt;<span style="color: rgba(0, 0, 0, 1)">
            {
                </span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (CheckSignature.Check(signature, timestamp, nonce, Token))
                {
                  </span><span style="color: rgba(0, 0, 255, 1)">return</span> echostr; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">返回随机字符串则表示验证通过</span>
<span style="color: rgba(0, 0, 0, 1)">                }
                </span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">
                {
                  </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">failed:</span><span style="color: rgba(128, 0, 0, 1)">"</span> + signature + <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">,</span><span style="color: rgba(128, 0, 0, 1)">"</span> + CheckSignature.GetSignature(timestamp, nonce, Token) + <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">。</span><span style="color: rgba(128, 0, 0, 1)">"</span> +
                           <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">当你打开URL访问当前地址的时候,说明该地址可以作为微信公众号服务器配置地址的URL,请注意保持Token一致。</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
                }
            }).ContinueWith</span>&lt;ActionResult&gt;(task =&gt;<span style="color: rgba(0, 0, 0, 1)"> Content(task.Result));
      }   
    }</span></pre>
</div>
<p>2.3 完成以上几个值的填写和配置后,发布站点,在公众号中修改服务器配置,提交之后,就可以成功配置服务器了</p>
<p><img src="https://img2018.cnblogs.com/blog/1576550/201905/1576550-20190502145551268-1923345129.png" alt=""></p>
<p>到了这里,我们已经完成了微信公众号基本的服务器配置了,在后续中,对微信的请求都是基于这个服务器地址配置对微信公众号调用请求。</p>
<p><span style="color: rgba(51, 102, 255, 1); font-size: 18pt"><span style="color: rgba(45, 148, 222, 1)">附加</span>:</span></p>
<p>如果你是通过测试公众号的话,也可以测试是否可以配置成功</p>
<p>访问测试公众号平台地址,登录授权成功后:</p>
<p>在接口配置中输入URL和Token值后,提交后,显示提交成功,这说明这个URL地址也是可以配置成功的</p>
<p><img src="https://img2018.cnblogs.com/blog/1576550/201905/1576550-20190502150425486-2376662.png" alt="" width="876" height="308"></p>
<p>&nbsp;&nbsp;<img src="https://img2018.cnblogs.com/blog/1576550/201905/1576550-20190502150616512-1215522879.png" alt="" width="844" height="354"></p>
<p>&nbsp;<span style="color: rgba(51, 102, 255, 1); font-size: 18pt"><span style="color: rgba(45, 148, 222, 1)">总结</span></span>:</p>
<p>1.在微信公众号开发中,只要我们对开发文档熟悉和在正确的配置的参数要求之后,就基本可以完成这个基本的服务器配置要求了,对后续微信公众号其他的开发也是一个美好的开端</p>
<p>2.在这里也利用了SDK Senparc,仅仅需要关心我们的业务,其他的内容已经帮我们处理好了,可以通过它进行更快速更高效的开发</p>
<p>3.最重要的一点,也是对大部分人合适的一点就是:熟悉之后就开始动手实践吧,只有自己动手实践一遍,才能让自己理解的更透彻,记得更牢固。</p>
<p>好记性不如烂笔头,撸起代码吧!!!燃烧我的代码吧!(这好像不太合适,O(∩_∩)O哈哈~)</p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    <div>作者:艾三元</div>
<div>出处:https://www.cnblogs.com/i3yuan/</div>
<div>关注:推荐扫码关注公众号</div>
<img src="https://images.cnblogs.com/cnblogs_com/i3yuan/1381525/o_210326143458wxcode.jpg" style="width: 105px">
    <div>本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 </div><br><br>
来源:https://www.cnblogs.com/i3yuan/p/10802410.html
頁: [1]
查看完整版本: 微信公众号开发:服务器配置