首页 > 后端开发 > php教程 > 微信公众平台接口回复中文乱码

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

WBOY
发布: 2016-06-06 20:50:45
原创
1877 人浏览过

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

<?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></tousername>

            <fromusername></fromusername>

            <createtime>%s</createtime>

            <msgtype></msgtype>

            <content></content>

            <funcflag>0<funcflag>

            </funcflag></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;

        }

    }

}

    ?>

登录后复制
登录后复制

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

这个问题已被关闭,原因:

回复内容:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

<?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></tousername>

            <fromusername></fromusername>

            <createtime>%s</createtime>

            <msgtype></msgtype>

            <content></content>

            <funcflag>0<funcflag>

            </funcflag></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;

        }

    }

}

    ?>

登录后复制
登录后复制

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

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板