摘要:本文将带你了解微信开发微信平台开发教程,希望本文对大家学微信有所帮助。
本文将带你了解微信开发微信平台开发教程,希望本文对大家学微信有所帮助。
在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序、MySQL数据库、计算机网络通讯、及HTTP/XML/CSS/JS等基础。
我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部。
本系列教程将引导你完成如下任务:
创建新浪云计算平台应用
启用微信公众平台开发模式
了解数据收发原理及消息格式
开发实现微信天气预报功能
第一章 申请服务器资源
创建新浪云计算应用
申请账号
我们使用SAE新浪云计算平台作为服务器资源,并且申请PHP环境+MySQL数据库作为程序运行环境。
申请地址为:
//www.sinacloud.com/
直接点击上述网址,可以看到右上角微博登录的链接。
点击进入之后,使用新浪微博账号登录
登录之后,按照提示注册个人信息即可。
创建新应用 //www.cnblogs.com/txw1958/p/wechat-tutorial.html
回到首页,在菜单顶部选择 控制台 ,再选择 云应用SAE 。
进入SAE应用列表
点击下侧的创建新应用,这时会弹出提示, 禁止放置违法违规内容,点击继续创建,弹出如下窗口。
选择一个未使用的appid,如果老是已经被使用不知道该什么好,就填写你的QQ号或者手机号吧。
填写二级域名AppID、应用名称、验证码,开发语言选择PHP5.3,全部应用和框架下面选择第一个【PHP 空应用】。然后点击左下方的创建应用
应用创建成功。并自动跳转到应用列表中,可以看到已经有刚才创建的1354386063这个应用。
创建数据库
点击刚才创建的应用名称,进入应用主页。
在左侧的数据库服务中找到MySQL
点击进入MySQL类型选择,这里选择独享型MySQL
在创建独享型MySQL中,使用微型配置,然后点击“确认初始化”
底部将显示任务进度。
等任务完成之后,再点击销毁MySQL按钮,
这样创建并销毁一次,可以多获得200云豆。以后使用的时候,可以使用免费的共享型MySQL或者使用收费但更稳定强大的独享型MySQL。
创建版本 //www.cnblogs.com/txw1958/p/wechat-tutorial.html
点击刚才创建的应用名称,进入应用主页。
点击左侧的应用管理下面的代码管理,
在代码管理中,选择使用SVN托管的方式,不要使用git的方式。
跳转到代码管理
点击右侧的“创建版本”
版本号默认为1,点击创建,有时会弹出安全登录,需要输入安全密码,如果不知道或者忘记了,就点里面的找回密码,重新设置一下。:
验证通过之后,如下所示
到这里,就成功创建了一个域名URL为 //1354386063.sinaapp.com/ 的应用了,记住你的这个URL,后面将会用到。
原文://www.cnblogs.com/txw1958/p/wechat-tutorial.html
上传代码 //www.cnblogs.com/txw1958/p/wechat-tutorial.html
下述代码是一个微信接口文件,看不懂没有关系,你可以暂时不用弄明白它的意思。
如果想弄明白,可以购买《微信公众平台开发最佳实践》,在该书中第25页~第27页有详细讲解。
valid();}else{ $wechatObj->responseMsg();}class wechatCallbackapiTest{ public function valid() { $echoStr = $_GET["echostr"]; if($this->checkSignature()){ header('content-type:text'); echo $echoStr; exit; } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = 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 = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $keyword = trim($postObj->Content); $time = time(); $textTpl = " %s 0 "; if($keyword == "?" || $keyword == "?") { $msgType = "text"; $contentStr = date("Y-m-d H:i:s",time()); $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; } }else{ echo ""; exit; } }}?>
我们将使用上述代码与微信公众平台对接。
将上述代码用专业的软件存为utf-8格式的index.php文件后再使用WinRAR压缩为index.zip,
或者直接下载方倍工作室已经压缩好的index.zip文件。点此进入下载
回到SAE的代码管理界面中。
再选择“上传代码包”,点击上传文件,选择刚才的index.zip文件,点击上传,上传成功后中间是一个绿色的横条,如下所示
如果没有绿色的横条,表示上传失败,需要重试。可以考虑在Chrome浏览器下重试一下。
点击编辑代码按钮,
有时候需要输入自己的安全密码,如果不记得了就点击“找回密码”。
安全验证成功后继续之前的操作。
我们可以看到index.php已经上传成功,双击可以查看编辑里面的代码
新浪云应用的创建就成功了。
实名认证
新浪SAE要求用户上传身份证进行实名认证才可以正常使用,在左侧菜单列表中可以找到“实名认证”这一标签可进行实名认证操作。实名认证过程是免费的。认证以后每月免费有5G的流量。认证审核需要1~3个工作日。
来不及准备身份证照片的话可以先继续下面的内容,改天再来进行实名认证。但在使用过程中会受点影响。
如果不进行实名认证,SAE会在回复的内容中会带上干扰的html内容信息,从而导致Token验证失败或者该公众号暂时无法提供服务,请稍后再试。
实名认证需要填的信息如下
实名认证成功后,将如下图所示。
充值(本步骤可选择性进行)
新浪云SAE实行的是配额免费+超额付费的方式,相关标准请查看SAE价格体系介绍。初期对于大部分用户来说免费配额已够用,如果您将来使用量比较大建议预先至少充值100元获得10000云豆,以免超额后应用被禁用而影响业务。
第二章 启用开发模式
微信公众平台开发模式
高级功能
微信公众平台地址:https://mp.weixin.qq.com
登录微信公众平台后台,在左侧列表中最下方,找到“ 基本配置 ”,点击进入
进入服务器配置填写框。
点击“修改配置”按钮
此处的URL为上篇中介绍的云应用的域名,而Token在index.php中定义为weixin。EncodingAESKey则不用填,点击“随机生成”让自动生成一个,消息加解密方式选择“明文模式”,然后点击“提交”按钮。
在弹出的提示框中,点击“确定”
配置修改后如图所示,再点击“启用”按钮
询问“是否确定开启服务器配置”,点击“确定”
如果提示“token验证失败”,可以先重次几次,微信服务器有时候不稳定。并确保你的SAE已经上传身份证通过实名认证!
如果还是失败,请先用微信调试器测试一下url和token是否正确。
成功启用后如图。
恭喜,你成功启用开发模式。
自动回复
在上面的例子中,实现了一个发送“?”就能回复当前时间的功能。
效果如下:
至此,你的微信公众平台账号已经实现自动回复了。
第三章 数据收发原理及消息数据格式
★ 本章是理论部分,初学者会比较难以理解,不用太过追究。
开发模式成为开发者时的消息校验原理
在开发者首次提交验证申请时,微信服务器将发送GET请求到填写的URL上,并且带上四个参数(signature、timestamp、nonce、echostr),开发者通过对签名(即signature)的效验,来判断此条消息的真实性。
此后,每次开发者接收用户消息的时候,微信也都会带上前面三个参数(signature、timestamp、nonce)访问开发者设置的URL,开发者依然通过对签名的效验判断此条消息的真实性。效验方式与首次提交验证申请一致。
参数
描述
signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串
开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
加密/校验流程如下:1. 将token、timestamp、nonce三个参数进行字典序排序2. 将三个参数字符串拼接成一个字符串进行sha1加密3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
启用接口是由代码中的checkSignature()函数来实现校验的。如果对这一原理难以理解,可以暂时不用深究,继续看下面。
成为开发者后消息收发时的原理
上一章节中图,当用户发送一个“?”时,系统回复了一个时间
这一原理的消息流程图如下所示。
从上图可以看出,用户在发送一个?后,微信服务器将组装一个消息发送给我们自己的服务器,自己的服务器然后回复一个时间,并且将该时间也按一定的规则组装,回复给公众账号,公众账号再回复给用户,在这个收发过程中,发送方和接收方进行了调换(ToUserName和FromUserName值互换),收发都是以xml格式在后台进行传输的,
所以掌握各种消息类型的接收回复就是进行微信公众平台开发的基础!
下面对前面所述的各种消息类型讲解其XML数据包的格式。
各种收发消息的XML数据包分析
接收消息
1. 文本(包括表情)
接收文本及表情
文字后台格式:
<xml> <tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_680bdefc8c5d%5D%5D%2D%2D%3E--></tousername> <fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BoIDrpjqASyTPnxRmpS9O_ruZGsfk%5D%5D%2D%2D%3E--></fromusername> <createtime>1359028446</createtime> <msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Btext%5D%5D%2D%2D%3E--></msgtype> <content><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%E6%B5%8B%E8%AF%95%E6%96%87%E5%AD%97%5D%5D%2D%2D%3E--></content> <msgid>5836982729904121631</msgid></xml>
表情后台格式
<xml><tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_680bdefc8c5d%5D%5D%2D%2D%3E--></tousername><fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BoIDrpjqASyTPnxRmpS9O_ruZGsfk%5D%5D%2D%2D%3E--></fromusername><createtime>1359044526</createtime><msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Btext%5D%5D%2D%2D%3E--></msgtype><content><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%2F%3A%3A)%2F%3A%3A~%2F%3A%3AB%2F%3A%3A%7C%2F%3A8-)%5D%5D%2D%2D%3E--></content><msgid>5837051792978241864</msgid></xml>
XML格式讲解
ToUserName 消息接收方微信号,一般为公众平台账号微信号FromUserName 消息发送方微信号CreateTime 消息创建时间MsgType 消息类型;文本消息为textContent 消息内容MsgId 消息ID号
可以看出,文本和表情的消息类型均为文本
2. 图片
接收图片
后台格式:
<xml><tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_680bdefc8c5d%5D%5D%2D%2D%3E--></tousername><fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BoIDrpjqASyTPnxRmpS9O_ruZGsfk%5D%5D%2D%2D%3E--></fromusername><createtime>1359028479</createtime><msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bimage%5D%5D%2D%2D%3E--></msgtype><picurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bhttp%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz%2FL4qjYtOibummHn90t1mnaibYiaR8ljyicF3MW7XX3BLp1qZgUb7CtZ0DxqYFI4uAQH1FWs3hUicpibjF0pOqLEQyDMlg%2F0%5D%5D%2D%2D%3E--></picurl><msgid>5836982871638042400</msgid><mediaid><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BPGKsO3LAgbVTsFYO7FGu51KUYa07D0C_Nozz2fn1z6VYtHOsF59PTFl0vagGxkVH%5D%5D%2D%2D%3E--></mediaid></xml>
XML格式讲解
ToUserName 消息接收方微信号,一般为公众平台账号微信号FromUserName 消息发送方微信号CreateTime 消息创建时间MsgType 消息类型;图片消息为imagePicUrl 图片链接地址,可以用HTTP GET获取MsgId 消息ID号
3. 语音
接收语音
后台格式:
<xml> <tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_d035bb259cf5%5D%5D%2D%2D%3E--></tousername> <fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BowEUGj4BW8yeWRvyEERiVGKwAF1Q%5D%5D%2D%2D%3E--></fromusername> <createtime>1364883809</createtime> <msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bvoice%5D%5D%2D%2D%3E--></msgtype> <mediaid><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BJfmCezZ3Cwp0FwUvMADwwhvp-XScuvpictubpw0c6ALyA8tj3HLU4PoXzMpIY72P%5D%5D%2D%2D%3E--></mediaid> <format><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bamr%5D%5D%2D%2D%3E--></format> <msgid>5862131322594912688</msgid></xml>
XML格式讲解
ToUserName 消息接收方微信号,一般为公众平台账号微信号FromUserName 消息发送方微信号CreateTime 消息创建时间MsgType 消息类型;语音消息为voiceMediaId 媒体IDFormat 语音格式,这里为amrMsgId 消息ID号
附:AMR接口简介全称Adaptive Multi-Rate,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的。
4. 视频
接收视频
后台格式:
xml><tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_680bdefc8c5d%5D%5D%2D%2D%3E--></tousername><fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BoIDrpjqASyTPnxRmpS9O_ruZGsfk%5D%5D%2D%2D%3E--></fromusername><createtime>1359028186</createtime><msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bvideo%5D%5D%2D%2D%3E--></msgtype><mediaid><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BDBVFRIj29LB2hxuYpc0R6VLyxwgyCHZPbRj_IIs6YaGhutyXUKtFSDcSCPeoqUYr%5D%5D%2D%2D%3E--></mediaid><thumbmediaid><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BmxUJ5gcCeesJwx2T9qsk62YzIclCP_HnRdfTQcojlPeT2G9Q3d22UkSLyBFLZ01J%5D%5D%2D%2D%3E--></thumbmediaid><msgid>5836981613212624665</msgid>
XML格式讲解
ToUserName 消息接收方微信号,一般为公众平台账号微信号FromUserName 消息发送方微信号CreateTime 消息创建时间MsgType 消息类型;视频消息为videoMediaId 媒体IDThumbMediaId 媒体缩略ID?MsgId 消息ID号
5. 位置
接收位置
后台格式:
<xml><tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_680bdefc8c5d%5D%5D%2D%2D%3E--></tousername><fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BoIDrpjqASyTPnxRmpS9O_ruZGsfk%5D%5D%2D%2D%3E--></fromusername><createtime>1359036619</createtime><msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Blocation%5D%5D%2D%2D%3E--></msgtype><location_x>22.539968</location_x><location_y>113.954980</location_y><scale>16</scale><label><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%E4%B8%AD%E5%9B%BD%E5%B9%BF%E4%B8%9C%E7%9C%81%E6%B7%B1%E5%9C%B3%E5%B8%82%E5%8D%97%E5%B1%B1%E5%8C%BA%E5%8D%8E%E4%BE%A8%E5%9F%8E%E6%B7%B1%E5%8D%97%E5%A4%A7%E9%81%939789%E5%8F%B7%20%E9%82%AE%E6%94%BF%E7%BC%96%E7%A0%81%3A%20518057%5D%5D%2D%2D%3E--></label><msgid>5837017832671832047</msgid></xml>
XML格式讲解
ToUserName 消息接收方微信号,一般为公众平台账号微信号 FromUserName 消息发送方微信号 CreateTime 消息创建时间 MsgType 消息类型,地理位置为location Location_X 地理位置纬度 Location_Y 地理位置经度 Scale 地图缩放大小 Label 地理位置信息 MsgId 消息ID号
6. 链接
接收链接
后台格式:
<xml><tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_680bdefc8c5d%5D%5D%2D%2D%3E--></tousername> <fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BoIDrpjl2LYdfTAM-oxDgB4XZcnc8%5D%5D%2D%2D%3E--></fromusername> <createtime>1359709372</createtime> <msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Blink%5D%5D%2D%2D%3E--></msgtype><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%B9%B3%E5%8F%B0%E5%BC%80%E5%8F%91%E8%80%85%E7%9A%84%E6%B1%9F%E6%B9%96%5D%5D%2D%2D%3E--></title> <description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%E9%99%88%E5%9D%A4%E7%9A%84%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7%E8%BF%99%E6%AE%B5%E6%97%B6%E9%97%B4%E5%A4%A7%E7%81%AB%EF%BC%8C%E5%A4%A7%E5%AE%B6..%5D%5D%2D%2D%3E--></description> <url><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bhttp%3A%2F%2Fisrael.duapp.com%2Fweb%2Fphoto.php%5D%5D%2D%2D%3E--></url> <msgid>5839907284805129867</msgid> </xml>
XML格式讲解
ToUserName 消息接收方微信号,一般为公众平台账号微信号 FromUserName 消息发送方微信号 CreateTime 消息创建时间 MsgType 消息类型,链接为link Title 图文消息标题 Description 图文消息描述 Url 点击图文消息跳转链接 MsgId 消息ID号
回复消息
只介绍三种格式的消息:文本、图文、音乐。其中图文消息包括单条图文消息和多条图文消息,展示方式有一点点不同。
1. 文本消息格式
回复文本
后台格式:
<xml><tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BoIDrpjqASyTPnxRmpS9O_ruZGsfk%5D%5D%2D%2D%3E--></tousername><fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_680bdefc8c5d%5D%5D%2D%2D%3E--></fromusername><createtime>1359036631</createtime><msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Btext%5D%5D%2D%2D%3E--></msgtype><content><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%E3%80%90%E6%B7%B1%E5%9C%B3%E3%80%91%E5%A4%A9%E6%B0%94%E5%AE%9E%E5%86%B5%20%E6%B8%A9%E5%BA%A6%EF%BC%9A27%E2%84%83%20%E6%B9%BF%E5%BA%A6%EF%BC%9A59%25%20%E9%A3%8E%E9%80%9F%EF%BC%9A%E4%B8%9C%E5%8C%97%E9%A3%8E3%E7%BA%A7%0A11%E6%9C%8803%E6%97%A5%20%E5%91%A8%E6%97%A5%2027%E2%84%83~23%E2%84%83%20%E5%B0%8F%E9%9B%A8%20%E4%B8%9C%E5%8C%97%E9%A3%8E4-5%E7%BA%A7%0A11%E6%9C%8804%E6%97%A5%20%E5%91%A8%E4%B8%80%2026%E2%84%83~21%E2%84%83%20%E9%98%B5%E9%9B%A8%20%E5%BE%AE%E9%A3%8E%0A11%E6%9C%8805%E6%97%A5%20%E5%91%A8%E4%BA%8C%2027%E2%84%83~22%E2%84%83%20%E9%98%B4%20%E5%BE%AE%E9%A3%8E%5D%5D%2D%2D%3E--></content><funcflag>0</funcflag></xml>
XML格式讲解
FromUserName 消息发送方 ToUserName 消息接收方 CreateTime 消息创建时间 MsgType 消息类型,文本消息必须填写text Content 消息内容,大小限制在2048字节,字段为空为不合法请求 FuncFlag 星标字段
2. 图文消息格式
2.1 单条图文消息
回复单条图文
后台格式:
<xml> <tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BoIDrpjqASyTPnxRmpS9O_ruZGsfk%5D%5D%2D%2D%3E--></tousername> <fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_680bdefc8c5d%5D%5D%2D%2D%3E--></fromusername> <createtime>1359011899</createtime> <msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bnews%5D%5D%2D%2D%3E--></msgtype> <content><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></content> <articlecount>1</articlecount> <articles> <item><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5B%E8%8B%B9%E6%9E%9C%E4%BA%A7%E5%93%81%E4%BF%A1%E6%81%AF%E6%9F%A5%E8%AF%A2%5D%5D%2D%2D%3E--></title> <description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%E5%BA%8F%E5%88%97%E5%8F%B7%EF%BC%9AUSE%20IMEI%20NUMBER%0AIMEI%E5%8F%B7%EF%BC%9A358031058974471%0A%E8%AE%BE%E5%A4%87%E5%90%8D%E7%A7%B0%EF%BC%9AiPhone%205C%0A%E8%AE%BE%E5%A4%87%E9%A2%9C%E8%89%B2%EF%BC%9A%0A%E8%AE%BE%E5%A4%87%E5%AE%B9%E9%87%8F%EF%BC%9A%0A%E6%BF%80%E6%B4%BB%E7%8A%B6%E6%80%81%EF%BC%9A%E5%B7%B2%E6%BF%80%E6%B4%BB%0A%E7%94%B5%E8%AF%9D%E6%94%AF%E6%8C%81%EF%BC%9A%E6%9C%AA%E8%BF%87%E6%9C%9F%5B2014-01-13%5D%0A%E7%A1%AC%E4%BB%B6%E4%BF%9D%E4%BF%AE%EF%BC%9A%E6%9C%AA%E8%BF%87%E6%9C%9F%5B2014-10-14%5D%0A%E7%94%9F%E4%BA%A7%E5%B7%A5%E5%8E%82%EF%BC%9A%E4%B8%AD%E5%9B%BD%5D%5D%2D%2D%3E--> </description> <picurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bhttp%3A%2F%2Fwww.doucube.com%2Fweixin%2Fweather%2Ficon%2Fbanner.jpg%5D%5D%2D%2D%3E--></picurl> <url><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></url> </item> </articles> <funcflag>0</funcflag></xml>
2.2 多图文消息
回复多图文
后台数据格式
<xml> <tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BoIDrpjqASyTPnxRmpS9O_ruZGsfk%5D%5D%2D%2D%3E--></tousername> <fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_680bdefc8c5d%5D%5D%2D%2D%3E--></fromusername> <createtime>1359011829</createtime> <msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bnews%5D%5D%2D%2D%3E--></msgtype> <content><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></content> <articlecount>5</articlecount> <articles> <item><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%E3%80%90%E6%B7%B1%E5%9C%B3%E3%80%91%E5%A4%A9%E6%B0%94%E5%AE%9E%E5%86%B5%20%E6%B8%A9%E5%BA%A6%EF%BC%9A3%E2%84%83%20%E6%B9%BF%E5%BA%A6%EF%BC%9A43%EF%B9%AA%20%E9%A3%8E%E9%80%9F%EF%BC%9A%E8%A5%BF%E5%8D%97%E9%A3%8E2%E7%BA%A7%5D%5D%2D%2D%3E--></title> <description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></description><picurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bhttp%3A%2F%2Fwww.doucube.com%2Fweixin%2Fweather%2Ficon%2Fbanner.jpg%5D%5D%2D%2D%3E--></picurl> <url><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></url> </item> <item><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B06%E6%9C%8824%E6%97%A5%20%E5%91%A8%E5%9B%9B%202%E2%84%83~-7%E2%84%83%20%E6%99%B4%20%E5%8C%97%E9%A3%8E3-4%E7%BA%A7%E8%BD%AC%E4%B8%9C%E5%8D%97%E9%A3%8E%E5%B0%8F%E4%BA%8E3%E7%BA%A7%5D%5D%2D%2D%3E--></title> <description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></description> <picurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bhttp%3A%2F%2Fwww.doucube.com%2Fweixin%2Fweather%2Ficon%2Fd00.gif%5D%5D%2D%2D%3E--></picurl> <url><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></url> </item> <item><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B06%E6%9C%8825%E6%97%A5%20%E5%91%A8%E4%BA%94%20-1%E2%84%83~-8%E2%84%83%20%E6%99%B4%20%E4%B8%9C%E5%8D%97%E9%A3%8E%E5%B0%8F%E4%BA%8E3%E7%BA%A7%E8%BD%AC%E4%B8%9C%E5%8C%97%E9%A3%8E3-4%E7%BA%A7%5D%5D%2D%2D%3E--></title> <description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></description> <picurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bhttp%3A%2F%2Fwww.doucube.com%2Fweixin%2Fweather%2Ficon%2Fd00.gif%5D%5D%2D%2D%3E--></picurl> <url><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></url> </item> <item><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B06%E6%9C%8826%E6%97%A5%20%E5%91%A8%E5%85%AD%20-1%E2%84%83~-7%E2%84%83%20%E5%A4%9A%E4%BA%91%20%E4%B8%9C%E5%8C%97%E9%A3%8E3-4%E7%BA%A7%E8%BD%AC%E4%B8%9C%E5%8D%97%E9%A3%8E%E5%B0%8F%E4%BA%8E3%E7%BA%A7%5D%5D%2D%2D%3E--></title> <description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></description><picurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bhttp%3A%2F%2Fwww.doucube.com%2Fweixin%2Fweather%2Ficon%2Fd01.gif%5D%5D%2D%2D%3E--></picurl> <url><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></url> </item> <item><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B06%E6%9C%8827%E6%97%A5%20%E5%91%A8%E6%97%A5%200%E2%84%83~-6%E2%84%83%20%E5%A4%9A%E4%BA%91%20%E4%B8%9C%E5%8D%97%E9%A3%8E%E5%B0%8F%E4%BA%8E3%E7%BA%A7%E8%BD%AC%E4%B8%9C%E5%8C%97%E9%A3%8E3-4%E7%BA%A7%5D%5D%2D%2D%3E--></title> <description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></description><picurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bhttp%3A%2F%2Fwww.doucube.com%2Fweixin%2Fweather%2Ficon%2Fd01.gif%5D%5D%2D%2D%3E--></picurl> <url><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></url> </item> </articles> <funcflag>0</funcflag></xml>
XML格式讲解
FromUserName 消息发送方 ToUserName 消息接收方 CreateTime 消息创建时间 MsgType 消息类型,图文消息必须填写news Content 消息内容,图文消息可填空 ArticleCount 图文消息个数,限制为10条以内 Articles 多条图文消息信息,默认第一个item为大图 Title 图文消息标题 Description 图文消息描述 PicUrl 图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80 Url 点击图文消息跳转链接FuncFlag 星标字段
3. 音乐消息
回复音乐消息
后台格式:
<xml> <tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BollB4jqgdO_cRnVXk_wRnSywgtQ8%5D%5D%2D%2D%3E--></tousername> <fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_b629c48b653e%5D%5D%2D%2D%3E--></fromusername> <createtime>1372310544</createtime> <msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bmusic%5D%5D%2D%2D%3E--></msgtype> <music><title><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%E6%9C%80%E7%82%AB%E6%B0%91%E6%97%8F%E9%A3%8E%5D%5D%2D%2D%3E--></title> <description><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%E5%87%A4%E5%87%B0%E4%BC%A0%E5%A5%87%5D%5D%2D%2D%3E--></description> <musicurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bhttp%3A%2F%2Fzj189.cn%2Fzj%2Fdownload%2Fmusic%2Fzxmzf.mp3%5D%5D%2D%2D%3E--></musicurl> <hqmusicurl><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bhttp%3A%2F%2Fzj189.cn%2Fzj%2Fdownload%2Fmusic%2Fzxmzf.mp3%5D%5D%2D%2D%3E--></hqmusicurl> </music> <funcflag>0</funcflag></xml>
XML格式讲解
ToUserName 接收方帐号(收到的OpenID)FromUserName 开发者微信号CreateTime 消息创建时间MsgType 消息类型,此处为music Title 音乐标题 Description 音乐描述 MusicUrl 音乐链接 HQMusicUrl 高质量音乐链接,WIFI环境优先使用该链接播放音乐FuncFlag 位0x0001被标志时,星标刚收到的消息。
事件消息类型
目前用户在关注和取消关注,以及点击菜单的时候会自动向公众平台发送事件推送消息:
1. 关注事件
<xml> <tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_b629c48b653e%5D%5D%2D%2D%3E--></tousername> <fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BollB4jv7LA3tydjviJp5V9qTU_kA%5D%5D%2D%2D%3E--></fromusername> <createtime>1372307736</createtime> <msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bevent%5D%5D%2D%2D%3E--></msgtype> <event><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bsubscribe%5D%5D%2D%2D%3E--></event> <eventkey><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></eventkey></xml>
2. 取消关注事件
<xml> <tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_b629c48b653e%5D%5D%2D%2D%3E--></tousername> <fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BollB4jqgdO_cRnVXk_wRnSywgtQ8%5D%5D%2D%2D%3E--></fromusername> <createtime>1372309890</createtime> <msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bevent%5D%5D%2D%2D%3E--></msgtype> <event><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bunsubscribe%5D%5D%2D%2D%3E--></event> <eventkey><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%5D%5D%2D%2D%3E--></eventkey></xml>
3. 菜单点击事件
<xml> <tousername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bgh_680bdefc8c5d%5D%5D%2D%2D%3E--></tousername> <fromusername><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BoIDrpjqASyTPnxRmpS9O_ruZGsfk%5D%5D%2D%2D%3E--></fromusername> <createtime>1377886191</createtime> <msgtype><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5Bevent%5D%5D%2D%2D%3E--></msgtype> <event><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5BCLICK%5D%5D%2D%2D%3E--></event> <eventkey><!--{cke_protected}{C}%3C!%2D%2D%5BCDATA%5B%E5%A4%A9%E6%B0%94%E6%B7%B1%E5%9C%B3%5D%5D%2D%2D%3E--></eventkey></xml>
XML格式讲解
ToUserName 接收方微信号FromUserName 发送方微信号,若为普通用户,则是一个OpenIDCreateTime 消息创建时间MsgType 消息类型,eventEvent 事件类型,subscribe(订阅)、unsubscribe(取消订阅)、CLICK(自定义菜单点击事件)EventKey 事件KEY值,与自定义菜单接口中KEY值对应
第四章 实现天气预报功能
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号