lzksdxh

微信公众账号消息回复开发

  说实话,最近东西写的很乱,也没咋好好整理,

第一个是最近事情做得很乱,

第二个是最近生活也很凌乱,今天还感冒来着 ,昨晚去龙泽淋雨了

第三个也是确实心情不咋好,看官莫怪

 

 

之所以写这个,是因为最近 也在做这个,换了一家公司,换了一个心情

不评论谁好谁坏

做好自己该做的事情!

 

/**********************************以上为分割线 个人心情 无关各位*******************************************/

 

在微信消息回复中,首先要自己去配置服务器地址,

服务器的话自己有可以用自己的,没有的话可以看看度娘或是渣浪的,

我之前用的是渣浪的,现在欠费了 还找我收费呢。

阿里云的话挺贵的,你要是自己开发没必要 不如买个香港或是国外的

token的话是自己设置的,这个要跟服务器上的一样呢

EncodingAESKey:随机生成

消息加解密方式:自己选

配置好之后我们来看看服务器的文件,这个用的是php

我用的是这个http://www.cnblogs.com/txw1958/p/wechat-tutorial.html

原文地址,如原作者需要我删除的话,请联系我!谢谢

<?php

define("TOKEN", "自己的token值");
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET[\'echostr\'])) {
    $wechatObj->valid();
}else{
    $wechatObj->responseMsg();
}

class wechatCallbackapiTest
{
    public function valid()
    {
        $echoStr = $_GET["echostr"];
        if($this->checkSignature()){
            header(\'content-type:text\');
            echo $echoStr;
            exit;
        }
    }

    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];

        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );

        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }

    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($keyword == "?" || $keyword == "?")
            {
                $msgType = "text";
                $contentStr = date("Y-m-d H:i:s",time());
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                echo $resultStr;
            }
        }else{
            echo "";
            exit;
        }
    }
}
?>

 至此,已经配置完成,说明一下,前端并看不懂后台的代码,我的心愿是世界和平! 

 

分类:

技术点:

相关文章: