PHP对接微信公众平台消息接口开发流程教程_php实例_脚本之家

2.调用weixin.class.php

3.查询代码

用自己的个人微信关注下你的公众账号,给这个账号发一条消息过去,收到原样的消息返回,即验证成功了。

三、验证接口

由于微信公众平台的通信使用的是特定格式的XML数据,每次接受和回复都要去做一大堆的数据处理。我们就考虑在这个基础上做一次封装,weixin.class.php,代码如下:复制代码 代码如下:

在你的服务器上上传好一个接口程序文件,如
内容如下:

复制代码 代码如下:responseMsg();class
wechatCallbackapiTest{ public function valid() { $echoStr =
$_GET[“echostr”]; if($this->checkSignature{ echo $echoStr; exit; }
} public function responseMsg() { $postStr =
$GLOBALS[“HTTP_RAW_POST_DATA”]; if { $postObj =
simplexml_load_string($postStr, ‘SimpleXMLElement’, LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName; $toUsername =
$postObj->ToUserName; $keyword = trim; $time = time(); $textTpl = ”
%s 0 “; if { $msgType = “text”; $contentStr = ‘你好啊,屌丝’; $resultStr
= sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType,
$contentStr); echo $resultStr; }else{ echo ‘咋不说哈呢’; } }else { echo
‘咋不说哈呢’; exit; } } private function checkSignature() { $signature =
$_GET[“signature”]; $timestamp = $_GET[“timestamp”]; $nonce =
$_GET[“nonce”]; $token =TOKEN; $tmpArr = array($token, $timestamp,
$nonce); sort; $tmpStr = implode; $tmpStr = sha1; if( $tmpStr ==
$signature ){ return true; }else{ return false; } }}?>

“; $newTplFoot = ” %s “; $Content = ”; $itemsCount = count; $itemsCount
= $itemsCount < 10 ? $itemsCount :
10;//微信公众平台图文回复的消息一次最多10条 if { foreach
($newsData[‘items’] as $key => $item) { if { $Content .=
sprintf($newTplItem,$item[‘title’],$item[‘description’],$item[‘picurl’],$item[‘url’]);
} } } $header =
sprintf($newTplHeader,$newsData[‘content’],$itemsCount); $footer =
sprintf($newTplFoot,$FuncFlag); return $header . $Content . $footer; }
public function reply { if { $this->write_log; } echo $data; }
public function valid() { if ($this->checkSignature { if(
$_SERVER[‘REQUEST_METHOD’]==’GET’ ) { echo $_GET[‘echostr’];
exit; } }else{ write_log; exit; } } private function checkSignature() {
$signature = $_GET[“signature”]; $timestamp = $_GET[“timestamp”];
$nonce = $_GET[“nonce”]; $tmpArr = array($this->token, $timestamp,
$nonce); sort; $tmpStr = implode; $tmpStr = sha1; if( $tmpStr ==
$signature ){ return true; }else{ return false; } } private function
write_log{ //这里是你记录调试信息的地方 请自行完善 以便中间调试 }}?>

设置回复接口,填好URL和Token(url填上面的

四、开始自定义回复

还需要将数据库里面的查询结果格式化为特定的形式复制代码
代码如下:search;//普通的根据关键词查询数据库的操作 代码就不用分享了
if&&!empty{ foreach{
$record[]=array(//以下代码,将数据库中查询返回的数组格式化为微信返回消息能接收的数组形式,即title、description、picurl、url
详见微信官方的文档描述 ‘title’ =>$msg[‘title’], ‘description’
=>$msg[‘discription’], ‘picurl’ => $msg[‘pic_url’], ‘url’
=>$msg[‘url’] ); } } return $record;}?>

二、配置微信公众平台回复接口

token = $token; $this->debug = $debug; } //获得用户发过来的消息
public function getMsg() { $postStr =
$GLOBALS[“HTTP_RAW_POST_DATA”]; if { $this->write_log; } if {
$this->msg = simplexml_load_string($postStr, ‘SimpleXMLElement’,
LIBXML_NOCDATA); $this->msgtype =
strtolower($this->msg[‘MsgType’]); } } //回复文本消息 public
function makeText { $CreateTime = time(); $FuncFlag = $this->setFlag
? 1 : 0; $textTpl = ” msg[‘FromUserName’]}]]>
msg[‘ToUserName’]}]]> {$CreateTime} %s “; return
sprintf($textTpl,$text,$FuncFlag); } //根据数组参数回复图文消息 public
function makeNews { $CreateTime = time(); $FuncFlag = $this->setFlag
? 1 : 0; $newTplHeader = ” msg[‘FromUserName’]}]]>
msg[‘ToUserName’]}]]> {$CreateTime} %s”; $newTplItem = “

注释掉$wechatObj->valid();
这行,同时去掉//$wechatObj->responseMsg();这行的注释。你可以修改responseMsg函数里面的代码,根据用户的消息类型(’text’,’image’,’location’)和消息内容来回复用户不同的内容。消息接口就可以使用了,发个消息试试看吧?

把你的微信公众平台主接口文件(如前面定义的 代码如下:getMsg();$type =
$weixin->msgtype;//消息类型$username =
$weixin->msg[‘FromUserName’];//哪个用户给你发的消息,这个$username是微信加密之后的,但是每个用户都是一一对应的if
{ if ($weixin->msg[‘Content’]==’Hello2BizUser’)
{//微信用户第一次关注你的账号的时候,你的公众账号就会受到一条内容为’Hello2BizUser’的消息
$reply = $weixin->makeText; }else{//这里就是用户输入了文本信息
$keyword = $weixin->msg[‘Content’]; //用户的文本消息内容
include_once;//文本消息 调用查询程序 $chaxun= new
chaxun(DEBUG,$keyword,$username); $results[‘items’]
=$chaxun->search();//查询的代码 $reply = $weixin->makeNews;
}}elseif { //用户发送的是位置信息 稍后的文章中会处理 }elseif {
//用户发送的是图片 稍后的文章中会处理}elseif { //用户发送的是声音
稍后的文章中会处理}$weixin->reply;?>

1.封装weixin.class.php

一、写好接口程序

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章