微信公众平台API测试——接收视频消息

一、简介


当普通微信用户向公众账号发消息时,微信服务器将用户发送的消息封装成XML数据包,通过POST消息发送到开发者的URL上。

    
微信服务器在五秒内收不到服务器的响应会断掉连接,并且重新发起请求,总共重试三次。
关于重试的消息排重,推荐使用msgid排重。

    
假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。

当前支持如下的普通消息:

  • 1 文本消息

  • 2 图片消息

  • 3 语音消息

  • 4 视频消息

  • 5 地理位置消息

  • 6 链接消息

二、适用场景

普通微信用户通过微信给公众账号发送的视频时,微信服务器将此视频信息封装为视频消息发送到开发者URL。服务器接收到此消息后,可以通过解析到的MediaId调用多媒体文件下载接口获取视频数据,根据解析到的ThumbMediaId可以调用多媒体文件下载接口获取视频消息缩略图。

三、消息格式说明


1 <xml>
2 <ToUserName><![CDATA[toUser]]></ToUserName>
3 <FromUserName><![CDATA[fromUser]]></FromUserName>
4 <CreateTime>1357290913</CreateTime>
5 <MsgType><![CDATA[video]]></MsgType>
6 <MediaId><![CDATA[media_id]]></MediaId>
7 <ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>
8 <MsgId>1234567890123456</MsgId>
9 </xml>



























参数 描述
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType 视频为video
MediaId 视频消息媒体id,可以调用多媒体文件下载接口拉取数据。
ThumbMediaId 视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。
MsgId 消息id,64位整型

四、代码示例


 1 <?php
2 /**
3 * wechat php test
4 */
5
6 //define your token
7 define("TOKEN", "weixin");
8 $wechatObj = new wechatCallbackapiTest();
9 $wechatObj->responseMsg();
10
11 class wechatCallbackapiTest
12 {
13 public function responseMsg()
14 {
15 //get post data, May be due to the different environments
16 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
17
18 if (!empty($postStr)){
19 $postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);
20 $MSG_TYPE = trim($postObj->MsgType);
21
22 switch ($MSG_TYPE) {
23 case "text":
24 $resultStr = $this->handleText($postObj);
25 break;
26 case "image":
27 $resultStr = $this->handleImage($postObj);
28 break;
29 case "voice":
30 $resultStr = $this->handleVoice($postObj);
31 break;
32 case "video":
33 $resultStr = $this->handleVideo($postObj);
34 break;
35 default:
36 $resultStr = "Unknow message type: " . $MSG_TYPE;
37 break;
38 }
39 //echo $postStr;
40 echo $resultStr;
41 }else {
42 echo "";
43 exit;
44 }
45 }
46
47 private function handleVideo($postObj)
48 {
49 //获取视频消息媒体id,可以调用多媒体文件下载接口拉取视频
50 $mediaID = trim($postObj->MediaId);
51
52 //获取视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取缩略图
53 $thumbMediaId = trim($postObj->ThumbMediaId);
54
55 if(!empty($mediaID)){
56 $contentStr = "MediaId : " . $mediaID ."\n" . "ThumbMediaId : " . $thumbMediaId . "\n";
57 $resultStr = $this->responseText($postObj, $contentStr);
58 }else{
59 $resultStr = "MediaId is empty.";
60 }
61
62 return $resultStr;
63 }
64
65 private function responseText($object, $content, $flag=0)
66 {
67 $textTpl = "<xml>
68 <ToUserName><![CDATA[%s]]></ToUserName>
69 <FromUserName><![CDATA[%s]]></FromUserName>
70 <CreateTime>%s</CreateTime>
71 <MsgType><![CDATA[text]]></MsgType>
72 <Content><![CDATA[%s]]></Content>
73 <FuncFlag>%d</FuncFlag>
74 </xml>";
75 $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag);
76 return $resultStr;
77 }
78
79 }
80
81 ?>

微信公众平台API测试——接收视频消息,码迷,mamicode.com

时间: 2024-09-30 15:57:53

微信公众平台API测试——接收视频消息的相关文章

微信公众平台API测试——接收文本消息

一.简介 当普通微信用户向公众账号发消息时,微信服务器将用户发送的消息封装成XML数据包,通过POST消息发送到开发者的URL上.      微信服务器在五秒内收不到服务器的响应会断掉连接,并且重新发起请求,总共重试三次.关于重试的消息排重,推荐使用msgid排重.      假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试. 当前支持如下的普通消息: 1 文本消息 2 图片消息 3 语音消息 4 视频消息 5 地理位置消息 6 链接消息 二

微信公众平台API测试——接收链接消息

一.简介 当普通微信用户向公众账号发消息时,微信服务器将用户发送的消息封装成XML数据包,通过POST消息发送到开发者的URL上.      微信服务器在五秒内收不到服务器的响应会断掉连接,并且重新发起请求,总共重试三次.关于重试的消息排重,推荐使用msgid排重.      假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试. 当前支持如下的普通消息: 1 文本消息 2 图片消息 3 语音消息 4 视频消息 5 地理位置消息 6 链接消息 二

微信公众平台API测试——接收地理位置消息

一.简介 当普通微信用户向公众账号发消息时,微信服务器将用户发送的消息封装成XML数据包,通过POST消息发送到开发者的URL上.      微信服务器在五秒内收不到服务器的响应会断掉连接,并且重新发起请求,总共重试三次.关于重试的消息排重,推荐使用msgid排重.      假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试. 当前支持如下的普通消息: 1 文本消息 2 图片消息 3 语音消息 4 视频消息 5 地理位置消息 6 链接消息 二

微信公众平台API测试——接收图片消息

一.简介 当普通微信用户向公众账号发消息时,微信服务器将用户发送的消息封装成XML数据包,通过POST消息发送到开发者的URL上.      微信服务器在五秒内收不到服务器的响应会断掉连接,并且重新发起请求,总共重试三次.关于重试的消息排重,推荐使用msgid排重.      假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试. 当前支持如下的普通消息: 1 文本消息 2 图片消息 3 语音消息 4 视频消息 5 地理位置消息 6 链接消息 二

微信公众平台API测试——接收语音消息

一.简介 当普通微信用户向公众账号发消息时,微信服务器将用户发送的消息封装成XML数据包,通过POST消息发送到开发者的URL上.      微信服务器在五秒内收不到服务器的响应会断掉连接,并且重新发起请求,总共重试三次.关于重试的消息排重,推荐使用msgid排重.      假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试. 当前支持如下的普通消息: 1 文本消息 2 图片消息 3 语音消息 4 视频消息 5 地理位置消息 6 链接消息 二

微信公众平台API测试 ——全局返回码

全局返回码说明[1] 公众号每次调用接口时,可能获得正确或错误的返回码,开发者可以根据返回码信息调试接口,排查错误. 全局返回码说明如下: 返回码 说明 -1 系统繁忙 0 请求成功 40001 获取access_token时AppSecret错误,或者access_token无效 40002 不合法的凭证类型 40003 不合法的OpenID 40004 不合法的媒体文件类型 40005 不合法的文件类型 40006 不合法的文件大小 40007 不合法的媒体文件id 40008 不合法的消息

微信公众号API测试——接口调用频率限制

接口频率限制[1] 公众号调用接口并不是无限制的.为了防止公众号的程序错误而引发微信服务器负载异常,默认情况下,每个公众号调用接口都不能超过一定限制,当超过一定限制时,调用对应接口会收到如下错误返回码: {"errcode":45009,"errmsg":"api freq out of limit"} 各接口调用频率限制如下: 接口 每日限额 获取access_token 2000 自定义菜单创建 1000 自定义菜单查询 10000 自定义菜

搭建可调试的微信公众平台本地测试环境

背景: 最近在筹建一个协同开发的开源项目NWechat,项目开始前,有几样事情要准备. 1)项目管理系统的选定: 2)源码版本控制系统的选定: 3)开发环境的搭建. 4)团队的建设. 开发环境搭建便是项目启动前,要做的几件事情之一. 一.问题是这样的 在微信开发的时候,必须要输入URL,而该URL必须是外网域名. 这就造成了一个问题,我们在开发环境下不能测试代码,更谈不上调试代码了. 二.大家是这么做的 我问过一些开发者正在使用的方案: 1)搭建测试服务器. 在开发环境编码后,提交到测试服务器测

[转]微信公众平台(测试接口)开发前的准备工作(转载自walkingmanc的专栏)

本文转自:http://blog.csdn.net/jiangweicpu/article/details/21228949 http://blog.csdn.net/walkingmanc/article/details/21457097第二讲 探秘微信公众号 1.   申请微信公众号 我们要进行微信公众平台的开发,第一步当然是要有公众号了.什么?不知道什么是微信公众号,看来你还要先回炉炼炼了,呵呵.通俗的说,我们微信平台就好像是一个大社会,里面有个体人,也有各种组织机构.你自己使用的普通微信