admin管理员组

文章数量:1530962

下面教大家,如何使用腾讯微信公众平台示例代码。

微信平台已经全面改版, 新版的帮助直接看帮助即可: http://mp.weixin.qq/wiki/index.php?title=消息接口指南 以下是旧版设置(新版本设置更简单,只有2个选项): 1.设置好自己的微信公众平台消息接口,这个大家参照网站提示设置即可 注意先要上传API示范文件(注意验证签名的时候文件格式用ANSI不要修改,签名通过了建议修改为UTF-8格式,记事本打开另存的时候可以选择文件存储编码格式,不是网页格式哦),修改token为自己的token,即api的TOKEN和自己平台的是一致的,然后 点击提交,如果正确会,显示"提交成功” 注意事项:为什么自己创建的index.php代码和示例代码相同,但是验证签名不能通过呢?应为很多软件创建的文件都包含BOM,PHP不支持,所以要报BOM去掉(示例代码已经去BOM了),可以使用UE,或者Linux VI set nobomb命令。
注意URL网址对应的必须是接口处理文件比如:http://www.abc/weichat/ 默认页面是index.php,那么可以把帮助中的示例代码下载下来 wx_sample.php 修改为index.php然后上传到网站weichat目录下。

2.显示消息:当用户发送消息到,接口,接口做出响应,然后返回消息。在用户微信客户端显示。
3.必须对SDK代码做一点点修改,原来SDK代码只调用了签名,根本没有调用responseMsg()方法。只需要在代码开始添加调用代码即可,开头部分代码如下:
//define your token
define("TOKEN", "weixin");  //TOKEN和你在公众接口里设置的一样比如weixin,
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid(); //接口设置成功后把 //$wechatObj->valid();注释掉(12月31日修订)
$wechatObj->responseMsg();   //就是添加这段调用代码
一切就绪后随便向平台发送个消息,然后就会显示了,注意平台发送内容编码格式是“UTF-8”
3.深入开发。所有数据处理都可以在responseMsg方法中完成,你想怎么做都可以。
4.注意事项,返回消息长度限制2048个字节。
5.如果你的关键词不多,可以不使用接口,直接定义关键词,和回复内容即可(做多200条规则)。

6.补充一下,很多朋友不会设置,上个图


本人不是从事开发和编程工作,只是业余爱好,水平和事件有限,由于之前咨询的人太多,所以把QQ号去了,请大家谅解。完整代码示例如下,这个代码不包含任何处理,如果要处理消息在responseMsg()添加你的处理代码,比如查询数据库,采集百度内容回复,还是其他,一切自己定义
<?php


//define your token
define("TOKEN", "weixin"); //和你自己设置保持一致即可
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();  //接口设置成功后把$wechatObj->valid();注释掉,感谢happylyang反馈。
$wechatObj->responseMsg();
class wechatCallbackapiTest
{
        public function valid()
    {
        $echoStr = $_GET["echostr"];

        //valid signature , option
        if($this->checkSignature()){
                echo $echoStr;
                exit;
        }
    }

    public function responseMsg()  //所有功能在这个方法里完成
    {
                //get post data, May be due to the different environments
                $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

        //extract 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 ))
                {
                        $msgType = "text";
                        $contentStr = "Welcome to wechat world!";
                        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                        echo $resultStr;
                }else{
                        echo "Input something...";
                }

        }else {
                echo "";
                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;
                }
        }
}

?>

本文标签: 腾讯示例如何使用公众代码