热搜:NVER node 开发 php

微信调试问题

2024-08-15 11:20:01
微信调试问题

微信回复关键字  服务器接收    这里的逻辑怎么输出?? 比方说我收到了 xml数据 然后输出 但有时候我这里需要写个数组 然后输出 怎么做

如果写入文件和数据库表只能输出xml和字符串 不能输出数组  


回复讨论(解决方案)

试过搞过,我把关健字回复条件都写在代码定死.没在数据库里搞..

<?php define("TOKEN", "bjcy");#这里定义你留下的tooken#这里是你定义好的消息回复$default="";$address="http://www.bjcy07.com";#这里是规则,判断用户发送过来的信息所包含的关键字,你可以定义更多,这里只是一个教程$rule=Array("竞猜","竞猜送话费","送话费","竞猜白银");#初始化$Msg = new Msg();$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$keyword = trim($postObj->Content);$key=$Msg->match($rule,$keyword);#循环开始,判断用户所发送过来的消息,参数作用在下面的方法介绍里面	switch ( $key )	{				case "竞猜":		$Msg->picMsg($fromUsername,$toUsername,"合创盈丰上线有礼:免费竞猜四位数,就中话费300元!","http://www.hcyf07.com/weixin/sdd2.jpg",'竞猜',"http://www.hcyf07.com");		exit();							case "竞猜送话费":		$Msg->picMsg($fromUsername,$toUsername,"合创盈丰上线有礼:免费竞猜四位数,就中话费300元!","http://www.hcyf07.com/weixin/sdd2.jpg",'竞猜送话费',"http://www.hcyf07.com");		exit();						case "送话费":		$Msg->picMsg($fromUsername,$toUsername,"合创盈丰上线有礼:免费竞猜四位数,就中话费300元!","http://www.hcyf07.com/weixin/sdd2.jpg",'送话费',"http://www.hcyf07.com");		exit();				case "竞猜白银":		$Msg->picMsg($fromUsername,$toUsername,"合创盈丰上线有礼:免费竞猜四位数,就中话费300元!","http://www.hcyf07.com/weixin/sdd2.jpg",'竞猜白银',"http://www.hcyf07.com");		exit();						default:		$Msg->txtMsg($fromUsername,$toUsername,$default);	}if(!empty( $keyword ))                  {                            $msgType = "text";          //入库试一下             //在这里可以判断接收到的keyword                                        echo $resultStr;              }else{              if($event=="subscribe"){//首次关注                       $msgType = "text";                       $url = "http://www.bjcy07.com/";                       $contentStr = "您好,感谢关北京合创盈丰商品经营有限公司,北京合创盈丰商品经营有限公司是北京大宗商品交易所会员单位(会员席位号为007号),以现货白银等贵金属的销售、回购为主要经营项目,实行24小时买卖报价交易,同时提供贵金属投资咨询服务。".$url;                       $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);                      echo  $resultStr;                                        }                  echo "Input something...";              }  /* class of msg */class Msg{  public function valid()    {        $echoStr = $_GET["echostr"];        //valid signature , option        if($this->checkSignature()){         echo $echoStr;         exit;        }    }	#依次为 来源用户,发送到用户,时间,标题,图片地址,简介,点击微信消息时候的链接,当然你可以修改这个顺序    function picMsg($fromUsername,$toUsername,$title,$PicUrl,$Discription,$Url)    {		//get post data, May be due to the different environments		$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];			$time = time();			$textTpl = " 			 			 			%s 			 			  			1 			 			<![CDATA[%s]]> 			 			 			 			 			1 			 ";    				$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$title,$Discription,$PicUrl,$Url);				echo $resultStr;	}				function txtMsg($fromUsername,$toUsername,$contentStr) 	{ 		$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; 			$time = time(); 			$textTpl = " 			 			 			%s 			 			 			0 			"; 			$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $contentStr); 			echo $resultStr; 				}  	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;		}	}	#匹配用户关键字	function match($rule,$keyword){ 		$num=count($rule)+1; 		for($i=0;$i<$num;$i++){ 			if( preg_match( "/$rule[$i]/",$keyword ) ){				return $rule[$i];				exit();			}		} 	} 	} ?>