微信公众号php没有返回信息如何解决


本篇内容主要讲解“微信公众号php没有返回信息如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信公众号php没有返回信息如何解决”吧! 微信公众号php没有返回信息的解决办法:1、启用服务器模式;2、通过“define(“TOKEN”, “weixin”);”验证token;3、新建一个index.php,接收微信返回的数据包并进行处理即可。微信公众号php返回信息的实现方法:php微信公众号关注后 回复一条文本信息和一条图文信息首先还是启用服务器模式 index.php验证token 使用 启用服务器模式后 把这个index.php 改个名字下一步:

valid();
classwechatCallbackapiTest
{
publicfunctionvalid()
{
$echoStr=$_GET["echostr"];
//validsignature,option
if($this->checkSignature()){
echo$echoStr;
exit;
}
}
publicfunctionresponseMsg()
{
//getpostdata,Maybeduetothedifferentenvironments
//php7弃用了这个函数使用file_get_contents('php://input')
//$postStr=$GLOBALS["HTTP_RAW_POST_DATA"];
$postStr=file_get_contents('php://input');
//extractpostdata
if(!emptyempty($postStr)){
$postObj=simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);
$fromUsername=$postObj->FromUserName;
$toUsername=$postObj->ToUserName;
$keyword=trim($postObj->Content);
$time=time();
$textTpl="%s0";
if(!emptyempty($keyword))
{
$msgType="text";
$contentStr="Welcometowechatworld!";
$resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
echo$resultStr;
}else{
echo"Inputsomething...";
}
}else{
echo"";
exit;
}
}
privatefunctioncheckSignature()
{
$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){
returntrue;
}
else{
returnfalse;
}
}
}
?>

第二步:新建一个index.php

第二步:新建一个index.php接收微信返回的数据包 进行处理

ToUserName;
$fromUserName=$postObj->FromUserName;
$msgType=$postObj->MsgType;
$event=$postObj->Event;
$cardId=$postObj->CardId;
$userCardCode=$postObj->UserCardCode;
$eventKey=$postObj->EventKey;
$Status=$postObj->Status;
$Content=$postObj->Content;
}
//打开日志文件并写入
$date=date("Y-m-d");//获取当前日期
$TxtRes=fopen("log/".$date.".txt","a+");
$datetime=date("Y-m-dH:i:s");//获取当前时间
fwrite($TxtRes,"微信平台事件推送:");
fwrite($TxtRes,"datetime=");fwrite($TxtRes,$datetime);
fwrite($TxtRes,",openid=");fwrite($TxtRes,$postStr);
fwrite($TxtRes,",openid=");fwrite($TxtRes,$openid);
fwrite($TxtRes,",toUserName=");fwrite($TxtRes,$toUserName);
fwrite($TxtRes,",fromUserName=");fwrite($TxtRes,$fromUserName);
fwrite($TxtRes,",msgType=");fwrite($TxtRes,$msgType);
fwrite($TxtRes,",event=");fwrite($TxtRes,$event);
fwrite($TxtRes,",cardId=");fwrite($TxtRes,$cardId);
fwrite($TxtRes,",userCardCode=");fwrite($TxtRes,$userCardCode);
fwrite($TxtRes,",eventKey=");fwrite($TxtRes,$eventKey);
fwrite($TxtRes,",Status=");fwrite($TxtRes,$Status);
fwrite($TxtRes,",Content=");fwrite($TxtRes,$Content);
fwrite($TxtRes,"rn");
fclose($TxtRes);//关闭指针
//获取access_token
$appid="";
$secret="";
$TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;
$json=file_get_contents($TOKEN_URL);
//echo"
";
//print_r($json);
//echo"

";
$result=json_decode($json,true);
$ACCESS_TOKEN=$result['access_token'];
//$ACCESS_TOKEN;
//关注回复
if($event=="subscribe")
{
$textTpl="%s0";
$time=time();//时间戳
$msgType='text';//消息类型:文本
//
$contentStr="这是文本信息";
//$contentStr=preg_replace("#u([0-9a-f]+)#ie","iconv('UCS-2','UTF-8',pack('H4','1'))",$contentStr);//对emojiunicode进行二进制pack并转utf8
$resultStr=sprintf($textTpl,$fromUserName,$toUserName,$time,$msgType,$contentStr);
echo$resultStr;
//打开日志文件并写入
$date=date("Y-m-d");//获取当前日期
$TxtRes=fopen("log/".$date.".txt","a+");
$datetime=date("Y-m-dH:i:s");//获取当前时间
fwrite($TxtRes,"文本:");
fwrite($TxtRes,"datetime=");fwrite($TxtRes,$datetime);
fwrite($TxtRes,",resultStr=");fwrite($TxtRes,$resultStr);
fwrite($TxtRes,"rn");
fclose($TxtRes);//关闭指针
functionhttps_request($url,$data=null){
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
if(!empty($data)){
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
}
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$output=curl_exec($curl);
curl_close($curl);
return$output;
}
//图文信息
//图文信息id调用微信接口查询素材内容就好
$media_id='EdJONlffwfqP8TJrKDcce-IuZKWaOKjX8tbiQknZeLw';
$url='https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$ACCESS_TOKEN;
$data='{
"touser":"'.$fromUserName.'",
"免费云主机域名msgtype":"mpnews",
"mpnews":
{
"media_id":"'.$media_id.'"
}
}';
$result=https_request($url,$data);
//打开日志文件并写入
$date=date("Y-m-d");//获取当前日期
$TxtRes=fopen("log/".$date.".txt","a+");
$datetime=date("Y-m-dH:i:s");//获取当前时间
fwrite($TxtRes,"图文:");
fwrite($TxtRes,"datetime=");fwrite($TxtRes,$datetime);
fwrite($TxtRes,",data=");fwrite($TxtRes,$data);
fwrite($TxtRes,"rn");
fwrite($TxtRes,",resultStr=");fwrite($TxtRes,$result);
fwrite($TxtRes,"rn");
fclose($TxtRes);//关闭指针
}
?>
多图文和一条文本信息多图文和一条文本信息因为客服回复消息 只能是一条图文 不然会报错

/*
*多图文和一条文本信息
*多图文和一条文本信息
*因为客服回复消息只能是一条图文不然会报错
/

//多图文信息
$time=time();

//$media_id='EFAbfNhphshVpCfNyhdT0dtUui-pLa_NvzSyPLuBb';
$title="图文标题";
$url="图文路劲";
$thumb_url="封面图";
$digest="说明";

$title1="";
$url1="";
$thumb_url1="";
$digest1="";

$title2="";
$url2="";
$thumb_url2="";
$digest2="";
.
.
.
$title7="图文标题";
$url7="图文路劲";
$thumb_url7="封面图";
$digest7="说明";


$textTpl="


%s




















































";

$resultStr=sprintf($textTpl,$fromUserName,$toUserName,$time,'news','8',$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url);
echo$resultStr;

//news表示图文
//8表示有几个图文8个图文后面就要写$title,$digest,$thumb_url,$url这样的数据
//xml格式里面的...有几个就写几个



$url='https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$ACCESS_TOKEN;
$data='{
"touser":"'.$fromUserName.'",
"msgtype":"text",
"text":
{
"content":"这是文本内容"
}
}';
$result=https_request($url,$data);

到此,相信大家对“微信公众号php没有返回信息如何解决”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: Numpy元素的遍历方法是什么

这篇文章主要讲解了“Numpy元素的遍历方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Numpy元素的遍历方法是什么”吧!迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 02/23 13:11
Next 02/23 13:41

相关推荐