您的位置:首页 > 移动开发 > 微信开发

微信之发送文本信息和图文信息

2015-05-09 10:50 309 查看
微信发送信息也给出了示例代码;修改下就行,就是拼接下字符串。

/*
*消息
*$fromUsername  开发者微信号
*$toUsername  接收方帐号
*$keyword 关键字
*$contentStr 回复的消息内容
*/
public function send_text($fromUsername, $toUsername, $contentStr)
{
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>";
//<FuncFlag>0</FuncFlag>
$time = time();
$result = sprintf($textTpl, $fromUsername, $toUsername, $time, $contentStr);
return $result;

}


/*
*回复图文消息
*$fromUsername  开发者微信号
*$toUsername  接收方帐号
*$keyword 关键字
*$num 回复图文消息数量,需要大于1
*$contentStr 回复的消息内容
*/
public function send_articles($fromUsername, $toUsername, $contentArr)
{
$articlesTpl1 = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount><![CDATA[%d]]></ArticleCount>
<Articles>";
$time = time();
$num = count($contentArr);
$result1 = sprintf($articlesTpl1, $fromUsername, $toUsername, $time, $num);
$result2 = "";
if($num == 1)
{
$articlesTpl2 = "<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>

<Url><![CDATA[%s]]></Url>
</item>";
//<PicUrl><![CDATA[%s]]></PicUrl>
//<PicUrl><![CDATA[%s]]></PicUrl>
$result2 .= sprintf($articlesTpl2, $contentArr[0]['title'], $contentArr[0]['desc'], $contentArr[0]['picurl'], $contentArr[0]['url']);
}else
{
for ($i=0; $i < $num; $i++)
{
$articlesTpl2 = "<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>

<Url><![CDATA[%s]]></Url>
</item>";
//<PicUrl><![CDATA[%s]]></PicUrl>
$result2 .= sprintf($articlesTpl2, $contentArr[$i]['title'], $contentArr[$i]['desc'], $contentArr[$i]['picurl'], $contentArr[$i]['url']);
}
}

$articlesTpl3 = "</Articles>
</xml> ";
$result = $result1.$result2.$articlesTpl3;
return $result;
}


$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$msgType  = trim($postObj->MsgType);

$keywords = trim($postObj->Content);

$info= $op->get_news_withkeywords($keywords);
if(empty($info) || $info == false)
{
echo "error";
exit;
}else
{
if($info['msg_type'] == 'text')
{
$res = $hcwechat->send_text($fromUsername, $toUsername, $info['content']);
}else
{
$content = array(
array(
'title' => $info['title'],
'desc'  => $info['digest'],
//'picurl' => $info['thumb_media_id'],//这里的图片地址怎么获取到,找了几天一直没找到,我这个是订阅号,不知道行不。
'url' => $info['url'],
),
);
$res = $hcwechat->send_articles($fromUsername, $toUsername, $content);
}
echo $res;
exit;
}
因为我这里发送一个编号只获取一条信息,所以只需要发送单图文信息就可以了,上面的多图文只是为了以防万一,以及自己多动点手。当然可以不用判断是否多图文,我这里都是单图文,所以我做了一个判断;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: