
云计算与云存储技术
课程论文
题目: 微信公众平台的开发
专 业: 电子与通信工程
年 级: 2014
学 号: 2014
姓 名: 振
2014 年 12 月 22 日
微信公众平台的开发
学生姓名:振 学号:********
指导老师:
摘要:微信是腾讯公司2011年初推出的一个为智能手机提供即使通讯服务的免费应用程序。微信支持跨通信运营商、跨操作系统平台通过网络快速发送免费(需消耗少量网络流量)语音短信、视频、图片和文字,支持多人群聊的手机聊天软件。因为是通过网络传送,因此微信不存在距离的,即使是在国外的好友,也可一使用微信对讲。
微信公众平台,简称wechat。曾命名为“官号平台”和“媒体平台”,最终定位为“公众平台”,无疑让我们看到一个微信对后续更大的期望。和新浪微博早期从明星战略着手不同,微信此时已经有了亿级的用户,挖掘自己用户的价值,为这个新的平台增加更优质的内容,创造更好的粘性,形成一个不一样的生态循环,是平台发展初期更重要的方向。利用公众账号平台进行自媒体活动,简单来说就是进行一对多的媒体性行为活动,如商家通过申请公众微信服务号通过二次开发如对接微信会员云营销系统展示商家微官网、微会员、微推送、微支付、微活动,微报名、微分享、微名片等,已经形成了一种主流的线上线下微信互动营销方式。
微信公众平台在2012年8月18日悄悄的开放了,它区别于个人微信平台工具,它最大的特点在于只能使用电脑进行登陆。伴随部分媒体加入微信,很多曾经玩微博的高手都转战微信公众平台。似乎这又是一个新的热点。
关键词:微信;平台;网络;营销
Development of wechat public platform
Student name:zhen Class:2014
Supervisor:
Abstract: Tencent wechat is launched in early 2011 to provide a free instant messaging application services for smart phones. Wechat support cross-communications operators, cross-operating system platform to quickly send free (need to consume a small amount of network traffic) voice messaging, video, pictures and text over the network, support for multiple people to chat phone chat software. Because it is transmitted over the network, and therefore does not limit the distance between the wechat presence, even in foreign friends, but also the use of a wechat intercom.
Wechat public platform, referred wechat. Has named the "official numbers platform" and "media platform" and eventually as a "public platform", no doubt let us see a micro-channel subsequent greater expectations. Sina Weibo and early start from the star strategy is different this time micro-channel already has one hundred million users, tap the value of their users to add more quality content for this new platform, to create a better tack, forming a different ecological cycle, is more important direction of the initial platform development. Since the use of public accounts platform media event, is simply a media-many sexual activities, such as micro-channel business through the application of public services such as the number of secondary development docking micro-channel cloud marketing system members show's official website through micro-businesses, micro members micro push, micropayment, micro activities, micro-registration, micro-sharing, micro-business cards, etc., has been formed under a mainstream online and offline micro-channel interactive marketing.
Wechat public platform in the August 18, 2012 quietly opened, which is different from the individual micro-channel platform tool, its greatest feature is that only use the computer to login. Accompanied by some of the media to join the wechat, a lot of experts who are playing microblogging fought in micro-channel public platform. It seems that this is a new hot spot.
Keywoed: Wechat; platform; network; Marketing
第1章 绪论
1.1 课题背景
微信公共平台与2012年8月8日正式上线,在最初上线的时候,腾讯官方给它的定位为“为用户、媒体、企业等提供一种全新的互动沟通模式,以及通过自由平台来打造一种全新的阅读模式和体验!”
微信公共平台它生于目前国内最大用户群的移动互联网应用——微信。它的相关用户体验已经非常的完善,用户的自由度非常的高,其中的用户订阅推送功能都能够自主选择,而且它加入的门槛非常的低,任何人都可以免费加入。如今,微信已成为一种潮流,几乎可以在每个人的手机里都可以看到这个软件的存在,不管你是用还是不用,因此,它具有广泛的市场需求。
再者,微信公众平台也可以说是微信的互动营销方式,对于大众化的媒体,明星以及企业而言,如果微信开放平台和朋友圈的社交分享功能的开放,已经使得微信作为一种移动互联网上不可忽视的营销渠道,那么微信公众平台的上线,则使这种营销的渠道更加的细化和直接。
1.2 微信公众平台的发展历程
微信公众平台 2013年6月 新增自定义LBS数据2013年10月19日 微信LBS图文回复是由商家设置店铺位置,用户提交当前所在位置后,可以找到最近的商家店铺。
微信公众平台主要面向名人、、媒体、企业等机构推出的合作推广业务。在这里可以通过渠道将品牌推广给上平台作用。微信公众平台于2012年08月23日正式上线,曾命名为“官号平台”和“媒体平台”,创造更好的用户体验,形成一个不一样的生态循环。
用户在你的App中看到的某个精彩内容(比如一篇文章、一首歌曲),TA想转发给好友,点击“分享给微信好友”通过微信,好友收到信息,轻轻一点,可以查看详情还可以使用你的App来查看内容(没有安装你的App的用户将会被提示去下载安装)。
把用户看到的精彩内容分享到微信朋友圈。
用户在你的App中看到的某个精彩内容(比如文章、歌曲、视频等),TA想分享给微信朋友圈的好友们,点击“分享到微信朋友圈”,完成授权后,内容就可以发送到微信的服务器,好友在朋友圈中就能马上看到这个内容了。
微信在2013年8月5日从4.5版本升级到了5.0版,同时微信公众平台也做了大幅调整,微信公众账号被分成订阅号和服务号,运营主体是组织(比如企业、媒体、公益组织)的,可以申请服务号,运营主体是组织和个人的可以申请订阅号,但是个人不能申请服务号。
第2章 微信公众账号注册、设置、登陆
2.1、微信公众平台注册
1、一个没有注册过公众账号的邮箱,如果是qq邮箱那么对应的qq号也要没有注册过公众账号。
2、身份证扫描件,每个身份证可以注册5个公众账号
3、手机,用来接受注册验证码
4、想好公众账号名称,非常重要,一旦申请成功名称不能修改,并且该名称最好与已获得认证的腾讯微博名称相同,等公众号到500粉丝后可以自助认证。
准备工作做好后开始进行注册,在浏览器地址栏输入http://mp.weixin.qq.com,进入微信公众平台。
图2.1.1 微信公众平台主页面
点击注册按钮后进入注册界面:
图 2.1.2 微信公众平台的账号申请
填写注册的邮箱和设置密码,记得协议选项打钩,协议里有一段公众账号所有权其实是归微信所有。
点击注册后会发送一封邮件到你注册邮箱要求激活。
图2.1.3邮箱激活
点击邮件连接后跳转至第三步,公众账号所有者的信息填写,根据要求填写就好了,上传身份证扫描件,手机验证一下。这里要注意的是如果是公司账号,请填写完整,方便后期公司申请一些接口使用,比如自定义菜单接口。
然后就是最重要的一步,微信账号名称设置:
图2.1.4 账号名称设置
这里需要注意的有三点:
1、账号名称一旦设定是不能再更改的。
2、公众账号的自助认证必须要用与该名称相同的已认证微博来辅助认证。如果两个名称不同的话需要通过邮件方式人工认证,需要提供的资料会比较多。
3、在微信客户端里用户搜索公众账号有两个途径,一个是通过直接搜索,一个是通过账号名称搜索。由于通常是英文字符加数字等组合,对国人来说记忆性不强,因此通过中文搜索公众账号是一个重要途径,企业的公众账号中文名称要取的辨识度高,可搜索性强。
功能介绍这块可以先随便写个,后期可以随时修改,账号类型选择普通公众账号。
至此微信公众账号就注册成功了。
2.2、公众账号设置
注册成功以后会直接进入到公众账号后台的设置页面,下图所示:
图2.2.1 账号后台设置
首先是设置头像,企业的可以直接拿自己微博上的头像上传,应用类或者个人类的可以根据自己公众账号定位来设计一个头像。
头像需要注意的是微信公众账号头像会有两个样子,一个是方的一个是圆的,圆的那个头像很容易切掉图像或者文字,在设计的时候就要考虑好
功能介绍根据账号定位来设置,建议文字不要超过40个字,以账号服务内容为主,力求让用户在关注你前就了解到你的账号是干什么的,不要写公司介绍。
图2.2.2 的设置
然后设置公众账号的,长度必须在6位以上,填写后也是不能修改的,大小写没有关系,用户搜索时都是按照小写字母来搜索的。要注意的是尽量少用下划线、减号和数字,减少用户切换键盘的动作,另外下划线和减号用户容易输错。
2.3、公众账号登陆
公众账号登陆还是从http://mp.weixin.qq.com进入,点击右上角的登陆后弹出窗口,共有三种方式登陆,QQ号、和注册邮箱,但是目前新注册的只能用邮箱登陆了,以前注册的可以使用qq和微信账号登陆,不知道将来是否会有改变。
图2.3.1 账号的登入
登陆成功以后就进入了微信公众平台后台首页了
图2.3.2 账号的后台
至此,微信公众平台的账号已申请完毕。
2.4 微信公众平台的使用
2.4.1不同账号区别
服务号功能
公众平台服务号,是公众平台的一种帐号类型,旨在为用户提供服务。
1、1个月(自然月)内仅可以发送4条群发消息。
2、发给订阅用户(粉丝)的消息,会显示在对方的聊天列表中。
3、服务号会在订阅用户(粉丝)的通讯录中。通讯录中有一个服务号的文件夹,点开可以查看所有服务号。
4、服务号可申请自定义菜单。
订阅号功能
公众平台订阅号,是公众平台的一种帐号类型,旨在为用户提供信息。
1、每天(24小时内)可以发送1条群发消息。
2、发给订阅用户(粉丝)的消息,将会显示在对方的“订阅号”文件夹中。
3、在订阅用户(粉丝)的通讯录中,订阅号将被放入订阅号文件夹中。
其中个人申请,只能申请订阅号。
2.4.2 平台使用
功能定位
微信主要价值:在于让企业的服务意识提升,在微信公众平台上,企业可以更好的提供服务,运营方案上面有很多方式,可以是第三方开发者模式;也可以是简单的编辑模式。
群发推送:公号主动向用户推送重要通知或趣味内容;
自动回复:用户根据指定关键字,主动向公号提取常规消息;
1对1交流:公号针对用户的特殊疑问,为用户提供1对1的对话解答服务。
平台类型
2013年8月5日,微信公众平台进行升级,将微信公众平台分成订阅号和服务号两种类型。
服务号是公众平台的一种帐号类型,旨在为用户提供服务。服务号一个月内仅可以发送四条群发消息。服务号发给用户的消息,会显示在用户的聊天列表中。并且,在发送消息给用户时,用户将收到即时的消息提醒。
订阅号是公众平台的一种帐号类型,为用户提供信息和资讯。订阅号每天可以发送一条群发消息。订阅号发给用户的消息,将会显示在用户的订阅号文件夹中。在发送消息给用户时,用户不会收到即时消息提醒。在用户的通讯录中,订阅号将被放入订阅号文件夹中。
发布方式
它的最重要的发布和订阅方式,都在设置中会找到一个如下格式的二维码,品牌ID 放到二维码的中部,你也可以有其他方式来订阅微信公众帐号。
消息推送
普通的公众帐号,可以群发文字、图片、语音、视频等类别的内容。
而认证的帐号,有更高的权限,能推送更漂亮的图文信息。
分类订阅
在推送的打扰方面,用户订阅增加可能也会增加这方面的困扰。而最重要的,恐怕还是内容和品牌的选择问题——人们会喜欢少量而精致的资讯,而且随时可以离开。
2.4.3人性设置
群发助手
由于公共帐号不能在手持设备上登录,个人公众号可以绑定一个私人微信帐号,并可以在私人帐号上通过公众号助手,向所有公众号的粉丝群发消息。
自动回复
由于是一对多的点对点方式,微信公众平台后台设置了自动回复选项,用户可以通过添加关键词(可以添加多个关键词)以便自动处理一些常用的查询和疑问。
第3章 认证类型
3.1平台认证
微信公众号主要面向名人、、媒体、企业等机构推出的合作推广业务。在这里可以通过微信渠道将品牌推广给上亿的微信用户,减少宣传成本,提高品牌知名度,打造更具影响力的品牌形象。微信公众号的口号是“再小的个体,也有自己品牌”,足以见得其的作用。
3.1.1公众号认证
微信认证,也称微信公众号认证。需要在业内有一定知名度,且订阅用户至少需要500位,才能申请认证。一般企业和个人都难以通过,只有著名人物和公司,且符合条件者方可申请微信公众号认证。可以通过微博、网站等途径,推广自己的微信公众号的二维码,获取更多订阅用户,扩大影响力。
最新的公众号认证是300元/每次,注意这个认证是每次收费300元,如果这次申请没有通过300元是不退的,还得继续花钱认证(所以提醒需要认证的组织一定要将所需要的资料和各方面信息提交正确)。如果通过有效期是一年,第二年年审继续收费。
通过认证的微信公众平台在现有基础上增加了9种新的开发接口,通过这些接口企业和媒体、机构的公众平台可以开发出更多微信应用,打造更强大的微信公众平台。
3.1.2公众号用途
微信公众账号的用途非常广泛,,媒体,企业,明星等都开始纷纷建立的微信公众账号平台。在上面进行个人企业等文化活动的宣传营销。
可以在设置里面绑定一个私人,利用微信公众号助手群发消息,随时查看消息群发状态。利用公众账号平台进行自媒体活动,简单来说就是进行一对多的媒体性行为活动,如商家通过基于微信公众平台对接的微信会员云营销系统展示商家微官网、微会员、微推送、微支付、微活动,已经形成了一种主流的线上线下微信互动营销方式。
第4章 新浪SAE平台
4.1 SAE平台的简介
Sina App Engine(以下简称SAE)是新浪研发中心于2009年8月开始内部开发,并在2009年11月3日正式推出第一个Alpha版本的国内首个公有云计算平台,SAE是新浪云计算战略的核心组成部分。 SAE作为国内的公有云计算,从开发伊始借鉴吸纳Google、Amazon等国外公司的公有云计算的成功技术经验,并很快推出不同于他们的具有自身特色的云计算平台。SAE选择在国内流行最广的Web开发语言PHP作为首选的支持语言,Web开发者可以在Linux/Mac/Windows上通过SVN、SDK或者Web版在线代码编辑器进行开发、部署、调试,团队开发时还可以进行成员协作,不同的角色将对代码、项目拥有不同的权限;SAE提供了一系列分布式计算、存储服务供开发者使用,包括分布式文件存储、分布式数据库集群、分布式缓存、分布式定时服务等,这些服务将大大降低开发者的开发成本。
总之,SAE就是简单高效的分布式Web服务开发、运行平台。
4.2 SAE的优势
SAE的基本目标用户有两种,一种是Web开发者,另一种是普通互联网上网人群,对于Web开发者,SAE带来的好处有:
· 硬件成本更低,无需预先购买设备,承担更大的投入风险
· 开发成本更低,SAE提供许多服务供开发者使用,开发者无需重复开发,包括队列、数据库、缓存、定时、验证码、计数器,几乎覆盖了Web开发的所有领域。
· 运维成本更低,在SAE上的应用无需关心硬件维护、服务监控、数据容灾等操作,SAE会通过其高可靠的架构和方便的监控页面为用户将运维成本降到最低扩展性更强。
· 更加安全可靠,SAE自动提供SQL语句性能分析、前端防攻击、代码检查等功能,在SAE上所有应用均为多机房容灾部署,比传统的部署模式更加安全可靠。
对于普通上网人群,使用SAE可以:
使用推荐应用一键安装Web应用,普通用户无需会编码,也可以在瞬间拥有自己的团购、博客、微博、Wiki等
4.3 SAE账号的申请
打开浏览器输入http://sae.sina.com.cn/进入新浪SAE主页
图3.3.1 SAE平台主界面
点击注册字样,进入注册页面。由于SAE采用授权方式,即可无需申请账号,而是采用新浪微博账号授权,便可快速创建SAE账号。如下图:
3.3.2 新浪微博授权登入界面
登入微博账号,即可进入SAE账号的主界面,如下图所示:
图3.3.3 SAE个人账号主界面
在此点击图3.3.3的创建应用按钮,即可进行SAE的应用创建,其图如下:
图3.3.4 SAE应用的创建
上图中,其二级域名很重要,它表示的是你的写应用的地址。填写好相关信息后点击“应用创建”按钮便成功。回到主界面,进行应用的管理(因为此时你仅仅是创建了应用而已,还未去实现应用)。进入到应用的管理页面,如下图:
3.3.5 代码的管理与编辑
选择代码管理,由于是刚接触SAE平台,现在还不建议更改其他配置。之后点击代码编辑,经过安全认证后,则进入到代码页面,如下图所示:
图3.3.6 代码的编辑
因为微信公众平台的官方文档使用PHP语言编写,为了一致性,在此我们也是选择PHP语言编写。
4.4 Token验证
Token验证是微信公众平台开发成功与否的关键一步,验证通过,即可将微信公众账号和新浪SAE账号相关联,把编写好的应用交由SAE云计算平台去运行与计算,而其结果返回至微信公众账号客户端。
Token验证可以用一组代码完成,将代码编辑在SAE代码管理项目下的Index.php,并保存。如下图:
图3.4.1 Token验证代码
现在回到微信公众账号的开发者中心,选择配置项并启用、修改该配置项,如图所示:
3.4.2 Token验证
其URL填写SAE的二级域名,Token名称自己填写便可,并随机生成EncodingAESKey,点击验证即可完成。在此便已经完成微信公众平台的所有前期工作,后期仅仅是应用的编写,为了大家的方便,在此给出一段代码,该代码包含的功能有:在微信公众号的手机客户端可以查询天气,地址,语音点歌等,详见附录。
第5章 结论
微信公众平台是腾讯公司在微信的基础上新增的功能模块,通过这一平台,个人和企业都可以打造一个微信的公众号,并实现和特定群体的文字、图片、语音的全方位沟通、互动。
目前,关注同一公众号(品牌)的用户之间也没有(社交)交集,人们关注,可能只是更直接的获得有用、有趣的信息。而对于公众帐号,这个过程则是了解和接触特定目标群体的直接、便利的途径。微信最大的特点就是可以直接对话,目前,这种新的营销方式正渐渐备受关注。值得注意的是,微信可以借助个人关注页和朋友圈,实现品牌的病毒式传播。每一个人的个人信息页,都会出现所关注的品牌 LOGO。
而此次的微信公众平台的开发经历,让我更能深刻体会到微信平台的强大功能与使用功能,随着时间的推移,微信公众平台的开发将对我们每个人产生深刻的影响,说不定或许它将会是下一个淘宝,或者胜于淘宝。
当然本人能力、时间均有限,对于平台的开发研究还不够,所以本论文的内容还存在不足之处,但本人在以后的学习与工作中会对此提出更高的要求,将之更好的完善。
参考文献
[1]. 易伟.微信公众平台搭建与开发秘籍.机械工业出版社.2014-5。
[2]. 方倍工作室.微信公众平台开发最佳实践.机械工业出版社.2014-9。
[3]. [美]厄尔曼|译者:贾菡//刘彦博.php基础教程.人民邮电出版社.2011-10。
[4]. 范春梅,王新刚,张卫华.XML基础教程.人民邮电出版社.2009-10。
附录
/**
* wechat php test
*/
//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$wechatObj->responseMsg();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
//valid signature , option
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
public function responseMsg()
{
//get post data, May be due to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//extract post data
if (!empty($postStr)){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$type = $postObj->MsgType;
$customrevent = $postObj->Event;
$latitude = $postObj->Location_X;
$longitude = $postObj->Location_Y;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "
switch ($type)
{ case "event";
if ($customrevent=="subscribe")
{$msgType="text";
$contentStr = "感谢你的关注\\n1.回复地名如 上海 查看天气\\n2.语音回复歌名进行点歌\\n3.发送位置查看你的详细地址,还可以测你的距离哦\\n4.回复除地名以外的文字进行翻译(支持中文,英文,日文的互译哦)";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr; }
break;
case "image";
$contentStr = "你的图片很棒!";
$msgType="text";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
break;
case "location";
$geourl="http://api.map.baidu.com/telematics/v2/reverseGeocoding?location={$longitude},{$latitude}&ak=1a3cde429f38434f1811a75e1a90310c";
$apistr=file_get_contents($geourl);
$apiobj=simplexml_load_string($apistr);
$addstr=$apiobj->results->result[0]->name;
$geourl2="http://api.map.baidu.com/telematics/v2/distance?waypoints=121.293939,31.142958;{$longitude},{$latitude}&ak=1a3cde429f38434f1811a75e1a90310c";//测距api
$apistr=file_get_contents($geourl2);
$apiobj=simplexml_load_string($apistr);
$distanceobj=$apiobj->results->distance;
$distanceint=intval($distanceobj);//转换为整数型
$diskmint=$distanceint/1000;//转换为公里
$contentStr = "我知道你个逗比在{$addstr}附近,你离上海东方明珠仅有{$diskmint}公里,有种别跑,放学我过来打你";
$msgType="text";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
break;
case "voice":
$resultStr= $this->getMusicContent($postObj);
echo $resultStr;
exit;
break;
case "link" ;
$contentStr = "你的链接有病毒吧!";
$msgType="text";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
break;
case "text";
$weatherurl="http://api.map.baidu.com/telematics/v2/weather?location={$keyword}&ak=1a3cde429f38434f1811a75e1a90310c";
$apistr=file_get_contents($weatherurl);
$apiobj=simplexml_load_string($apistr);
$placeobj=$apiobj->currentCity;//读取城市
$todayobj=$apiobj->results->result[0]->date;//读取星期
$weatherobj=$apiobj->results->result[0]->weather;//读取天气
$windobj=$apiobj->results->result[0]->wind;//读取风力
$temobj=$apiobj->results->result[0]->temperature;//读取温度
if(!empty($todayobj))
{ $contentStr = "{$placeobj}\\n {$todayobj};\\n 天气: {$weatherobj};\\n 风力:{$windobj};\\n 温度:{$temobj}";
$msgType="text";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}
else
{
$tranurl="http://openapi.baidu.com/public/2.0/bmt/translate?client_id=9peNkh97N6B9GGj9zBke9tGQ&q={$keyword}&from=auto&to=auto";//百度翻译地址
$transtr=file_get_contents($tranurl);//读入文件
$transon=json_decode($transtr);//json解析
$contentStr = $transon->trans_result[0]->dst;//读取翻译内容
$msgType="text";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
}
break;
default;
$contentStr ="此项功能尚未开发"; $msgType="text";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr; }
}else { echo ""; exit; } }
private function checkSignature()
{ $signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{ return false;
} }
public function getMusicContent($postObj)
{ $ret= "
$recognition=$postObj->Recognition;
$keywordc= urlencode($recognition);
$musicapi = "http://box.zhangmen.baidu.com/x?op=12&count=1&title={$keywordc}\\$\\$";
$simstr=file_get_contents($musicapi);
$musicobj=simplexml_load_string($simstr);
$i=0; $musicurl;
foreach($musicobj->url as $itemobj)
{ $encode = $itemobj->encode;
//处理decode ,发现微信在处理音乐的时候有个问题,所以这里删除一个参数
$decode = $itemobj->decode;
$removedecode = end(explode('&', $decode));
if($removedecode<>"")
{$removedecode="&".$removedecode; }
$decode = str_replace($removedecode,"", $decode);
$musicurl= str_replace(end(explode('/', $encode)) ,$decode,$encode);
break; }
$resultStr = sprintf($ret, $postObj->FromUserName, $postObj->ToUserName,time(), $recognition,$musicurl,$musicurl);
return $resultStr
}
}
>
