关键字:微信公众平台开发入门
作者:贝创工作室
背景知识:微信公众平台的开发需要有一定的PHP基础知识,PHP是一种HTML内嵌式的语言,广泛用于网站开发。微信服务器和开发者的服务器间有两种数据传输方式,分别是XML和JSON。其中XML主要用在接受发送普通消息和事件推送中,而用户管理、创建自定义菜单和高级群发等则需要用到JOSN格式数据。
在这篇微信公众平台开发教程中,你可以跟着教程一起在整体上感性了解微信公众平台的开发框架,可以帮助你更好的去入手。
我们将使用微信公众账号西安校园创客空间作为讲解的例子,二维码见底部。
这个入门教程将引导你学会完成如下任务:
第一节
申请新浪云计算并创建平台应用
创建新浪云计算SAE应用引擎
申请新浪云账号
如果我们使用SAE新浪云计算平台作为服务器资源,并且申请PHP环境+MySQL数据库作为程序运行环境。
则申请地址为:
直接点击上述网址,可以看到右上角微博登录的链接。
点击进入之后,使用新浪微博账号进行登录
登录之后,按照提示注册个人信息即可。
创建新应用
回到首页,在菜单顶部选择 控制台 ,再选择 云应用SAE
进入SAE应用列表
点击下侧的创建新应用,这时会弹出提示, 禁止放置违法违规内容,点击继续创建,弹出如下窗口。
选择一个未使用的appid,如果老是已经被使用不知道该什么好,就填写你的QQ号或者手机号吧。
填写二级域名AppID、应用名称、验证码,开发语言选择PHP5.3,全部应用和框架下面选择第一个【PHP 空应用】。然后点击左下方的创建应用
应用创建成功。并自动跳转到应用列表中,可以看到已经有刚才创建的西安校园创客空间这个应用。
创建版本
点击刚才创建的应用名称,进入应用主页。
点击左侧的应用管理下面的代码管理,
在代码管理中,选择使用SVN托管的方式。
跳转到代码管理
点击右侧的“创建版本”
我创建的是520,但是版本号默认为1,输入后点击创建,会弹出安全登录,需要输入安全密码,如果不知道或者忘记了,就点里面的找回密码,重新设置一下就行了。
验证通过之后,如下所示
到这里,就成功创建了一个域名URL为 http://1.xaxymaker.applinzi.com/ 的应用了,记住你的这个URL,后面开发模式接入时将会用到。
上传代码
下述代码是一个微信接口文件,看不懂没有关系,你把代码拿去直接用就行了,后面你可能慢慢会明白!
<span style="color: #008080;"> 1</span> <span style="color: #000000;">php </span><span style="color: #008080;"> 2</span> <span style="color: #008000;">//</span><span style="color: #008000;">判断用户发送消息类型 贝创工作室 CopyRight 2016</span> <span style="color: #008080;"> 3</span> <span style="color: #008080;"> 4</span> <span style="color: #008080;"> 5</span> <span style="color: #008080;">define</span>("TOKEN", "weixin"<span style="color: #000000;">); </span><span style="color: #008080;"> 6</span> <span style="color: #008000;">//</span><span style="color: #008000;"> $conn=mysql_connect('localhost','job','G2yI2zFR'); // 使用数据表 a_news </span><span style="color: #008080;"> 7</span> <span style="color: #008000;">// mysql_select_db('sqljob',$conn); </span><span style="color: #008080;"> 8</span> <span style="color: #008000;">// mysql_query("SET NAMES 'UTF8'"); </span><span style="color: #008080;"> 9</span> <span style="color: #008000;">// mysql_query("SET CHARACTER SET UTF8"); </span><span style="color: #008080;">10</span> <span style="color: #008000;">// mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");</span> <span style="color: #008080;">11</span> <span style="color: #008080;">12</span> <span style="color: #800080;">$wechatObj</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> wechatCallbackapiTest(); </span><span style="color: #008080;">13</span> <span style="color: #0000ff;">if</span> (!<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$_GET</span>['echostr'<span style="color: #000000;">])) { </span><span style="color: #008080;">14</span> <span style="color: #008000;">//</span><span style="color: #008000;"> $wechatObj->responseMsg();</span> <span style="color: #008080;">15</span> <span style="color: #800080;">$wechatObj</span>-><span style="color: #000000;">responseMsg(); </span><span style="color: #008080;">16</span> <span style="color: #008000;">//</span><span style="color: #008000;"> $test->jianyan();</span> <span style="color: #008080;">17</span> }<span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #008080;">18</span> <span style="color: #800080;">$wechatObj</span>-><span style="color: #000000;">valid(); </span><span style="color: #008080;">19</span> <span style="color: #000000;">} </span><span style="color: #008080;">20</span> <span style="color: #008080;">21</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> wechatCallbackapiTest </span><span style="color: #008080;">22</span> <span style="color: #000000;">{ </span><span style="color: #008080;">23</span> <span style="color: #0000ff;">public</span> <span style="color: #800080;">$fromUsername</span>=''<span style="color: #000000;">; </span><span style="color: #008080;">24</span> <span style="color: #0000ff;">public</span> <span style="color: #800080;">$toUsername</span>=''<span style="color: #000000;">; </span><span style="color: #008080;">25</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> valid() </span><span style="color: #008080;">26</span> <span style="color: #000000;">{ </span><span style="color: #008080;">27</span> <span style="color: #800080;">$echoStr</span> = <span style="color: #800080;">$_GET</span>["echostr"<span style="color: #000000;">]; </span><span style="color: #008080;">28</span> <span style="color: #0000ff;">if</span>(<span style="color: #800080;">$this</span>-><span style="color: #000000;">checkSignature()){ </span><span style="color: #008080;">29</span> <span style="color: #0000ff;">echo</span> <span style="color: #800080;">$echoStr</span><span style="color: #000000;">; </span><span style="color: #008080;">30</span> <span style="color: #0000ff;">exit</span><span style="color: #000000;">; </span><span style="color: #008080;">31</span> <span style="color: #000000;">} </span><span style="color: #008080;">32</span> <span style="color: #000000;">} </span><span style="color: #008080;">33</span> <span style="color: #008080;">34</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> checkSignature() </span><span style="color: #008080;">35</span> <span style="color: #000000;">{ </span><span style="color: #008080;">36</span> <span style="color: #800080;">$signature</span> = <span style="color: #800080;">$_GET</span>["signature"<span style="color: #000000;">]; </span><span style="color: #008080;">37</span> <span style="color: #800080;">$timestamp</span> = <span style="color: #800080;">$_GET</span>["timestamp"<span style="color: #000000;">]; </span><span style="color: #008080;">38</span> <span style="color: #800080;">$nonce</span> = <span style="color: #800080;">$_GET</span>["nonce"<span style="color: #000000;">]; </span><span style="color: #008080;">39</span> <span style="color: #800080;">$token</span> =<span style="color: #000000;"> TOKEN; </span><span style="color: #008080;">40</span> <span style="color: #800080;">$tmpArr</span> = <span style="color: #0000ff;">array</span>(<span style="color: #800080;">$token</span>, <span style="color: #800080;">$timestamp</span>, <span style="color: #800080;">$nonce</span><span style="color: #000000;">); </span><span style="color: #008080;">41</span> <span style="color: #008080;">sort</span>(<span style="color: #800080;">$tmpArr</span>,<span style="color: #000000;"> SORT_STRING); </span><span style="color: #008080;">42</span> <span style="color: #800080;">$tmpStr</span> = <span style="color: #008080;">implode</span>(<span style="color: #800080;">$tmpArr</span><span style="color: #000000;">); </span><span style="color: #008080;">43</span> <span style="color: #800080;">$tmpStr</span> = <span style="color: #008080;">sha1</span>(<span style="color: #800080;">$tmpStr</span><span style="color: #000000;">); </span><span style="color: #008080;">44</span> <span style="color: #008080;">45</span> <span style="color: #0000ff;">if</span>(<span style="color: #800080;">$tmpStr</span> == <span style="color: #800080;">$signature</span><span style="color: #000000;">){ </span><span style="color: #008080;">46</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #000000;">; </span><span style="color: #008080;">47</span> }<span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #008080;">48</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">; </span><span style="color: #008080;">49</span> <span style="color: #000000;">} </span><span style="color: #008080;">50</span> <span style="color: #000000;">} </span><span style="color: #008080;">51</span> <span style="color: #008080;">52</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> responseMsg(){ </span><span style="color: #008080;">53</span> <span style="color: #800080;">$postStr</span> = <span style="color: #800080;">$GLOBALS</span>["HTTP_RAW_POST_DATA"<span style="color: #000000;">]; </span><span style="color: #008080;">54</span> <span style="color: #800080;">$postObj</span> = <span style="color: #008080;">simplexml_load_string</span>(<span style="color: #800080;">$postStr</span>, 'SimpleXMLElement',<span style="color: #000000;"> LIBXML_NOCDATA); </span><span style="color: #008080;">55</span> <span style="color: #800080;">$fromUsername</span> = <span style="color: #800080;">$postObj</span>-><span style="color: #000000;">FromUserName; </span><span style="color: #008080;">56</span> <span style="color: #800080;">$toUsername</span> = <span style="color: #800080;">$postObj</span>-><span style="color: #000000;">ToUserName; </span><span style="color: #008080;">57</span> <span style="color: #800080;">$type</span> = <span style="color: #800080;">$postObj</span>-><span style="color: #000000;">MsgType; </span><span style="color: #008080;">58</span> <span style="color: #800080;">$event</span>=<span style="color: #800080;">$postObj</span>-><span style="color: #000000;">Event; </span><span style="color: #008080;">59</span> <span style="color: #800080;">$Event_Key</span>=<span style="color: #800080;">$postObj</span>-><span style="color: #000000;">EventKey; </span><span style="color: #008080;">60</span> <span style="color: #800080;">$mid</span>=<span style="color: #800080;">$postObj</span>-><span style="color: #000000;">MediaId; </span><span style="color: #008080;">61</span> <span style="color: #800080;">$link</span>=<span style="color: #800080;">$postObj</span>-><span style="color: #000000;">Url; </span><span style="color: #008080;">62</span> <span style="color: #008080;">63</span> <span style="color: #800080;">$latitude</span> = <span style="color: #800080;">$postObj</span>-><span style="color: #000000;">Location_X; </span><span style="color: #008080;">64</span> <span style="color: #800080;">$longitude</span> = <span style="color: #800080;">$postObj</span>-><span style="color: #000000;">Location_Y; </span><span style="color: #008080;">65</span> <span style="color: #800080;">$keyword</span> = <span style="color: #008080;">trim</span>(<span style="color: #800080;">$postObj</span>-><span style="color: #000000;">Content); </span><span style="color: #008080;">66</span> <span style="color: #800080;">$time</span> = <span style="color: #008080;">time</span><span style="color: #000000;">(); </span><span style="color: #008080;">67</span> <span style="color: #800080;">$textTpl</span> = "<span style="color: #000000;"><xml> </xml></span><span style="color: #008080;">68</span> <span style="color: #000000;"><tousername></tousername> </span><span style="color: #008080;">69</span> <span style="color: #000000;"><fromusername></fromusername> </span><span style="color: #008080;">70</span> <span style="color: #000000;"><createtime>%s</createtime> </span><span style="color: #008080;">71</span> <span style="color: #000000;"><msgtype></msgtype> </span><span style="color: #008080;">72</span> <span style="color: #000000;"><content></content> </span><span style="color: #008080;">73</span> "<span style="color: #000000;">; </span><span style="color: #008080;">74</span> <span style="color: #0000ff;">if</span>(<span style="color: #800080;">$keyword</span>!=''){ <span style="color: #800080;">$contentStr</span>=<span style="color: #800080;">$keyword</span><span style="color: #000000;">;} </span><span style="color: #008080;">75</span> <span style="color: #0000ff;">elseif</span>(<span style="color: #800080;">$type</span>=="image"){<span style="color: #800080;">$contentStr</span>="您发送的是图片消息,消息的MediaId是".<span style="color: #800080;">$mid</span><span style="color: #000000;">;} </span><span style="color: #008080;">76</span> <span style="color: #0000ff;">elseif</span>(<span style="color: #800080;">$type</span>=="voice"){<span style="color: #800080;">$contentStr</span>="您发送的是语音消息,消息的MediaId是".<span style="color: #800080;">$mid</span><span style="color: #000000;">;} </span><span style="color: #008080;">77</span> <span style="color: #0000ff;">elseif</span>(<span style="color: #800080;">$type</span>=="video"){<span style="color: #800080;">$contentStr</span>="您发送的是视频消息,消息的MediaId是".<span style="color: #800080;">$mid</span><span style="color: #000000;">;} </span><span style="color: #008080;">78</span> <span style="color: #0000ff;">elseif</span>(<span style="color: #800080;">$type</span>=="location"){<span style="color: #800080;">$contentStr</span>="您发送的是地理位置消息,您的地理位置是:经度".<span style="color: #800080;">$latitude</span>."维度:".<span style="color: #800080;">$longitude</span><span style="color: #000000;">;} </span><span style="color: #008080;">79</span> <span style="color: #0000ff;">elseif</span>(<span style="color: #800080;">$type</span>=="link"){<span style="color: #800080;">$contentStr</span>="您发送的是链接消息,消息链接为".<span style="color: #800080;">$link</span><span style="color: #000000;">;} </span><span style="color: #008080;">80</span> <span style="color: #0000ff;">elseif</span>(<span style="color: #800080;">$type</span>=="event" && <span style="color: #800080;">$event</span>=="subscribe"){<span style="color: #800080;">$contentStr</span>="欢迎关注西安校园创客空间的微信公众账号,带你进入奇妙有趣的微信公众号开发之旅"<span style="color: #000000;">;} </span><span style="color: #008080;">81</span> <span style="color: #0000ff;">elseif</span>(<span style="color: #800080;">$type</span>="event" && <span style="color: #800080;">$event</span>=="unsubscribe"){<span style="color: #800080;">$contentStr</span>="期待您再次关注西安校园创客空间微信公众账号。"<span style="color: #000000;">;} </span><span style="color: #008080;">82</span> <span style="color: #0000ff;">else</span>{<span style="color: #0000ff;">echo</span> ""<span style="color: #000000;">;} </span><span style="color: #008080;">83</span> <span style="color: #008080;">84</span> <span style="color: #800080;">$resultStr</span> = <span style="color: #008080;">sprintf</span>(<span style="color: #800080;">$textTpl</span>, <span style="color: #800080;">$fromUsername</span>, <span style="color: #800080;">$toUsername</span>, <span style="color: #800080;">$time</span>, <span style="color: #800080;">$contentStr</span><span style="color: #000000;">); </span><span style="color: #008080;">85</span> <span style="color: #0000ff;">echo</span> <span style="color: #800080;">$resultStr</span><span style="color: #000000;">; </span><span style="color: #008080;">86</span> <span style="color: #008080;">87</span> <span style="color: #000000;">} </span><span style="color: #008080;">88</span> <span style="color: #008080;">89</span> <span style="color: #000000;">} </span><span style="color: #008080;">90</span> <span style="color: #008080;">91</span> <span style="color: #008080;">92</span> ?>
我们将使用上述代码与微信公众平台对接。
回到SAE的代码管理界面中。
再选择“上传代码包”,点击上传文件,选择刚才的index.zip文件,点击上传,上传成功后中间是一个绿色的横条,如下所示
如果没有绿色的横条,表示上传失败,需要重试。可以考虑在Chrome浏览器下重试一下。
点击编辑代码按钮,
有时候需要输入自己的安全密码,如果不记得了就点击“找回密码”。
安全验证成功后继续之前的操作。
我们可以看到index.php已经上传成功,双击可以查看编辑里面的代码
新浪云应用的创建就成功了。
充值(本步骤可选择性进行)
新浪云SAE实行的是配额免费+超额付费的方式,相关标准请查看SAE价格体系介绍。初期对于大部分用户来说免费配额已够用,如果您将来使用量比较大建议预先至少充值100元获得10000云豆,以免超额后应用被禁用而影响业务。
第二节 申请虚拟主机及为微信平台搭建环境
这里我使用的是云邦互联的虚拟空间为大家作以演示,首先,打开网站如下图:
然后在右上角按照提示注册即可,选择使用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/ 。申请成为开发者之后,登陆该网站,在管理控制台的下拉菜单中选择开发者服务管理,如下图所示。
我们通过调用百度翻译的API可以实现英文翻译中文,中文翻译英文,中文翻译日文,日文翻译中文。目前百度AIP支持这三种语言的翻译
首先进入百度翻译的网页,网站如下箭头所示
进入后点击“使用指南”
进入使用智能页面后,网下浏览页面,在页面中间部分,即可看到百度翻译的API接口
根据上面的接口,我们可以构建接口代码:
http://openapi.baidu.com/public/2.0/bmt/translate?client_id=uA6zT1kh5O1UXvTrUuFjFHiK&q={$keyword}&from=auto&to=auto
“9peNkh97N6B9GGj9zBke9tGQ”这一串为自己的百度密钥,在百度的应用中心单击基本信息可以看到
关键代码为:
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;
登录手机微信,最后实现的结果如下:
<span style="color: #008080;"> 1</span> <span style="color: #000000;">php </span><span style="color: #008080;"> 2</span> <span style="color: #008000;">//</span><span style="color: #008000;"> 百度翻译 贝创工作室 CopyRight 2016 </span> <span style="color: #008080;"> 3</span> <span style="color: #008080;">define</span>("TOKEN", "weixin"<span style="color: #000000;">); </span><span style="color: #008080;"> 4</span> <span style="color: #800080;">$wechatObj</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> wechatCallbackapiTest(); </span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">if</span> (!<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$_GET</span>['echostr'<span style="color: #000000;">])) { </span><span style="color: #008080;"> 6</span> <span style="color: #800080;">$wechatObj</span>-><span style="color: #000000;">responseMsg(); </span><span style="color: #008080;"> 7</span> }<span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #008080;"> 8</span> <span style="color: #800080;">$wechatObj</span>-><span style="color: #000000;">valid(); </span><span style="color: #008080;"> 9</span> <span style="color: #000000;">} </span><span style="color: #008080;">10</span> <span style="color: #008080;">11</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> wechatCallbackapiTest </span><span style="color: #008080;">12</span> <span style="color: #000000;">{ </span><span style="color: #008080;">13</span> <span style="color: #0000ff;">public</span> <span style="color: #800080;">$fromUsername</span>=''<span style="color: #000000;">; </span><span style="color: #008080;">14</span> <span style="color: #0000ff;">public</span> <span style="color: #800080;">$toUsername</span>=''<span style="color: #000000;">; </span><span style="color: #008080;">15</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> valid() </span><span style="color: #008080;">16</span> <span style="color: #000000;"> { </span><span style="color: #008080;">17</span> <span style="color: #800080;">$echoStr</span> = <span style="color: #800080;">$_GET</span>["echostr"<span style="color: #000000;">]; </span><span style="color: #008080;">18</span> <span style="color: #0000ff;">if</span>(<span style="color: #800080;">$this</span>-><span style="color: #000000;">checkSignature()){ </span><span style="color: #008080;">19</span> <span style="color: #0000ff;">echo</span> <span style="color: #800080;">$echoStr</span><span style="color: #000000;">; </span><span style="color: #008080;">20</span> <span style="color: #0000ff;">exit</span><span style="color: #000000;">; </span><span style="color: #008080;">21</span> <span style="color: #000000;"> } </span><span style="color: #008080;">22</span> <span style="color: #000000;"> } </span><span style="color: #008080;">23</span> <span style="color: #008080;">24</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> checkSignature() </span><span style="color: #008080;">25</span> <span style="color: #000000;"> { </span><span style="color: #008080;">26</span> <span style="color: #800080;">$signature</span> = <span style="color: #800080;">$_GET</span>["signature"<span style="color: #000000;">]; </span><span style="color: #008080;">27</span> <span style="color: #800080;">$timestamp</span> = <span style="color: #800080;">$_GET</span>["timestamp"<span style="color: #000000;">]; </span><span style="color: #008080;">28</span> <span style="color: #800080;">$nonce</span> = <span style="color: #800080;">$_GET</span>["nonce"<span style="color: #000000;">]; </span><span style="color: #008080;">29</span> <span style="color: #800080;">$token</span> =<span style="color: #000000;"> TOKEN; </span><span style="color: #008080;">30</span> <span style="color: #800080;">$tmpArr</span> = <span style="color: #0000ff;">array</span>(<span style="color: #800080;">$token</span>, <span style="color: #800080;">$timestamp</span>, <span style="color: #800080;">$nonce</span><span style="color: #000000;">); </span><span style="color: #008080;">31</span> <span style="color: #008080;">sort</span>(<span style="color: #800080;">$tmpArr</span>,<span style="color: #000000;"> SORT_STRING); </span><span style="color: #008080;">32</span> <span style="color: #800080;">$tmpStr</span> = <span style="color: #008080;">implode</span>(<span style="color: #800080;">$tmpArr</span><span style="color: #000000;">); </span><span style="color: #008080;">33</span> <span style="color: #800080;">$tmpStr</span> = <span style="color: #008080;">sha1</span>(<span style="color: #800080;">$tmpStr</span><span style="color: #000000;">); </span><span style="color: #008080;">34</span> <span style="color: #008080;">35</span> <span style="color: #0000ff;">if</span>(<span style="color: #800080;">$tmpStr</span> == <span style="color: #800080;">$signature</span><span style="color: #000000;">){ </span><span style="color: #008080;">36</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #000000;">; </span><span style="color: #008080;">37</span> }<span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #008080;">38</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">; </span><span style="color: #008080;">39</span> <span style="color: #000000;"> } </span><span style="color: #008080;">40</span> <span style="color: #000000;"> } </span><span style="color: #008080;">41</span> <span style="color: #008080;">42</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> responseMsg(){ </span><span style="color: #008080;">43</span> <span style="color: #800080;">$postStr</span> = <span style="color: #800080;">$GLOBALS</span>["HTTP_RAW_POST_DATA"<span style="color: #000000;">]; </span><span style="color: #008080;">44</span> <span style="color: #800080;">$postObj</span> = <span style="color: #008080;">simplexml_load_string</span>(<span style="color: #800080;">$postStr</span>, 'SimpleXMLElement',<span style="color: #000000;"> LIBXML_NOCDATA); </span><span style="color: #008080;">45</span> <span style="color: #800080;">$fromUsername</span> = <span style="color: #800080;">$postObj</span>-><span style="color: #000000;">FromUserName; </span><span style="color: #008080;">46</span> <span style="color: #800080;">$toUsername</span> = <span style="color: #800080;">$postObj</span>-><span style="color: #000000;">ToUserName; </span><span style="color: #008080;">47</span> <span style="color: #800080;">$type</span> = <span style="color: #800080;">$postObj</span>-><span style="color: #000000;">MsgType; </span><span style="color: #008080;">48</span> <span style="color: #800080;">$event</span>=<span style="color: #800080;">$postObj</span>-><span style="color: #000000;">Event; </span><span style="color: #008080;">49</span> <span style="color: #800080;">$Event_Key</span>=<span style="color: #800080;">$postObj</span>-><span style="color: #000000;">EventKey; </span><span style="color: #008080;">50</span> <span style="color: #800080;">$mid</span>=<span style="color: #800080;">$postObj</span>-><span style="color: #000000;">MediaId; </span><span style="color: #008080;">51</span> <span style="color: #800080;">$link</span>=<span style="color: #800080;">$postObj</span>-><span style="color: #000000;">Url; </span><span style="color: #008080;">52</span> <span style="color: #008080;">53</span> <span style="color: #800080;">$latitude</span> = <span style="color: #800080;">$postObj</span>-><span style="color: #000000;">Location_X; </span><span style="color: #008080;">54</span> <span style="color: #800080;">$longitude</span> = <span style="color: #800080;">$postObj</span>-><span style="color: #000000;">Location_Y; </span><span style="color: #008080;">55</span> <span style="color: #800080;">$keyword</span> = <span style="color: #008080;">trim</span>(<span style="color: #800080;">$postObj</span>-><span style="color: #000000;">Content); </span><span style="color: #008080;">56</span> <span style="color: #800080;">$time</span> = <span style="color: #008080;">time</span><span style="color: #000000;">(); </span><span style="color: #008080;">57</span> <span style="color: #800080;">$textTpl</span> = "<span style="color: #000000;"><xml> </xml></span><span style="color: #008080;">58</span> <span style="color: #000000;"> <tousername></tousername> </span><span style="color: #008080;">59</span> <span style="color: #000000;"> <fromusername></fromusername> </span><span style="color: #008080;">60</span> <span style="color: #000000;"> <createtime>%s</createtime> </span><span style="color: #008080;">61</span> <span style="color: #000000;"> <msgtype></msgtype> </span><span style="color: #008080;">62</span> <span style="color: #000000;"> <content></content> </span><span style="color: #008080;">63</span> "<span style="color: #000000;">; </span><span style="color: #008080;">64</span> <span style="color: #0000ff;">if</span>(<span style="color: #800080;">$keyword</span>!=''<span style="color: #000000;">){ </span><span style="color: #008080;">65</span> <span style="color: #800080;">$id</span>="R90FXoW4OPtCbLkD9Aiaihz0"<span style="color: #000000;">; </span><span style="color: #008080;">66</span> <span style="color: #800080;">$url</span>="http://openapi.baidu.com/public/2.0/bmt/translate?client_id=<span style="color: #800080;">$id</span>&q=<span style="color: #800080;">$keyword</span>&from=auto&to=auto"<span style="color: #000000;">; </span><span style="color: #008080;">67</span> <span style="color: #800080;">$res</span>=<span style="color: #008080;">file_get_contents</span>(<span style="color: #800080;">$url</span><span style="color: #000000;">); </span><span style="color: #008080;">68</span> <span style="color: #800080;">$res</span>=json_decode(<span style="color: #800080;">$res</span>,<span style="color: #0000ff;">true</span><span style="color: #000000;">); </span><span style="color: #008080;">69</span> <span style="color: #800080;">$contentStr</span>=<span style="color: #800080;">$res</span>['trans_result'][0]['dst'<span style="color: #000000;">]; </span><span style="color: #008080;">70</span> } <span style="color: #800080;">$resultStr</span> = <span style="color: #008080;">sprintf</span>(<span style="color: #800080;">$textTpl</span>, <span style="color: #800080;">$fromUsername</span>, <span style="color: #800080;">$toUsername</span>, <span style="color: #800080;">$time</span>, <span style="color: #800080;">$contentStr</span><span style="color: #000000;">); </span><span style="color: #008080;">71</span> <span style="color: #0000ff;">echo</span> <span style="color: #800080;">$resultStr</span><span style="color: #000000;">; </span><span style="color: #008080;">72</span> <span style="color: #000000;"> } </span><span style="color: #008080;">73</span> <span style="color: #000000;">} </span><span style="color: #008080;">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 style="color: #008000;">//</span><span style="color: #008000;">小黄鸡 贝创工作室 CopyRight 2016</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> simsim(<span style="color: #800080;">$keyword</span><span style="color: #000000;">){ </span><span style="color: #800080;">$key</span>="41250a68-3cb5-43c8-9aa2-d7b3caf519b1"<span style="color: #000000;">; </span><span style="color: #800080;">$url_simsimi</span>="http://sandbox.api.simsimi.com/request.p?key=".<span style="color: #800080;">$key</span>."&lc=ch&ft=0.0&text=".<span style="color: #800080;">$keyword</span><span style="color: #000000;">; </span><span style="color: #800080;">$json</span>=<span style="color: #008080;">file_get_contents</span>(<span style="color: #800080;">$url_simsimi</span>); <span style="color: #008000;">//</span><span style="color: #008000;"> 把整个文件读入一个字符串中</span> <span style="color: #800080;">$result</span>=json_decode(<span style="color: #800080;">$json</span>,<span style="color: #0000ff;">true</span>); <span style="color: #008000;">//</span><span style="color: #008000;"> 对JSON 格式的字符串进行编码 //$errorCode=$result['result']; // 调试用</span> <span style="color: #800080;">$response</span>=<span style="color: #800080;">$result</span>['response']; <span style="color: #008000;">//</span><span style="color: #008000;"> 回复的消息</span> <span style="color: #0000ff;">if</span>(!<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$response</span><span style="color: #000000;">)){ </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$response</span><span style="color: #000000;">; }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #800080;">$ran</span>=<span style="color: #008080;">rand</span>(1,5<span style="color: #000000;">); </span><span style="color: #0000ff;">switch</span>(<span style="color: #800080;">$ran</span><span style="color: #000000;">){ </span><span style="color: #0000ff;">case</span> 1: <span style="color: #0000ff;">return</span> "小鸡鸡今天累了,明天再陪你聊天吧。"<span style="color: #000000;">; </span><span style="color: #0000ff;">break</span><span style="color: #000000;">; </span><span style="color: #0000ff;">case</span> 2: <span style="color: #0000ff;">return</span> "小鸡鸡睡觉喽~~"<span style="color: #000000;">; </span><span style="color: #0000ff;">break</span><span style="color: #000000;">; </span><span style="color: #0000ff;">case</span> 3: <span style="color: #0000ff;">return</span> "呼呼~~呼呼~~"<span style="color: #000000;">; </span><span style="color: #0000ff;">break</span><span style="color: #000000;">; </span><span style="color: #0000ff;">case</span> 4: <span style="color: #0000ff;">return</span> "你话好多啊,不跟你聊了"<span style="color: #000000;">; </span><span style="color: #0000ff;">break</span><span style="color: #000000;">; </span><span style="color: #0000ff;">case</span> 5: <span style="color: #0000ff;">return</span> "感谢您关注西安校园创客空间"."\n"."微信号:xaxymaker"."\n"<span style="color: #000000;">; </span><span style="color: #0000ff;">break</span><span style="color: #000000;">; </span><span style="color: #0000ff;">default</span>: <span style="color: #0000ff;">return</span> "感谢您关注西安校园创客空间"."\n"."微信号:xaxymaker"."\n"<span style="color: #000000;">; </span><span style="color: #0000ff;">break</span><span style="color: #000000;">; } } }</span>
同时,微信公众号还可以实现 天气查询 火车查询 快递查询 会员卡、优惠券、大转盘、微网站、3G相册之类的。微菜单,微网站,微会员,微团购,微调研,微相册,微推送,微统计,微支付,微客服,等等功能。
以上便是简单的微信公众平台基本教程,如果你用心感悟了,感觉你有所收获了,一切始于实践,请按照教程入手,开启你的微信开发之旅吧!! 如果还有什么不懂的,请扫一扫公众号二维码关注,回复“代码”、“微信教程” ... 全部视频教程 代码资料 等着你!!!
感谢你的阅读,请用心感悟!希望可以帮到初学的您!!分享也是一种快乐!!!请接力。。。
版权声明:本博客内容版权为贝创工作室博客与博客园共有,若您需要引用、转载,需要注明来源及原文链接,如涉及大面积转载,请来信告知,获取授权。