头像

微信个人订阅号 公众号 开发入门

资源/模板错误反馈 收集员 2016-11-08浏览(1235)   

这几天项目需求 搞了一个个人微信订阅号


https://mp.weixin.qq.com/

申请处

申请不复杂

主要是需要邮箱不能绑定了微信号 总之我是新注册了一个邮箱 麻烦


申请完后 做一系列的认证就可以了 需要一个绑定了个人银行卡的微信号 这些很简单就不说了。

怎么让公众号来和自己的网站做衔接 这个才是我们要做。


搞定小白设置后我们开始衔接网站。直接拉到最下面



基本配置



修改配置这里也平台也解释了  拥有自己的服务器可以自己回复关注用户消息 接收记录消息



我们这里添加了URL 就是你自己的域名URL 比如www.123.com/wx.php

主要是这里的认证要注意了



Token 我这里是填写的bbbibibi 这个要记住 关乎接下来的认证

EncodingAESKey 自动生成即可。


这里我们怎么来通过检验呢

建立一个wx.php

<?php
$echoStr = $_GET["echostr"];
echo $echoStr;
?>

这样就可以了  然后点击提交就可以看到通过认证的提示

但是这种方法是没有真的做检测的 官方也给了代码来处理真的认证 如果你怕接口被人捣乱可以使用下面的代码

<?php
$signature = $_GET["signature"];
       $timestamp = $_GET["timestamp"];
       $nonce = $_GET["nonce"];
                
       $token = "bbbibibi";
       $tmpArr = array($token, $timestamp, $nonce);
       // use SORT_STRING rule
       sort($tmpArr, SORT_STRING);
       $tmpStr = implode( $tmpArr );
       $tmpStr = sha1( $tmpStr );
        
       if( $tmpStr == $signature ){
//通过
$echoStr = $_GET["echostr"];
echo $echoStr;

}else{
return false;
}
?>


这里就完成了开放平台的认证 开启后

你给公众号发送任何消息都会POST给www.123.com/wx.php

后面要做的就是记录信息 对应的回复消息

接下来我们进行一下消息接收和即时回复
官方说了5秒内你的服务器没给出正确的响应则会提示该公众号暂时无法服务。
关于我们认证后可以做些什么 订阅号是基本无权限。但是对于普通的网站来说已经够了。

$fileContent = file_get_contents("php://input");
                       //$request=simplexml_load_string($file_in);
                       $file='txt/'.time().'.txt';
                       $myfile = fopen($file, "w") or die("Unable to open file!");
                       $txt =$fileContent;
                       //$txt=gzcompress($txt);
                       fwrite($myfile, $txt);
                       fclose($myfile);
                       $txt_xml=simplexml_load_string($txt,',LIBXML_NOCDATA);
                       $user_kf=$txt_xml->ToUserName;  //开发者微信OPENID
                       $user_fs=$txt_xml->FromUserName;  //发送者微信OPENID
                       $user_nr=$txt_xml->Content; 
                       //输入出内容
                       //输入出内容
                       header("Content-type:text/xml");
      echo '<xml><ToUserName><![CDATA['.$user_fs.']]></ToUserName><FromUserName><![CDATA['.$user_kf.']]></FromUserName><CreateTime>'.time().'</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[你发送的消息'.$user_nr.'我们收到啦]]></Content></xml>';



这段代码接收了微信POST过来的XML 然后即时的发送了一条消息出去反馈给用户。
接收到的XML保存在了txt文件夹 你需要在根目录下面建立一个txt文件夹保证有777写入权限。

完整的代码

<?php
$signature = $_GET["signature"];
       $timestamp = $_GET["timestamp"];
       $nonce = $_GET["nonce"];
                
       $token = "bbbibibi";
       $tmpArr = array($token, $timestamp, $nonce);
       // use SORT_STRING rule
       sort($tmpArr, SORT_STRING);
       $tmpStr = implode( $tmpArr );
       $tmpStr = sha1( $tmpStr );
        
       if( $tmpStr == $signature ){
                       //echo $echoStr;
           //return true;
                       //$echoStr = $_GET["echostr"];
                       //echo $echoStr;
                       //认证通过输出$echoStr
                       $fileContent = file_get_contents("php://input");
                       //$request=simplexml_load_string($file_in);
                       $file='txt/'.time().'.txt';
                       $myfile = fopen($file, "w") or die("Unable to open file!");
                       $txt =$fileContent;
                       //$txt=gzcompress($txt);
                       fwrite($myfile, $txt);
                       fclose($myfile);
                       $txt_xml=simplexml_load_string($txt,',LIBXML_NOCDATA);
                       $user_kf=$txt_xml->ToUserName;  
                       $user_fs=$txt_xml->FromUserName;  
                       $user_nr=$txt_xml->Content; 
                       //输入出内容
                       //输入出内容
                       header("Content-type:text/xml");
                       echo '<xml><ToUserName><![CDATA['.$user_fs.']]></ToUserName><FromUserName><![CDATA['.$user_kf.']]></FromUserName><CreateTime>'.time().'</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[你发送的消息'.$user_nr.'我们收到啦]]></Content></xml>';
}else{
return false;
}
?>




完成了这一步 我们的网站和微信就衔接起来了~之后要做什么就得看你的需求了 光这一个功能就可以让我们做很多利用。

传参过来的参数到底是些什么有什么作用可以去看看 文档 接口权限


积分:新注册可得1积分|评论每次可得1积分每天5次[充值1元=10积分]AD:Php/Tp5程序开发二次开发联系QQ839070295
评论0
头像

模板缺失不完整!联系我!