目录
微信公众平台开发入门教程(图文),公众入门教程
首页 php教程 php手册 微信公众平台开发入门教程(图文),公众入门教程

微信公众平台开发入门教程(图文),公众入门教程

Jun 13, 2016 am 08:40 AM
c++ 作者 入门 入门教程 关键字 图文 平台 开发 微信 背景

微信公众平台开发入门教程(图文),公众入门教程

 

关键字:微信公众平台开发入门

作者:C++研究室

 

 背景知识:微信公众平台的开发需要有一定的PHP基础知识,PHP是一种HTML内嵌式的语言,广泛用于网站开发。微信服务器和开发者的服务器间有两种数据传输方式,分别是XML和JSON。其中XML主要用在接受发送普通消息和事件推送中,而用户管理、创建自定义菜单和高级群发等则需要用到JOSN格式数据。

 

在这篇微信公众平台开发教程中,你可以跟着教程一起在整体上感性了解微信公众平台的开发框架,可以帮助你更好的去入手。

我们将使用微信公众账号西安校园创客空间作为讲解的例子,二维码见底部。

这个入门教程将引导你学会完成如下任务:

 

                                                     第一节

 

申请新浪云计算并创建平台应用

 

 

 

      第二节  申请虚拟主机及为微信平台搭建环境

         这里我使用的是云邦互联的虚拟空间为大家作以演示,首先,打开网站如下图:

               

 

          然后在右上角按照提示注册即可,选择使用1G的免费空间。

    2、开通空间之后打开控制面板,就可以看到主机信息了。

         

   3、接下来我们用 8uftp 登陆虚拟空间。

       

 

 

    4、登录之后,用 8uftp   将 index.php 文件上传到虚拟空间的根目录中的web文件夹下,如下:

       

      至此,你使用虚拟空间为微信公众平台搭建服务器就成功了,后续只要将实现相应功能的代码通过8uftp上传上去即可。

 

 

 

第三节 启用开发模式与接入服务器

微信公众平台开发模式

高级功能

微信公众平台地址:https://mp.weixin.qq.com

登录微信公众平台后台,在左侧列表中最下方,找到“ 基本配置 ”,点击进入

进入服务器配置填写框。

点击“修改配置”按钮,则出现下图。

此处的URL为上篇中介绍的云应用的域名,而Token在index.php中定义为weixin。EncodingAESKey则不用填,点击“随机生成”让自动生成一个,消息加解密方式选择“明文模式”,然后点击“提交”按钮。

在弹出的提示框中,点击“确定”

配置修改后如图所示,再点击“启用”按钮

询问“是否确定开启服务器配置”,点击“确定”

如果提示“token验证失败”,可以先重次几次,微信服务器有时候不稳定。:如果使用新浪SAE可能要求进行实名认证,请先上传身份证进行实名认证并通过审核后再试!

 

 

                   

 

 

                     如果还是失败,请先用微信调试器测试一下url和token是否正确。(直接在百度搜索 会有好多免费的哦)

第四节   接口的调用与常用功能的实现

             

   示例1:API调用之百度翻译

        申请百度翻译API接口

下面介绍如何使用百度翻译 API 制作拥有翻译功能的公众账号。

    1、首先,登陆申请成为百度开发者,申请链接地址为 http://developer.baidu.com/ 。申请成为开发者之后,登陆该网站,在管理控制台的下拉菜单中选择开发者服务管理,如下图所示。

   

  1. 我们通过调用百度翻译的API可以实现英文翻译中文,中文翻译英文,中文翻译日文,日文翻译中文。目前百度AIP支持这三种语言的翻译

  2. 首先进入百度翻译的网页,网站如下箭头所示

  3. 进入后点击“使用指南”

  4. 进入使用智能页面后,网下浏览页面,在页面中间部分,即可看到百度翻译的API接口

  5. 根据上面的接口,我们可以构建接口代码:

    http://openapi.baidu.com/public/2.0/bmt/translate?client_id=uA6zT1kh5O1UXvTrUuFjFHiK&q={$keyword}&from=auto&to=auto

    “9peNkh97N6B9GGj9zBke9tGQ”这一串为自己的百度密钥,在百度的应用中心单击基本信息可以看到

  6. 关键代码为:

    case "text";

    $tranurl="http://openapi.baidu.com/public/2.0/bmt/translate?client_id=uA6zT1kh5O1UXvTrUuFjFHiK&q={$keyword}&from=auto&to=auto";//百度翻译地址

                    $transtr=file_get_contents($tranurl);//读入文件

    $transon=json_decode($transtr);//json解析

    //print_r($transon);

    $contentStr = $transon->trans_result[0]->dst;//读取翻译内容

    break;

  7. 登录手机微信,最后实现的结果如下:

     所用代码如下:
<span> 1</span> <?<span>php
</span><span> 2</span> <span>//</span><span>6.2 百度翻译  C++研究室  CopyRight 2016 </span>
<span> 3</span> <span>define</span>("TOKEN", "weixin"<span>);
</span><span> 4</span> <span>$wechatObj</span> = <span>new</span><span> wechatCallbackapiTest();
</span><span> 5</span> <span>if</span> (!<span>isset</span>(<span>$_GET</span>['echostr'<span>])) {
</span><span> 6</span>     <span>$wechatObj</span>-><span>responseMsg();
</span><span> 7</span> }<span>else</span><span>{
</span><span> 8</span>     <span>$wechatObj</span>-><span>valid();
</span><span> 9</span> <span>}
</span><span>10</span> 
<span>11</span> <span>class</span><span> wechatCallbackapiTest
</span><span>12</span> <span>{
</span><span>13</span>     <span>public</span> <span>$fromUsername</span>=''<span>;
</span><span>14</span>     <span>public</span> <span>$toUsername</span>=''<span>;
</span><span>15</span>  <span>public</span> <span>function</span><span> valid()
</span><span>16</span> <span>    {
</span><span>17</span>         <span>$echoStr</span> = <span>$_GET</span>["echostr"<span>];
</span><span>18</span>         <span>if</span>(<span>$this</span>-><span>checkSignature()){
</span><span>19</span>             <span>echo</span> <span>$echoStr</span><span>;
</span><span>20</span>             <span>exit</span><span>;
</span><span>21</span> <span>        }
</span><span>22</span> <span>    }
</span><span>23</span> 
<span>24</span>     <span>private</span> <span>function</span><span> checkSignature()
</span><span>25</span> <span>    {
</span><span>26</span>         <span>$signature</span> = <span>$_GET</span>["signature"<span>];
</span><span>27</span>         <span>$timestamp</span> = <span>$_GET</span>["timestamp"<span>];
</span><span>28</span>         <span>$nonce</span> = <span>$_GET</span>["nonce"<span>];
</span><span>29</span>         <span>$token</span> =<span> TOKEN;
</span><span>30</span>         <span>$tmpArr</span> = <span>array</span>(<span>$token</span>, <span>$timestamp</span>, <span>$nonce</span><span>);
</span><span>31</span>         <span>sort</span>(<span>$tmpArr</span>,<span> SORT_STRING);
</span><span>32</span>         <span>$tmpStr</span> = <span>implode</span>(<span>$tmpArr</span><span>);
</span><span>33</span>         <span>$tmpStr</span> = <span>sha1</span>(<span>$tmpStr</span><span>);
</span><span>34</span> 
<span>35</span>         <span>if</span>(<span>$tmpStr</span> == <span>$signature</span><span>){
</span><span>36</span>             <span>return</span> <span>true</span><span>;
</span><span>37</span>         }<span>else</span><span>{
</span><span>38</span>             <span>return</span> <span>false</span><span>;
</span><span>39</span> <span>        }
</span><span>40</span> <span>    }
</span><span>41</span> 
<span>42</span>     <span>public</span> <span>function</span><span> responseMsg(){
</span><span>43</span>         <span>$postStr</span> = <span>$GLOBALS</span>["HTTP_RAW_POST_DATA"<span>];
</span><span>44</span>             <span>$postObj</span> = <span>simplexml_load_string</span>(<span>$postStr</span>, 'SimpleXMLElement',<span> LIBXML_NOCDATA);
</span><span>45</span>                 <span>$fromUsername</span> = <span>$postObj</span>-><span>FromUserName;
</span><span>46</span>                 <span>$toUsername</span> = <span>$postObj</span>-><span>ToUserName;
</span><span>47</span>                 <span>$type</span> = <span>$postObj</span>-><span>MsgType;
</span><span>48</span>                 <span>$event</span>=<span>$postObj</span>-><span>Event;
</span><span>49</span>                 <span>$Event_Key</span>=<span>$postObj</span>-><span>EventKey;
</span><span>50</span>                 <span>$mid</span>=<span>$postObj</span>-><span>MediaId;
</span><span>51</span>                 <span>$link</span>=<span>$postObj</span>-><span>Url;
</span><span>52</span>             
<span>53</span>                 <span>$latitude</span>  = <span>$postObj</span>-><span>Location_X;
</span><span>54</span>                 <span>$longitude</span> = <span>$postObj</span>-><span>Location_Y;
</span><span>55</span>                 <span>$keyword</span> = <span>trim</span>(<span>$postObj</span>-><span>Content);
</span><span>56</span>                 <span>$time</span> = <span>time</span><span>();
</span><span>57</span>                  <span>$textTpl</span> = "<span><xml>
</span><span>58</span> <span>                            <ToUserName><![CDATA[%s]]></ToUserName>
</span><span>59</span> <span>                            <FromUserName><![CDATA[%s]]></FromUserName>
</span><span>60</span> <span>                            <CreateTime>%s</CreateTime>
</span><span>61</span> <span>                            <MsgType><![CDATA[text]]></MsgType>
</span><span>62</span> <span>                            <Content><![CDATA[%s]]></Content>
</span><span>63</span>                             </xml>"<span>; 
</span><span>64</span>                             <span>if</span>(<span>$keyword</span>!=''<span>){
</span><span>65</span>                             <span>$id</span>="R90FXoW4OPtCbLkD9Aiaihz0"<span>;
</span><span>66</span> <span>$url</span>="http://openapi.baidu.com/public/2.0/bmt/translate?client_id=<span>$id</span>&q=<span>$keyword</span>&from=auto&to=auto"<span>;
</span><span>67</span> <span>$res</span>=<span>file_get_contents</span>(<span>$url</span><span>);
</span><span>68</span> <span>$res</span>=json_decode(<span>$res</span>,<span>true</span><span>);
</span><span>69</span> <span>$contentStr</span>=<span>$res</span>['trans_result'][0]['dst'<span>];
</span><span>70</span> }                    <span>$resultStr</span> = <span>sprintf</span>(<span>$textTpl</span>, <span>$fromUsername</span>, <span>$toUsername</span>, <span>$time</span>, <span>$contentStr</span><span>);
</span><span>71</span>                     <span>echo</span> <span>$resultStr</span><span>;
</span><span>72</span> <span>  }
</span><span>73</span> <span>}
</span><span>74</span> ?>
登录后复制

示例2:API调用之小黄鸡

1、注册simsimi 账号

URL: http://developer.simsimi.com/signUp

2、 激活账号

3、 获取API Key

4、 具体实现

调用小黄鸡API 实现

调用simsim($keyword) 函数处理,将其中的“Your API Key” 换成申请到的API Key。

  <span>//</span><span>小黄鸡   C++研究室   CopyRight 2016</span>
    <span>public</span> <span>function</span> simsim(<span>$keyword</span><span>){

        </span><span>$key</span>="41250a68-3cb5-43c8-9aa2-d7b3caf519b1"<span>;
        </span><span>$url_simsimi</span>="http://sandbox.api.simsimi.com/request.p?key=".<span>$key</span>."&lc=ch&ft=0.0&text=".<span>$keyword</span><span>;
        
        </span><span>$json</span>=<span>file_get_contents</span>(<span>$url_simsimi</span>);  <span>//</span><span> 把整个文件读入一个字符串中</span>

        <span>$result</span>=json_decode(<span>$json</span>,<span>true</span>);  <span>//</span><span> 对JSON 格式的字符串进行编码

        //$errorCode=$result['result'];  // 调试用</span>

        <span>$response</span>=<span>$result</span>['response'];  <span>//</span><span> 回复的消息</span>

        <span>if</span>(!<span>empty</span>(<span>$response</span><span>)){
            </span><span>return</span> <span>$response</span><span>;
        }</span><span>else</span><span>{
            </span><span>$ran</span>=<span>rand</span>(1,5<span>);
            </span><span>switch</span>(<span>$ran</span><span>){
                </span><span>case</span> 1:
                    <span>return</span> "小鸡鸡今天累了,明天再陪你聊天吧。"<span>;
                    </span><span>break</span><span>;
                </span><span>case</span> 2:
                    <span>return</span> "小鸡鸡睡觉喽~~"<span>;
                    </span><span>break</span><span>;
                </span><span>case</span> 3:
                    <span>return</span> "呼呼~~呼呼~~"<span>;
                    </span><span>break</span><span>;
                </span><span>case</span> 4:
                    <span>return</span> "你话好多啊,不跟你聊了"<span>;
                    </span><span>break</span><span>;
                </span><span>case</span> 5:
                    <span>return</span> "感谢您关注西安校园创客空间"."\n"."微信号:xaxymaker"."\n"<span>;
                    </span><span>break</span><span>;
                </span><span>default</span>:
                    <span>return</span> "感谢您关注西安校园创客空间"."\n"."微信号:xaxymaker"."\n"<span>;
                    </span><span>break</span><span>;
            }
        }
    }</span>
登录后复制

 

 

       同时,微信公众号还可以实现 天气查询 火车查询 快递查询 会员卡、优惠券、大转盘、微网站、3G相册之类的。微菜单,微网站,微会员,微团购,微调研,微相册,微推送,微统计,微支付,微客服,等等功能。

 

 以上便是简单的微信公众平台基本教程,如果你用心感悟了,感觉你有所收获了,一切始于实践,请按照教程入手,开启你的微信开发之旅吧!!  如果还有什么不懂的,请扫一扫公众号二维码关注,回复“代码”、“微信教程” ...   全部视频教程 代码资料 等着你!!!

         感谢你的阅读,请用心感悟!希望可以帮到初学的您!!分享也是一种快乐!!!请接力。。。

 

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
C#与C:历史,进化和未来前景 C#与C:历史,进化和未来前景 Apr 19, 2025 am 12:07 AM

C#和C 的历史与演变各有特色,未来前景也不同。1.C 由BjarneStroustrup在1983年发明,旨在将面向对象编程引入C语言,其演变历程包括多次标准化,如C 11引入auto关键字和lambda表达式,C 20引入概念和协程,未来将专注于性能和系统级编程。2.C#由微软在2000年发布,结合C 和Java的优点,其演变注重简洁性和生产力,如C#2.0引入泛型,C#5.0引入异步编程,未来将专注于开发者的生产力和云计算。

公司安全软件导致应用无法运行?如何排查和解决? 公司安全软件导致应用无法运行?如何排查和解决? Apr 19, 2025 pm 04:51 PM

公司安全软件导致部分应用无法正常运行的排查与解决方法许多公司为了保障内部网络安全,会部署安全软件。...

Golang和C:并发与原始速度 Golang和C:并发与原始速度 Apr 21, 2025 am 12:16 AM

Golang在并发性上优于C ,而C 在原始速度上优于Golang。1)Golang通过goroutine和channel实现高效并发,适合处理大量并发任务。2)C 通过编译器优化和标准库,提供接近硬件的高性能,适合需要极致优化的应用。

Golang vs.C:性能和速度比较 Golang vs.C:性能和速度比较 Apr 21, 2025 am 12:13 AM

Golang适合快速开发和并发场景,C 适用于需要极致性能和低级控制的场景。1)Golang通过垃圾回收和并发机制提升性能,适合高并发Web服务开发。2)C 通过手动内存管理和编译器优化达到极致性能,适用于嵌入式系统开发。

Python与C:学习曲线和易用性 Python与C:学习曲线和易用性 Apr 19, 2025 am 12:20 AM

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

C和XML:探索关系和支持 C和XML:探索关系和支持 Apr 21, 2025 am 12:02 AM

C 通过第三方库(如TinyXML、Pugixml、Xerces-C )与XML交互。1)使用库解析XML文件,将其转换为C 可处理的数据结构。2)生成XML时,将C 数据结构转换为XML格式。3)在实际应用中,XML常用于配置文件和数据交换,提升开发效率。

币圈最新消息APP排名推荐(2025权威发布) 币圈最新消息APP排名推荐(2025权威发布) Apr 21, 2025 pm 09:33 PM

最佳的加密货币交易和分析平台包括:1. OKX:全球交易量第一,支持多种交易,提供AI行情分析和链上数据监控。 2. 币安:全球最大交易所,提供深度行情和新币首发。 3. 芝麻开门:以现货交易和OTC通道着称,提供自动化交易策略。 4. CoinMarketCap:权威行情数据平台,覆盖20000 币种。 5. CoinGecko:以社区情绪分析见长,提供DeFi和NFT趋势监控。 6. 非小号:国内行情平台,提供A股与币市联动分析。 7. 链上财经:专注区块链新闻,每日更新深度报道。 8. 金色财经:24小

Python vs. C:了解关键差异 Python vs. C:了解关键差异 Apr 21, 2025 am 12:18 AM

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

See all articles