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

微信发送信息也给出了示例代码;修改下就行,就是拼接下字符串。


/*
    *消息
    *$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;
        }
因为我这里发送一个编号只获取一条信息,所以只需要发送单图文信息就可以了,上面的多图文只是为了以防万一,以及自己多动点手。当然可以不用判断是否多图文,我这里都是单图文,所以我做了一个判断;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值