您好,匿名用户
随意问技术百科期待您的加入

微信公众平台接口回复中文乱码

0 投票
<?php
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$wechatObj->responseMsg(); 
function youdaofanyi($keyword)
{
	$url = 'http://fanyi.youdao.com/openapi.do?keyfrom=coolrand&key=545706258&type=data&doctype=json&version=1.1&q='.$keyword;
	$f = new SaeFetchurl();
	$output = $f->fetch($url);
	$message = json_decode($output,true);
	$errorcode = $message['errorCode'];
	$phonetic = $message['basic']['$phonetic'];
	$explains1 = $message['basic']['explains']['0'];
	$explains2 = $message['basic']['explains']['1'];
	$explains3 = $message['basic']['explains']['2'];
	$trans = $message['translation'][0];
	return "哈哈"."\n".$trans."\n".$phonetic."\n".$explains1;
}

class wechatCallbackapiTest
{
    public function valid()
    {
    	$echoStr = $_GET["echostr"]; 
    	if($this->checkSignature()){
    		echo $echoStr;
    		exit;
    	}
    } 
    public function responseMsg()
    {
    	$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
    	if (!empty($postStr)){
    		$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
    		$fromUsername = $postObj->FromUserName;
    		$toUsername = $postObj->ToUserName;
    		$keyword = trim($postObj->Content);
    		$time = time();
    		$textTpl = "<xml>
    		<ToUserName><![CDATA[%s]]></ToUserName>
    		<FromUserName><![CDATA[%s]]></FromUserName>
    		<CreateTime>%s</CreateTime>
    		<MsgType><![CDATA[%s]]></MsgType>
    		<Content><![CDATA[%s]]></Content>
    		<FuncFlag>0<FuncFlag>
    		</xml>";
    		if(!empty( $keyword ))
    		{	
				if((eregi("a",$keyword))){
    			$msgType = "text";
    			$contentStr = youdaofanyi($keyword);
    			$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    			echo $resultStr;
				}
				else{
					$msgType = "text";
    				$contentStr = "欢迎";
    				$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    				echo $resultStr;
				}
    		}else{
    			echo "asd";
    		} 
        }else {
    		echo MESS;
    		exit;
    	}
    }

    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;
    	}
    }
}
    ?>

代码如上,可是回复中的中文会显示乱码,到底出什么问题了啊

用户头像 提问 2014年 2月17日 @ Trundle 上等兵 (301 威望)
分享到:

你的回答

隐私保护: 您的邮箱仅用于发送系统通知。
请输入验证码:
    图片验证码看不清?
登录注册后不会被要求输入验证码。

提一个问题:

相关问题

0 投票
1 回复 26 阅读
用户头像 提问 2014年 2月24日 @ Riven 上等兵 (334 威望)
+1 投票
1 回复 27 阅读
用户头像 提问 2014年 3月1日 @ Pantheon 上等兵 (388 威望)
0 投票
1 回复 25 阅读
用户头像 提问 2014年 2月10日 @ Diana 上等兵 (326 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...