微信公众平台常用接口-接收用户普通消息
原创微信公众账号接收用户发送的常用的消息类型有文本(包括表情)、图片、语音、地理位置等。下面分别进行介绍。
文本消息
用户向微信公众账号发送文本消息的示例如图 4-1 所示。
图 4-1 用户发送文本消息
用户发送文本消息时,微信公众账号接收到的 XML 数据格式如下所示:
用户发送的文本消息的参数及描述如表 4-1 所示。
表 4-1 文本消息的参数及描述
图片消息
用户向微信公众账号发送图片消息的示例如图 4-2 所示。
图 4-2 用户发送图片消息
用户发送图片消息时,微信公众账号接收到的 XML 数据格式如下所示:
用户发送图片消息的参数及描述如表 4-2 所示。
表 4-2 图片消息的参数及描述
语音消息
用户向微信公众账号发送语音消息的示例如图 4-3 所示。
图 4-3 用户发送语音消息
用户发送语音消息时,微信公众账号接收到的 XML 数据格式如下所示:
用户发送的语音消息的参数及描述如表 4-3 所示。
表 4-3 语音消息的参数及描述
地理位置消息
用户向微信公众账号发送地理位置消息的示例如图 4-4 所示。
图 4-4 用户发送地理位置消息
用户发送地理位置消息时,微信公众账号接收到的 XML 数据格式如下所示:
用户发送的地理位置消息的参数及描述如表 4-4 所示。
表 4-4 地理位置消息的参数及描述
接收消息代码实现
本节将上面的各种消息类型用代码实现并且做出相应的回复处理。代码如下所示:
<?php
//
// 接收用户消息
// 微信公众账号接收到用户的消息类型判断
//
define(「TOKEN」, 「weixin」);
$wechatObj = new wechatCallbackapiTest();
if (!isset($_GET[『echostr』])) {
$wechatObj->responseMsg();
}else{
$wechatObj->valid();
}
class wechatCallbackapiTest
{
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 = 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);
$RX_TYPE = trim($postObj->MsgType);
//用户发送的消息类型判断
switch ($RX_TYPE)
{
case 「text」: //文本消息
$result = $this->receiveText($postObj);
break;
case 「image」: //图片消息
$result = $this->receiveImage($postObj);
break;
case 「voice」: //语音消息
$result = $this->receiveVoice($postObj);
break;
case 「video」: //视频消息
$result = $this->receiveVideo($postObj);
break;
case 「location」://位置消息
$result = $this->receiveLocation($postObj);
break;
case 「link」: //链接消息
$result = $this->receiveLink($postObj);
break;
default:
$result = 「unknow msg type: 」.$RX_TYPE;
break;
}
echo $result;
}else {
echo 「」;
exit;
}
}
/*
* 接收文本消息
*/
private function receiveText($object)
{
$content = 「你发送的是文本,内容为:」.$object->Content;
$result = $this->transmitText($object, $content);
return $result;
}
/*
* 接收图片消息
*/
private function receiveImage($object)
{
$content = 「你发送的是图片,地址为:」.$object->PicUrl;
$result = $this->transmitText($object, $content);
return $result;
}
/*
* 接收语音消息
*/
private function receiveVoice($object)
{
$content = 「你发送的是语音,媒体 ID 为:」.$object->MediaId;
$result = $this->transmitText($object, $content);
return $result;
}
/*
* 接收视频消息
*/
private function receiveVideo($object)
{
$content = 「你发送的是视频,媒体 ID 为:」.$object->MediaId;
$result = $this->transmitText($object, $content);
return $result;
}
/*
* 接收位置消息
*/
private function receiveLocation($object)
{
$content = 「你发送的是位置,纬度为:」.$object->Location_X.「;经度为:
」.$object->Location_Y.「;缩放级别为:」.$object->Scale.「;位置为:」.$object->Label;
$result = $this->transmitText($object, $content);
return $result;
}
/*
* 接收链接消息
*/
private function receiveLink($object)
{
$content = 「你发送的是链接,标题为:」.$object->Title.「;内容为:
」.$object->Description.「;链接地址为:」.$object->Url;
$result = $this->transmitText($object, $content);
return $result;
}
/*
* 回复文本消息
*/
private function transmitText($object, $content)
{
$textTpl = 「
在 responseMsg()方法中,先提取消息类型 $postObj->MsgType,从而实现各种消息类型的分离。在类 wechatCallbackapiTest 中,为每种消息类型定义了接收方法函数。在每个方法中,返回消息的主要特征值,组成文本信息作为内容回复。
版权保护: 本文由 李斯特 原创,转载请保留链接: https://www.wechatadd.com/artdet/8919
- 上一篇:微信公众平台常用接口-消息交互原理分析
- 下一篇:微信公众平台常用接口-自动回复消息
阅读推荐
更多...- 「互联网 +」从消费互联到产业互联 2022-07-27
- 关于影响力的最后一句话——销售技巧 2023-03-04
- 为什么说客户的质疑是你胜出的机会?让您的销售业绩高速增长! 2023-05-21
- 销售最忌讳独行,为什么销售要团队作战? 2023-05-22
- 商业模式设计的方法 2024-02-12
- 销售绝招:深入客户技能 2023-03-14
- 微商引流的策略与渠道,线上引流的优势 2023-07-13
- 销售冠军不告诉你的 5 种时间管理秘诀,客户业绩增长了100% 2023-05-19
- 微信朋友圈运营策略,在朋友圈中建立关系的8种方法 2023-07-03
- 战略导向型销售人员薪酬激励的探究 2023-05-20
- 三句话找到目标客户,时间只给对的人,为您的生意带来巨大成功 2023-05-19
- 多个朋友多条路——销售技巧 2023-03-04
- 「微商经验」运用正确的技术掌握正确的数据 2023-09-09
- 「销售团队管理」勤检查:苛求过程,释怀结果 2023-03-04
- 优良的组织结构才能出效益——组织管理 2023-07-18
- 「抖商经验」线上网店 2023-02-12
- 让业绩高速增长! 一份完美的产品介绍有哪些原则? 2023-05-19
- 全面解读微信5.0,微信公众平台数据统计功能:更全面、更详细地查看数据 2023-07-08