微信公众平台常用接口-接收用户普通消息
原创微信公众账号接收用户发送的常用的消息类型有文本(包括表情)、图片、语音、地理位置等。下面分别进行介绍。
文本消息
用户向微信公众账号发送文本消息的示例如图 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
- 上一篇:微信公众平台常用接口-消息交互原理分析
- 下一篇:微信公众平台常用接口-自动回复消息
阅读推荐
更多...- 商务礼仪是客情关系的润滑剂,建立客户信任,实现长期合作 2023-04-01
- 把握处理异议的时机——销售技巧 2023-03-04
- 认识微信公众平台 2023-07-16
- .售管理者行为能力要求,提升销售业绩 2023-03-23
- 微视频——低成本营销利器 2023-07-16
- [微信创业]微信创业的盈利模式,病毒营销 2023-07-12
- 创业机会在哪里 2023-10-08
- (互联网+思维)产品研发:找到你的社群 2022-07-27
- 快速增粉和引流策略,微信导航增加曝光 2023-07-13
- (互联网+时代)趋势 3:产业金融化 2022-07-27
- 「互联网+」视频营销,New Balance 英美产系列巡展:致匠心 2022-07-27
- 特殊的催款方式——电话催款——销售技巧 2023-03-04
- 打造属于自己的销售神话 客户喜欢什么样的销售? 2023-05-19
- 大众创业、万众创新:新常态下的经济增长新引擎 2023-07-13
- 供应链管理:别让售后拖累了你的生意 2022-07-23
- 微博营销案例 2023-07-16
- 文化产品的销售策略与案例 2023-07-13
- 内容雕琢——标题、图片和正文的打磨,图片的精雕 2023-05-30