You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
git-test/core/responsepassive.lib.php

372 lines
14 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
namespace LaneWeChat\Core;
/**
* 发送被动响应
* 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>
</xml>
XML;
return sprintf($template, $fromusername, $tousername, time(), $content, $funcFlag);
}
/**
* @description 图片消息
* @param $fromusername 发送方的OpenId
* @param $tousername 接收方的OpenId
* @param $mediaId 通过上传多媒体文件得到的id
* @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string 返回XML格式的图片消息
*/
public static function image($fromusername, $tousername, $mediaId, $funcFlag=0) {
$template = <<<XML
<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<Image>
<MediaId><![CDATA[%s]]></MediaId>
</Image>
<FuncFlag>%s</FuncFlag>
</xml>
XML;
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
<?php
namespace LaneWeChat\Core;
/**
* 发送被动响应
* 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>
</xml>
XML;
return sprintf($template, $fromusername, $tousername, time(), $content, $funcFlag);
}
/**
* @description 图片消息
* @param $fromusername 发送方的OpenId
* @param $tousername 接收方的OpenId
* @param $mediaId 通过上传多媒体文件得到的id
* @param $funcFlag 默认为0设为1时星标刚才收到的消息
* @return string 返回XML格式的图片消息
*/
public static function image($fromusername, $tousername, $mediaId, $funcFlag=0) {
$template = <<<XML
<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<Image>
<MediaId><![CDATA[%s]]></MediaId>
</Image>
<FuncFlag>%s</FuncFlag>
</xml>
XML;
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