本篇内容主要讲解“微信公众号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=""; 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; } } } ?> %s 0
第二步:新建一个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=""; %s 0
$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=""; $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格式里面的 %s - ...
有几个就写几个 $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.nditer 提供了一种灵活访问一个或者多个数组元素的…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。