微信公众平台开发最佳实践第2版.html.pdf

上传人:紫竹语嫣 文档编号:5518777 上传时间:2020-05-28 格式:PDF 页数:385 大小:55.86MB
返回 下载 相关 举报
微信公众平台开发最佳实践第2版.html.pdf_第1页
第1页 / 共385页
微信公众平台开发最佳实践第2版.html.pdf_第2页
第2页 / 共385页
微信公众平台开发最佳实践第2版.html.pdf_第3页
第3页 / 共385页
微信公众平台开发最佳实践第2版.html.pdf_第4页
第4页 / 共385页
微信公众平台开发最佳实践第2版.html.pdf_第5页
第5页 / 共385页
点击查看更多>>
资源描述

《微信公众平台开发最佳实践第2版.html.pdf》由会员分享,可在线阅读,更多相关《微信公众平台开发最佳实践第2版.html.pdf(385页珍藏版)》请在三一文库上搜索。

1、前言 出版说明 自从方倍工作室在博客园推出微信公众平台开发系列教程后,受到广大微信开发人员及爱好者的热情关注,相关文章的日访问量高达2万人次,而微信公众平台开发入门教程的阅读量超过50万,博 客访问量总计超过500万,成为微信公众平台开发更新最快,传播最广、受众最多、资料最全的博客,很多博文被许多有影响力的网站转载,并被各大搜索引擎收录且排名靠前,这些是我们始料未及的。 然而更让人高兴的是,很多开发者通过学习我们的教程掌握了微信公众平台开发技术,并且通过微信开发赚到了钱。2013年10月17日,我们在QQ空间发布了新版微信公众平台开发入门教程链接 后,网友“我叫不熬夜?”在空间中回复,他之前通

2、过学习我们的微信开发教程赚到了2000元,而他目前还只是一名学生。这条回复记录至今还保存在方倍工作室的QQ空间中,给了我们不断前进的动 力。 为了推出更好、更有价值的作品,我们整合已有的教程资源,并从2013年到2014年的几百个开发案例中挑选出最受欢迎的功能应用,编写了本书。书中全面介绍微信公众平台(包括微信支付在内)的 所有接口及使用方法,并且辅以30多个功能应用案例及技巧,同时在分析过程中融合相关知识与技术,力求使读者不但“知其然”,而且“知其所以然”,以期为读者奉献一本含金量高的书籍。 读者对象 本书适合以下人群: 想了解移动互联网及微信公众平台发展的行业从业人员。 想了解微信公众平台

3、产品使用方法、技巧及效果评估的微信营销人员。 想提高会员活跃度、提高指标转化率、推进品牌推广的公众平台运营人员。 想学习微信公众平台开发的技术人员。 想使用微信公众平台兼职开发、创业等渴望更成功的人员。 想搭建企业内部强大及实用的微信公众平台的开发团队。 阅读指南 本书分为10章。 第1章简要介绍微信及其三大平台:微信公众平台、微信开放平台和微信智能开放平台,重点介绍微信公众平台的注册方法及各项功能。 第2章介绍申请新浪SAE作为免费服务器资源的方法,同时介绍如何配置微信公众平台的开发者中心以及启用过程中常见问题的解决方法,最后介绍如何使用微信调试器及接口调试工具进行开发调试。 第3章介绍微信

4、公众平台基础接口的三个部分,包括接收用户发送的六种消息、以六种方式发送被动响应消息、接收关注及取消关注的事件推送消息。所有消息类型都给出了PHP语言的实现方法。这些 消息类型是微信公众平台与用户进行交互的基础功能。 第4章介绍自定义菜单与高级接口的九大功能。这些功能都需要额外向微信公众平台申请权限。它使微信交互不再局限于消息交互,而是能达到更广、更深、更有想象力的层次。基于这些接口的功能也 将是今后微信开发的主要趋势,本书对这些功能都给出了PHP的实现代码。 第5章详细介绍微信支付的申请流程及功能,并且对微信支付中的两种主要支付方式的实现原理进行深入剖析,另外还讲解商户功能的其他相关接口的内容

5、。 第6章详细介绍微信小店的搭建方法及二次开发的方法,更进一步丰富和完善微信小店的功能。 第7章介绍八个生活类应用的开发。书中对这些应用从接口申请,数据获取直到开发实现,案例截图,都进行了详细描述。最后介绍了如何将这些功能进行整合。读者掌握这些应用的开发以后,可以丰 富自己公众账号的功能。 第8章介绍八个娱乐类应用的开发。这些应用都是非常受用户欢迎的,读者学习完后可以快速移植到自己的微信公众平台,提高粉丝存在的价值。 第9章介绍企业最常用功能的开发,其中包括部分高级接口在企业应用的实现。这些功能为企业开发提供了方向及技术指导。 第10章介绍微信开发有关的其他实用技巧以及微信JS接口。这些功能可

6、以为公众账号用户带来更有趣的体验。 本书程序案例采用广泛流行的PHP、MySQL、XML、CSS、JavaScript、HTML5等程序语言及数据库实现,所有案例均在书中给出了核心实现代码并做了详细讲解。初学者可以在了解PHP和MySQL语法 之后,从头至尾学习,对于其中难以理解的部分可以查阅相关资料。对于企业应用类的开发还需要具有一定的JavaScript、CSS等语言基础。有经验的微信公众平台开发人员可以根据自己的需要直接切入相应 章节,其他从业人员则可以选择自己感兴趣的内容阅读。 由于作者水平及能力有限,加之时间仓促,书中难免出现错误和不妥之处,对于一些依赖第三方功能的实现也可能由于外部

7、原因难以保证可以永久使用,恳请读者批评指正,并欢迎探讨,一并感谢! 源码及勘误说明 本书的源代码可以从华章网站本书页面下载,网址为:http:/ 勘误说明及源码更新可以从方倍工作室的微信公众账号(账号:PondBayStudio)下载,欢迎关注并索取更新。此外,我们也会经常发布微信最新动态及技术信息。 致谢 首先感谢“微信之父”张小龙先生及微信团队,是他们创造了微信这一经典传世之作。 感谢机械工业出版社华章公司王彬编辑的支持,促成了这本书的改版。 感谢我最亲爱的家人在背后的默默支持与付出。 本书成书过程中,也得到了诸多同行的支持与鼓励,在此一并致谢。 谨以此书献给所有热爱移动互联网和微信及微信

8、公众平台的人们。 方倍 2015年1月于深圳 第1章 微信公众平台介绍 微信自推出后,便如星火燎原之势发展,截至2014年7月,微信用户数已近8亿,月活跃用户接近4亿,公众账号达580万个,每日新增数为1.5万,是亚洲地区用户群体最大的移动端即时通信软件,同 时也被公认为目前唯一拿到移动互联网门票的应用。 本章主要介绍微信公众平台的注册及使用。 1.1 微信及其三大平台 微信(英文名:WeChat)是腾讯公司于2011年年初推出的一款可以发送文字、表情、图片、语音、视频、位置、链接,并支持语音实时对讲的手机聊天软件。用户可以通过“添加QQ好友”、“添 加手机联系人”、“摇一摇”、“附近的人”、

9、“一起按”、“搜号码”、“查找公众账号”、“扫描二维码”等多种方式添加好友或关注微信公众账号,也可以将内容发送给好友以及分享到朋友圈。同 时,微信还提供“微信支付”、“理财通”、“微信红包”、“嘀嘀打车”、“表情”、“游戏”等贴近生活的功能。 微信由腾讯广州研发中心产品团队开发,该团队经理张小龙被称为“微信之父”,公司总裁马化腾确定该产品的名称为“微信”。 微信的官方网站是:http:/ 图1-1 微信图标 2012年8月23日,腾讯公司推出微信公众平台,其宣传口号是“再小的个体,也有自己的品牌”。微信公众平台是微信公众账号所有者(政府、媒体、企业、组织或个人等)进行品牌推广、减少运营 成本、

10、提高影响力、与用户进行互动交流及提供服务的平台,公众账号通过消息、事件、菜单等交互方式为用户提供服务。例如:公众账号“招商银行信用卡中心”为持卡人提供信用卡绑定,查询信用卡 账单、额度及积分;快速还款、申请账单分期;微信转接人工服务;信用卡消费,微信免费笔笔提醒等功能,同时还为非持卡人提供微信办卡功能。微信公众平台的官方网址 是http:/ 除了公众平台以外,还有微信开放平台及微信智能开放平台。 微信开放平台是为移动应用开发者提供的内容分享接口,开发者可以在iOS、Android以及WP8平台上使用开放平台的SDK来开发分享功能,使用户可以在APP上分享内容给微信好友和微信朋友圈。微 信开放平

11、台的官方网址是http:/ 智能开放平台目前包括语音开放平台和图像开放平台。语音开放平台目前已开放的有通用语音识别、词表识别、语法识别、语音合成等语音技术。微信图像开放平台致力于为第三方应用提供免费的图 像识别技术和服务。智能开放平台的地址为http:/ 1.2 微信公众账号的注册 1.2.1 服务号/订阅号的注册 要使用微信公众平台,需要先注册一个微信公众平台账号。 在浏览器中输入微信公众平台的官方网址(http:/ 图1-2 微信公众平台首页 可以看到右上角有“第一次使用公众平台?立即注册”字样,单击“立即注册”链接,进入注册页面,如图1-3所示。 图1-3 基本信息界面 在基本信息界面中

12、填写邮箱、密码、验证码,并勾选“我同意并遵守微信公众平台服务协议”,然后单击“注册”按钮,进入邮箱激活界面,如图1-4所示。 图1-4 邮箱激活界面 同时邮箱中将收到激活微信公众平台账号的确认邮件,如图1-5所示。 图1-5 激活邮件 单击邮箱中的链接,成功激活账号之后,注册页面自动跳转到信息登记界面。在界面中要求选择相应的运营主体是组织还是个人,其中组织类型又细分为政府、媒体、企业和其他组织。根据运营主体 的不同,要求提供不同的资质材料及证明,如图1-6所示。 图1-6 信息登记界面 填写完信息登记界面后,再进入选择类型界面。公众账号类型可以选择服务号和订阅号,如图1-7所示。 图1-7 选

13、择类型界面 服务号的特点包括:每月可群发一条信息给粉丝且群发的消息显示在聊天列表,下发消息即时通知粉丝,默认可以自动获得自定义菜单,可以申请微信认证获得高级接口权限,服务号旨在为用户提供 服务。订阅号的特点包括:每天可群发一条消息给粉丝,群发消息隐藏在订阅号文件夹中,群发消息不会提示推送,认证后可申请自定义菜单,订阅号主要用于提供信息和资讯。 因此,企业和组织一般选择服务号,而媒体及个人一般选择订阅号。 选择好类型后,单击“继续”按钮,弹出公众账号信息界面,如图1-8所示。 图1-8 公众账号信息界面 填好信息之后,单击“完成”按钮,将得到成功创建公众账号的提示,如图1-9所示。 图1-9 注

14、册成功界面 单击“前往微信公众平台”将进入账号信息。在“设置”“公众账号设置”中可以查看到账号的基本信息,如图1-10所示。 图1-10 公众账号设置页面 1.2 微信公众账号的注册 1.2.1 服务号/订阅号的注册 要使用微信公众平台,需要先注册一个微信公众平台账号。 在浏览器中输入微信公众平台的官方网址(http:/ 图1-2 微信公众平台首页 可以看到右上角有“第一次使用公众平台?立即注册”字样,单击“立即注册”链接,进入注册页面,如图1-3所示。 图1-3 基本信息界面 在基本信息界面中填写邮箱、密码、验证码,并勾选“我同意并遵守微信公众平台服务协议”,然后单击“注册”按钮,进入邮箱激

15、活界面,如图1-4所示。 图1-4 邮箱激活界面 同时邮箱中将收到激活微信公众平台账号的确认邮件,如图1-5所示。 图1-5 激活邮件 单击邮箱中的链接,成功激活账号之后,注册页面自动跳转到信息登记界面。在界面中要求选择相应的运营主体是组织还是个人,其中组织类型又细分为政府、媒体、企业和其他组织。根据运营主体 的不同,要求提供不同的资质材料及证明,如图1-6所示。 图1-6 信息登记界面 填写完信息登记界面后,再进入选择类型界面。公众账号类型可以选择服务号和订阅号,如图1-7所示。 图1-7 选择类型界面 服务号的特点包括:每月可群发一条信息给粉丝且群发的消息显示在聊天列表,下发消息即时通知粉

16、丝,默认可以自动获得自定义菜单,可以申请微信认证获得高级接口权限,服务号旨在为用户提供 服务。订阅号的特点包括:每天可群发一条消息给粉丝,群发消息隐藏在订阅号文件夹中,群发消息不会提示推送,认证后可申请自定义菜单,订阅号主要用于提供信息和资讯。 因此,企业和组织一般选择服务号,而媒体及个人一般选择订阅号。 选择好类型后,单击“继续”按钮,弹出公众账号信息界面,如图1-8所示。 图1-8 公众账号信息界面 填好信息之后,单击“完成”按钮,将得到成功创建公众账号的提示,如图1-9所示。 图1-9 注册成功界面 单击“前往微信公众平台”将进入账号信息。在“设置”“公众账号设置”中可以查看到账号的基本

17、信息,如图1-10所示。 图1-10 公众账号设置页面 1.2.2 测试号的注册 除了普通的服务号及订阅号之外,微信公众平台还为开发者提供了测试号的申请,开发者只需要用微信的“扫一扫”功能扫描二维码即可获得一个有效期限为一年的测试账号,该账号不需要认证即可 拥有普通账号认证后才具有的权限。 注册微信测试号的地址是http:/ 图1-11 微信公众平台接口测试账号申请 单击图1-11中的“登录”按钮,将跳转到下述链接http:/ appid=wx39c379788eb1286a else $wechatObj-responseMsg(); class wechatCallbackapiTest

18、public function valid() $echoStr = $_GET“echostr“; if($this-checkSignature() echo $echoStr; exit; private function checkSignature() $signature = $_GET“signature“; $timestamp = $_GET“timestamp“; $nonce = $_GET“nonce“; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr

19、 = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr = $signature ) return true; else return false; public function responseMsg() $postStr = $GLOBALS“HTTP_RAW_POST_DATA“; if (!empty($postStr) $postObj = simplexml_load_string($postStr, SimpleXMLElement, LIBXML_NOCDATA); $fromUsername = $post

20、Obj-FromUserName; $toUsername = $postObj-ToUserName; $keyword = trim($postObj-Content); $time = time(); $textTpl = “ %s 0 “; if($keyword = “?“ | $keyword = “?“) $msgType = “text“; $content = date(“Y-m-d H:i:s“,time(); $result = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $content)

21、; echo $result; else echo “; exit; ? 将代码保存到文件index.php。请注意必须使用专业的开发软件来保存操作,例如Notepad+,不要使用Windows自带的记事本等,保存时需设置格式为“UTF-8无BOM格式”。图2-13是 Notepad+的设置处。 图2-13 UTF-8无BOM格式编码 然后使用压缩软件WinRAR将其压缩成ZIP格式,注意不能用RAR格式,因为SAE不支持RAR格式的文件上传,如图2-14所示。 图2-14 压缩zip文件 这样就会生成一个index.zip的压缩文件。 再回到我们之前创建的SAE应用的代码管理界面中,单击“操

22、作”按钮,选择在下拉按钮中,再选择“上传代码包”按钮,如图2-15所示。 图2-15 选择上传代码包 选择上传代码包后,将弹出“代码上传”页面,单击“上传文件”按钮,选择刚才压缩好的index.zip文件,单击上传,上传成功后进度条的背景色为绿色,如图2-16所示。 图2-16 上传代码 再次回到代码管理界面中,单击“编辑代码”按钮,如图2-17所示。 图2-17 编辑代码 在新的代码编辑页面中,我们可以看到index.php已经上传成功,双击该文件可以查看到源代码,如图2-18所示。 图2-18 查看源代码 至此,新浪云应用的创建完成,并且成功上传了微信公众平台的接口文件。 2.1.5 申请

23、SAE中级认证 为了更好地利用云计算的资源,帮助更多开发者减轻服务器成本负担及推广微信公众平台的开发,新浪云SAE运营中心和方倍工作室进行合作,凡是购买了本书纸质版的读者(购买地址包括方倍工作 室博客首页、各地新华书店及天猫、京东、当当、亚马逊等网上商城)在成功开发出一种微信公众平台的功能之后,可以申请新浪SAE中级认证,而无须达到SAE官网上要求的认证条件。在SAE审核通过之 后即可获得新浪SAE的中级认证,每月可获得10000云豆用于微信公众平台的运营(价值1200元/年)。所以,读者可以在学习完本书并开发出一个微信应用之后申请认证。 申请表可以从本书的介绍页面上找到,地址为: http:

24、/ 2.2 微信开发者中心 2.2.1 配置和启用服务器 登录微信公众平台后台,微信公众平台地址:http:/,在左侧列表中最下方,找到“开发者中心”,如图2-19所示。 图2-19 开发者中心 单击进入开发者中心,可以看到当前有个服务器配置的信息,状态为未启用,如图2-20所示。 图2-20 未启用服务器配置 单击“修改配置”按钮,进入配置页面,如图2-21所示。 图2-21 填写服务器配置 此处的URL为上一节中介绍的云应用的域名,即为http:/,而Token在index.php中定义为weixin,EncodingAESKey不需要填写,单击“随机生成”按钮,让系统自动生成一个 即可,

25、消息加解密方式选择“明文模式”,然后单击“提交”按钮。弹出确认框,如图2-22所示。 图2-22 确定提交配置 在弹出的提示框中,单击“确定”按钮,相关参数填写成功,如图2-23所示。 图2-23 服务器已配置 再单击右上角的“启用”按钮来启用服务器的配置。系统弹出提示框,询问是否确定开启服务器配置,如图2-24所示。 图2-24 确定开启服务器配置 单击“确定”按钮将启用服务器配置。 如果单击按钮后,上方提示“token验证失败”,可以重试几次,有时候微信服务器不稳定也会造成这样的情况,并不是程序本身有问题。启用成功后界面如图2-25所示。 图2-25 服务器配置已启用 这样就成功配置并启用

26、了服务器。 2.2 微信开发者中心 2.2.1 配置和启用服务器 登录微信公众平台后台,微信公众平台地址:http:/,在左侧列表中最下方,找到“开发者中心”,如图2-19所示。 图2-19 开发者中心 单击进入开发者中心,可以看到当前有个服务器配置的信息,状态为未启用,如图2-20所示。 图2-20 未启用服务器配置 单击“修改配置”按钮,进入配置页面,如图2-21所示。 图2-21 填写服务器配置 此处的URL为上一节中介绍的云应用的域名,即为http:/,而Token在index.php中定义为weixin,EncodingAESKey不需要填写,单击“随机生成”按钮,让系统自动生成一个

27、 即可,消息加解密方式选择“明文模式”,然后单击“提交”按钮。弹出确认框,如图2-22所示。 图2-22 确定提交配置 在弹出的提示框中,单击“确定”按钮,相关参数填写成功,如图2-23所示。 图2-23 服务器已配置 再单击右上角的“启用”按钮来启用服务器的配置。系统弹出提示框,询问是否确定开启服务器配置,如图2-24所示。 图2-24 确定开启服务器配置 单击“确定”按钮将启用服务器配置。 如果单击按钮后,上方提示“token验证失败”,可以重试几次,有时候微信服务器不稳定也会造成这样的情况,并不是程序本身有问题。启用成功后界面如图2-25所示。 图2-25 服务器配置已启用 这样就成功配

28、置并启用了服务器。 2.2.2 消息体加解密实现 在图2-21中,微信公众平台在配置服务器时,提供了3种加解密的模式供开发者选择,即明文模式、兼容模式、安全模式,选择兼容模式和安全模式前,需在开发者中心填写AES对称加密算法的消息加 解密密钥EncodingAESKey。公众账号用此密钥对收到的密文消息体进行解密,回复消息体也用此密钥加密。 明文模式:维持现有模式,没有适配加解密新特性,消息体明文收发,默认设置为明文模式。 兼容模式:公众平台发送消息内容将同时包括明文和密文,消息包长度增加到原来的3倍左右;公众账号回复明文或密文均可,不影响现有消息收发;开发者可在此模式下进行调试。 安全模式(

29、推荐):公众平台发送消息体的内容只含有密文,公众账号回复的消息体也为密文,建议开发者在调试成功后使用此模式收发消息。 消息体加解密的实现过程如下: 假设本次的开发配置中URL为 http:/www.fangbei.org/index.php 接口程序中需要配置以下三项参数: /* 方倍工作室 http:/ CopyRight 2014 All Rights Reserved */ define(“TOKEN“, “weixin“); define(“AppID“, “wxbad0b45542aa0b5e“); define(“EncodingAESKey“, “abcdefghijklmnop

30、qrstuvwxyz0123456789ABCDEFG“); require_once(wxBizMsgCrypt.php); 当用户向公众账号发送消息时,微信公众账号将会在URL中带上signature、timestamp、nonce、encrypt_type、msg_signature等参数,如下所示: http:/www.fangbei.org/index.php?signature=35703636de2f9df2a77a662b68e521ce17c34db4 $nonce = $_GET“nonce“; $msg_signature = $_GETmsg_signature; $e

31、ncrypt_type = $_GETencrypt_type; 这些参数将用于加解密过程。 接口程序收到消息后,先进行解密,解密部分代码如下: $postStr = $GLOBALS“HTTP_RAW_POST_DATA“; if ($encrypt_type = aes) $pc = new WXBizMsgCrypt(TOKEN, EncodingAESKey, AppID); $this-logger(“ D rn“.$postStr); $decryptMsg = “; /解密后的明文 $errCode = $pc-DecryptMsg($msg_signature, $timest

32、amp, $nonce, $postStr, $decryptMsg); $postStr = $decryptMsg; 解密完成后,把解密内容又返回给$postStr,这是为了保证将消息中解密后的内容和明文模式时的消息统一,方便后续处理,解密后的XML如下: 1414243737 6074130599188426998 在原有的代码流程中对消息进行处理,完成之后,一个要回复的文本消息如下: 1414243733 把上述消息进行加密,返回给微信公众账号,加密过程如下: /加密 if ($encrypt_type = aes) $encryptMsg = ; /加密后的密文 $errCode =

33、 $pc-encryptMsg($result, $timeStamp, $nonce, $encryptMsg); $result = $encryptMsg; $this-logger(“ E rn“.$result); 加密后的内容如下: 1414243733 这样,一个安全模式下的加解密消息就完成了。 完整的代码清单如下: 1 responseMsg(); 14 else 15 $wechatObj-valid(); 16 17 18 class wechatCallbackapiTest 19 20 /验证签名 21 public function valid() 22 23 $ec

34、hoStr = $_GET“echostr“; 24 $signature = $_GET“signature“; 25 $timestamp = $_GET“timestamp“; 26 $nonce = $_GET“nonce“; 27 $tmpArr = array(TOKEN, $timestamp, $nonce); 28 sort($tmpArr); 29 $tmpStr = implode($tmpArr); 30 $tmpStr = sha1($tmpStr); 31 if($tmpStr = $signature) 32 echo $echoStr; 33 exit; 34

35、35 36 37 /响应消息 38 public function responseMsg() 39 40 $timestamp = $_GETtimestamp; 41 $nonce = $_GET“nonce“; 42 $msg_signature = $_GETmsg_signature; 43 $encrypt_type = (isset($_GETencrypt_type) 44 45 $postStr = $GLOBALS“HTTP_RAW_POST_DATA“; 46 if (!empty($postStr) 47 /解密 48 if ($encrypt_type = aes)

36、49 $pc = new WXBizMsgCrypt(TOKEN, EncodingAESKey, AppID); 50 $this-logger(“ D rn“.$postStr); 51 $decryptMsg = “; /解密后的明文 52 $errCode = $pc-DecryptMsg($msg_signature, $timestamp, $nonce, $postStr, $decryptMsg); 53 $postStr = $decryptMsg; 54 55 $this-logger(“ R rn“.$postStr); 56 $postObj = simplexml_l

37、oad_string($postStr, SimpleXMLElement, LIBXML_NOCDATA); 57 $RX_TYPE = trim($postObj-MsgType); 58 59 /消息类型分离 60 switch ($RX_TYPE) 61 62 case “event“: 63 $result = $this-receiveEvent($postObj); 64 break; 65 case “text“: 66 $result = $this-receiveText($postObj); 67 break; 68 69 $this-logger(“ R rn“.$re

38、sult); 70 /加密 71 if ($encrypt_type = aes) 72 $encryptMsg = ; /加密后的密文 73 $errCode = $pc-encryptMsg($result, $timeStamp, $nonce, $encryptMsg); 74 $result = $encryptMsg; 75 $this-logger(“ E rn“.$result); 76 77 echo $result; 78 else 79 echo “; 80 exit; 81 82 83 84 /接收事件消息 85 private function receiveEven

39、t($object) 86 87 $content = “; 88 switch ($object-Event) 89 90 case “subscribe“: 91 $content = “欢迎关注方倍工作室 “; 92 break; 93 94 95 $result = $this-transmitText($object, $content); 96 return $result; 97 98 99 /接收文本消息 100 private function receiveText($object) 101 102 $keyword = trim($object-Content); 103

40、 if (strstr($keyword, “文本“) 104 $content = “这是个文本消息“; 105 else if (strstr($keyword, “单图文“) 106 $content = array(); 107 $content = array(“Title“=“单图文标题“, “Description“=“单图文内容“, “PicUrl“=“http:/ “Url“ =“http:/ 108 else if (strstr($keyword, “图文“) | strstr($keyword, “多图文“) 109 $content = array(); 110 $c

41、ontent = array(“Title“=“多图文1标题“, “Description“=“, “PicUrl“ =“http:/ “Url“ =“http:/ 111 $content = array(“Title“=“多图文2标题“, “Description“=“, “PicUrl“ =“ http:/ “Url“ =“http:/ 112 $content = array(“Title“=“多图文3标题“, “Description“=“, “PicUrl“=“http:/ “Url“ =“http:/ 113 else if (strstr($keyword, “音乐“) 114

42、 $content = array(); 115 $content = array(“Title“=“最炫民族风“, “Description“=“歌手:凤凰传奇“, “MusicUrl“=“http:/121.199.4.61/music/zxmzf.mp3“, “HQMusicUrl“=“http:/121.199.4.61/music/zxmzf.mp3“); 116 else 117 $content = date(“Y-m-d H:i:s“,time().“n“.$object-FromUserName.“n技术支持 方倍工作室“; 118 119 120 if(is_array($

43、content) 121 if (isset($content0) 122 $result = $this-transmitNews($object, $content); 123 else if (isset($contentMusicUrl) 124 $result = $this-transmitMusic($object, $content); 125 126 else 127 $result = $this-transmitText($object, $content); 128 129 return $result; 130 131 132 /回复文本消息 133 private

44、function transmitText($object, $content) 134 135 $xmlTpl = “ 136 137 138 %s 139 140 141 “; 142 $result = sprintf($xmlTpl, $object-FromUserName, $object-ToUserName, time(), $content); 143 return $result; 144 145 146 /回复图文消息 147 private function transmitNews($object, $newsArray) 148 149 if(!is_array($newsArray) 150 return; 151 152 $itemTpl = “ 1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料


经营许可证编号:宁ICP备18001539号-1