用本地的服务器做微信公众号的开发。
我用的是phpci框架,本地服务器是Apache。
<?php
class Wechatwo extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->helper('url_helper');
}
public function wechat_val(){
$timestamp = $_GET['timestamp'];
$nonce = $_GET['nonce'];
$token = 'weixin';
$signature = $_GET['signature'];
$echostr = $_GET['echostr'];
$array = array($timestamp,$nonce,$token);
sort($array);
$tmpstr = implode('', $array);
$tmpstr =sha1($tmpstr);
if($tmpstr==$signature && $echostr){
echo $echostr;
exit;
}else{
$this->reponseMsg();
}
}
public function reponseMsg(){
//获取到微信推送过来的post数据 xml格式
$postArr = $GLOBALS['HTTP_RAW_POST_DATA'];
$postObj = simplexml_load_file($postArr);
//判断该数据包是否是订阅的时间推送
if(strtolower($postObj->MsgType)=='event'){
if(strtolower($postObj->Event=='subscribe')){
//回复
$toUser = $postObj->FromUserName;
$fromUser = $postObj->ToUserName;
$time = time();
$MsgType = 'text';
$Content = '欢迎关注我们的微信号';
$template ="<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Event><![CDATA[%s]]></Event>
</xml>";
$info = sprintf($template,$toUser,$fromUser,$time,$MsgType,$Content);
echo $info;
}
}
}
}
上面的代码,关注微信号公众号没有消息提示发到用户那里。这是什么问题呢。如果报错哪里可以看呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
发的时候注意格式...稍微看下
markdown
的语法。```
代码
```
本地服务器的话,微信服务器怎么访问到你的服务器,需要公网ip(如果不是连的路由器,可以查到自己的公网ip但是每次连接ip都可能会变,如果有域名的话,设置域名解析到你的ip)?另外公众号怎么设置的?