Update responsepassive.lib.php

src
pfspx4a7z 6 months ago
parent 82d49db4b9
commit fc93464211

@ -1,5 +1,6 @@
<?php <?php
namespace LaneWeChat\Core; namespace LaneWeChat\Core;
/** /**
* 发送被动响应 * 发送被动响应
* Created by Lane. * Created by Lane.
@ -7,19 +8,19 @@ namespace LaneWeChat\Core;
* Date: 13-12-19 * Date: 13-12-19
* Time: 下午3:01 * Time: 下午3:01
* Mail: lixuan868686@163.com * Mail: lixuan868686@163.com
* Website: http://www.lanecn.com * Website: http://www.lanecn.com
*/ */
class ResponsePassive{ class ResponsePassive {
/** /**
* @descrpition 文本 * @description 文本消息
* @param $fromusername * @param $fromusername 发送方的OpenId
* @param $tousername * @param $tousername 接收方的OpenId
* @param $content 回复的消息内容换行在content中能够换行微信客户端就支持换行显示 * @param $content 回复的消息内容换行在content中能够换行微信客户端就支持换行显示
* @param $funcFlag 默认为0设为1时星标刚才收到的消息 * @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string * @return string 返回XML格式的文本消息
*/ */
public static function text($fromusername, $tousername, $content, $funcFlag=0){ public static function text($fromusername, $tousername, $content, $funcFlag=0) {
$template = <<<XML $template = <<<XML
<xml> <xml>
<ToUserName><![CDATA[%s]]></ToUserName> <ToUserName><![CDATA[%s]]></ToUserName>
@ -34,14 +35,14 @@ XML;
} }
/** /**
* @descrpition 图片 * @description 图片消息
* @param $fromusername * @param $fromusername 发送方的OpenId
* @param $tousername * @param $tousername 接收方的OpenId
* @param $mediaId 通过上传多媒体文件得到的id * @param $mediaId 通过上传多媒体文件得到的id
* @param $funcFlag 默认为0设为1时星标刚才收到的消息 * @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string * @return string 返回XML格式的图片消息
*/ */
public static function image($fromusername, $tousername, $mediaId, $funcFlag=0){ public static function image($fromusername, $tousername, $mediaId, $funcFlag=0) {
$template = <<<XML $template = <<<XML
<xml> <xml>
<ToUserName><![CDATA[%s]]></ToUserName> <ToUserName><![CDATA[%s]]></ToUserName>
@ -58,14 +59,14 @@ XML;
} }
/** /**
* @descrpition 语音 * @description 语音消息
* @param $fromusername * @param $fromusername 发送方的OpenId
* @param $tousername * @param $tousername 接收方的OpenId
* @param $mediaId 通过上传多媒体文件得到的id * @param $mediaId 通过上传多媒体文件得到的id
* @param $funcFlag 默认为0设为1时星标刚才收到的消息 * @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string * @return string 返回XML格式的语音消息
*/ */
public static function voice($fromusername, $tousername, $mediaId, $funcFlag=0){ public static function voice($fromusername, $tousername, $mediaId, $funcFlag=0) {
$template = <<<XML $template = <<<XML
<xml> <xml>
<ToUserName><![CDATA[%s]]></ToUserName> <ToUserName><![CDATA[%s]]></ToUserName>
@ -82,16 +83,16 @@ XML;
} }
/** /**
* @descrpition 视频 * @description 视频消息
* @param $fromusername * @param $fromusername 发送方的OpenId
* @param $tousername * @param $tousername 接收方的OpenId
* @param $mediaId 通过上传多媒体文件得到的id * @param $mediaId 通过上传多媒体文件得到的id
* @param $title 标题 * @param $title 标题
* @param $description 描述 * @param $description 描述
* @param $funcFlag 默认为0设为1时星标刚才收到的消息 * @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string * @return string 返回XML格式的视频消息
*/ */
public static function video($fromusername, $tousername, $mediaId, $title, $description, $funcFlag=0){ public static function video($fromusername, $tousername, $mediaId, $title, $description, $funcFlag=0) {
$template = <<<XML $template = <<<XML
<xml> <xml>
<ToUserName><![CDATA[%s]]></ToUserName> <ToUserName><![CDATA[%s]]></ToUserName>
@ -110,18 +111,18 @@ XML;
} }
/** /**
* @descrpition 音乐 * @description 音乐消息
* @param $fromusername * @param $fromusername 发送方的OpenId
* @param $tousername * @param $tousername 接收方的OpenId
* @param $title 标题 * @param $title 标题
* @param $description 描述 * @param $description 描述
* @param $musicUrl 音乐链接 * @param $musicUrl 音乐链接
* @param $hqMusicUrl 高质量音乐链接WIFI环境优先使用该链接播放音乐 * @param $hqMusicUrl 高质量音乐链接WIFI环境优先使用该链接播放音乐
* @param $thumbMediaId 缩略图的媒体id通过上传多媒体文件得到的id * @param $thumbMediaId 缩略图的媒体id通过上传多媒体文件得到的id
* @param $funcFlag 默认为0设为1时星标刚才收到的消息 * @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string * @return string 返回XML格式的音乐消息
*/ */
public static function music($fromusername, $tousername, $title, $description, $musicUrl, $hqMusicUrl, $thumbMediaId, $funcFlag=0){ public static function music($fromusername, $tousername, $title, $description, $musicUrl, $hqMusicUrl, $thumbMediaId, $funcFlag=0) {
$template = <<<XML $template = <<<XML
<xml> <xml>
<ToUserName><![CDATA[%s]]></ToUserName> <ToUserName><![CDATA[%s]]></ToUserName>
@ -142,15 +143,15 @@ XML;
} }
/** /**
* @descrpition 图文消息 - 单个项目的准备工作用于内嵌到self::news()中。现调用本方法再调用self::news() * @description 图文消息 - 单个项目的准备工作用于内嵌到self::news()中。现调用本方法再调用self::news()
* 多条图文消息信息默认第一个item为大图,注意如果调用本方法得到的数组总项数超过10则将会无响应 * 多条图文消息信息默认第一个item为大图,注意如果调用本方法得到的数组总项数超过10则将会无响应
* @param $title 标题 * @param $title 标题
* @param $description 描述 * @param $description 描述
* @param $picUrl 图片链接支持JPG、PNG格式较好的效果为大图360*200小图200*200 * @param $picUrl 图片链接支持JPG、PNG格式较好的效果为大图360*200小图200*200
* @param $url 点击图文消息跳转链接 * @param $url 点击图文消息跳转链接
* @return string * @return string 返回XML格式的图文消息项
*/ */
public static function newsItem($title, $description, $picUrl, $url){ public static function newsItem($title, $description, $picUrl, $url) {
$template = <<<XML $template = <<<XML
<item> <item>
<Title><![CDATA[%s]]></Title> <Title><![CDATA[%s]]></Title>
@ -163,19 +164,18 @@ XML;
} }
/** /**
* @descrpition 图文 - 先调用self::newsItem()再调用本方法 * @description 图文消息 - 先调用self::newsItem()再调用本方法
* @param $fromusername * @param $fromusername 发送方的OpenId
* @param $tousername * @param $tousername 接收方的OpenId
* @param $item 数组每个项由self::newsItem()返回 * @param $item 数组每个项由self::newsItem()返回
* @param $funcFlag 默认为0设为1时星标刚才收到的消息 * @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string * @return string 返回XML格式的图文消息
*/ */
public static function news($fromusername, $tousername, $item, $funcFlag=0){ public static function news($fromusername, $tousername, $item, $funcFlag=0) {
//多条图文消息信息默认第一个item为大图,注意如果图文数超过10则将会无响应 //多条图文消息信息默认第一个item为大图,注意如果图文数超过10则将会无响应
if(count($item) >= 10){ if(count($item) >= 10){
$request = array('fromusername'=>$fromusername, 'tousername'=>$tousername); $request = array('fromusername'=>$fromusername, 'tousername'=>$tousername);
return Msg::returnErrMsg(MsgConstant::ERROR_NEWS_ITEM_COUNT_MORE_TEN, '图文消息的项数不能超过10条', $request); return Msg::returnErrMsg(MsgConstant::ERROR_NEWS_ITEM_COUNT_MORE_TEN, '图文消息的项数不能超过10条', $request);
} }
$template = <<<XML $template = <<<XML
<xml> <xml>
@ -183,32 +183,190 @@ XML;
<FromUserName><![CDATA[%s]]></FromUserName> <FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime> <CreateTime>%s</CreateTime>
<MsgType><![CDATA[news]]></MsgType> <MsgType><![CDATA[news]]></MsgType>
<ArticleCount>%s</ArticleCount> <ArticleCount>%s</ArticleCount
<Articles> <?php
%s namespace LaneWeChat\Core;
</Articles>
/**
* 发送被动响应
* Created by Lane.
* User: lane
* Date: 13-12-19
* Time: 下午3:01
* Mail: lixuan868686@163.com
* Website: http://www.lanecn.com
*/
class ResponsePassive {
/**
* @description 文本消息
* @param $fromusername 发送方的OpenId
* @param $tousername 接收方的OpenId
* @param $content 回复的消息内容换行在content中能够换行微信客户端就支持换行显示
* @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string 返回XML格式的文本消息
*/
public static function text($fromusername, $tousername, $content, $funcFlag=0) {
$template = <<<XML
<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>%s</FuncFlag> <FuncFlag>%s</FuncFlag>
</xml> </xml>
XML; XML;
return sprintf($template, $fromusername, $tousername, time(), count($item), implode($item), $funcFlag); return sprintf($template, $fromusername, $tousername, time(), $content, $funcFlag);
} }
/** /**
* 将消息转发到多客服 * @description 图片消息
* 如果公众号处于开发模式需要在接收到用户发送的消息时返回一个MsgType为transfer_customer_service的消息微信服务器在收到这条消息时会把这次发送的消息转到多客服系统。用户被客服接入以后客服关闭会话以前处于会话过程中用户发送的消息均会被直接转发至客服系统。 * @param $fromusername 发送方的OpenId
* @param $fromusername * @param $tousername 接收方的OpenId
* @param $tousername * @param $mediaId 通过上传多媒体文件得到的id
* @return string * @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string 返回XML格式的图片消息
*/ */
public static function forwardToCustomService($fromusername, $tousername){ public static function image($fromusername, $tousername, $mediaId, $funcFlag=0) {
$template = <<<XML $template = <<<XML
<xml> <xml>
<ToUserName><![CDATA[%s]]></ToUserName> <ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName> <FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime> <CreateTime>%s</CreateTime>
<MsgType><![CDATA[transfer_customer_service]]></MsgType> <MsgType><![CDATA[image]]></MsgType>
<Image>
<MediaId><![CDATA[%s]]></MediaId>
</Image>
<FuncFlag>%s</FuncFlag>
</xml> </xml>
XML; XML;
return sprintf($template, $fromusername, $tousername, time()); return sprintf($template, $fromusername, $tousername, time(), $mediaId, $funcFlag);
} }
}
/**
* @description 语音消息
* @param $fromusername 发送方的OpenId
* @param $tousername 接收方的OpenId
* @param $mediaId 通过上传多媒体文件得到的id
* @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string 返回XML格式的语音消息
*/
public static function voice($fromusername, $tousername, $mediaId, $funcFlag=0) {
$template = <<<XML
<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<Voice>
<MediaId><![CDATA[%s]]></MediaId>
</Voice>
<FuncFlag>%s</FuncFlag>
</xml>
XML;
return sprintf($template, $fromusername, $tousername, time(), $mediaId, $funcFlag);
}
/**
* @description 视频消息
* @param $fromusername 发送方的OpenId
* @param $tousername 接收方的OpenId
* @param $mediaId 通过上传多媒体文件得到的id
* @param $title 标题
* @param $description 描述
* @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string 返回XML格式的视频消息
*/
public static function video($fromusername, $tousername, $mediaId, $title, $description, $funcFlag=0) {
$template = <<<XML
<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[video]]></MsgType>
<Video>
<MediaId><![CDATA[%s]]></MediaId>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
</Video>
<FuncFlag>%s</FuncFlag>
</xml>
XML;
return sprintf($template, $fromusername, $tousername, time(), $mediaId, $title, $description, $funcFlag);
}
/**
* @description 音乐消息
* @param $fromusername 发送方的OpenId
* @param $tousername 接收方的OpenId
* @param $title 标题
* @param $description 描述
* @param $musicUrl 音乐链接
* @param $hqMusicUrl 高质量音乐链接WIFI环境优先使用该链接播放音乐
* @param $thumbMediaId 缩略图的媒体id通过上传多媒体文件得到的id
* @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string 返回XML格式的音乐消息
*/
public static function music($fromusername, $tousername, $title, $description, $musicUrl, $hqMusicUrl, $thumbMediaId, $funcFlag=0) {
$template = <<<XML
<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[music]]></MsgType>
<Music>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<MusicUrl><![CDATA[%s]]></MusicUrl>
<HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
<ThumbMediaId><![CDATA[%s]]></ThumbMediaId>
</Music>
<FuncFlag>%s</FuncFlag>
</xml>
XML;
return sprintf($template, $fromusername, $tousername, time(), $title, $description, $musicUrl, $hqMusicUrl, $thumbMediaId, $funcFlag);
}
/**
* @description 图文消息 - 单个项目的准备工作用于内嵌到self::news()中。现调用本方法再调用self::news()
* 多条图文消息信息默认第一个item为大图,注意如果调用本方法得到的数组总项数超过10则将会无响应
* @param $title 标题
* @param $description 描述
* @param $picUrl 图片链接支持JPG、PNG格式较好的效果为大图360*200小图200*200
* @param $url 点击图文消息跳转链接
* @return string 返回XML格式的图文消息项
*/
public static function newsItem($title, $description, $picUrl, $url) {
$template = <<<XML
<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>
XML;
return sprintf($template, $title, $description, $picUrl, $url);
}
/**
* @description 图文消息 - 先调用self::newsItem()再调用本方法
* @param $fromusername 发送方的OpenId
* @param $tousername 接收方的OpenId
* @param $item 数组每个项由self::newsItem()返回
* @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string 返回XML格式的图文消息
*/
public static function news($fromusername, $tousername, $item, $funcFlag=0) {
//多条图文消息信息默认第一个item为大图,注意如果图文数超过10则将会无响应
if(count($item) >= 10){
$request = array('fromusername'=>$fromusername, 'tousername'=>$tousername);
return Msg::returnErrMsg(MsgConstant::ERROR_NEWS_ITEM_COUNT_MORE_TEN, '图文消息的项数不能超过10条', $request);
}
$template = <<<XML
<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>%s</ArticleCount
Loading…
Cancel
Save