php wecp 启动_php微信公众号启动服务器配置

微信公众号开发者技术文档参考资料:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319

第一步:把wxtokenvalid.php文件放到项目根目录,token值改成自己的,就是下面第二步填写的token值

header('Content-type:text');

define("TOKEN", "123456"); //填写自己的token值

$wechatObj = new wechatCallbackapiTest();

if (!isset($_GET['echostr'])) {

$wechatObj->responseMsg();

}else{

$wechatObj->valid();

}

class wechatCallbackapiTest

{

public function valid()

{

$echoStr = $_GET["echostr"];

if($this->checkSignature()){

echo $echoStr;

exit;

}

}

private function checkSignature()

{

$signature = $_GET["signature"];

$timestamp = $_GET["timestamp"];

$nonce = $_GET["nonce"];

$token = TOKEN;

$tmpArr = array($token, $timestamp, $nonce);

sort($tmpArr);

$tmpStr = implode($tmpArr);

$tmpStr = sha1($tmpStr);

if($tmpStr == $signature){

return true;

}else{

return false;

}

}

public function responseMsg()

{

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

if (!empty($postStr)){

$this->logger("R ".$postStr);

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

$RX_TYPE = trim($postObj->MsgType);

switch ($RX_TYPE)

{

case "event":

$result = $this->receiveEvent($postObj);

break;

case "image":

$result = $this->receiveText($postObj);

break;

case "text":

$result = $this->receiveText($postObj);

break;

}

$this->logger("T ".$result);

echo $result;

}else {

echo "";

exit;

}

}

private function receiveEvent($object)

{

$content = "";

switch ($object->Event)

{

case "subscribe":

$content = "您好!欢迎关注“彭州气象”官方微信公众号!“关注就有礼物,点赞送大奖!”活动正在火热进行中,点击:http://dwz.cn/79Rlnw 抢大奖!";

break;

case "unsubscribe":

$content = "取消关注";

break;

}

$result = $this->transmitText($object, $content);

// $token = $this->getAccessToken();

$openid = $object->FromUserName;

// $data = file_get_contents("https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$openid."&lang=zh_CN");

// $data = json_decode($data,true);

dump($data["errcode"]);

// if($data["errcode"]==42001){

// $_SESSION['access_token']='';

// $token = $this->getAccessToken();

// $data = file_get_contents("https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$openid."&lang=zh_CN");

// $data = json_decode($data,true);

// }

// Header("http://pz.cdtq.gov.cn/Preagr/add/openid/".$openid);

file_get_contents("http://pz.cdtq.gov.cn/Preagr/add/openid/".$openid);

return $result;

}

//接收文本消息

private function receiveText($object)

{

$keyword = trim($object->Content);

// $content = date("Y-m-d H:i:s",time())."\n技术支持 方倍工作室";

$content = "对于本次活动有以下提醒:\n1、请仔细阅读活动规则;\n2、所有红包将在中奖名单公示后3个工作日内统一发送至用户手中;\n3、发奖前如果取消“彭州气象”微信公众号的关注,视为弃权;\n4、本次活动最终解释权归“彭州气象”微信公众号所有。\n 查看详情:http://dwz.cn/79Rlnw";

if(is_array($content)){

if (isset($content[0]['PicUrl'])){

$result = $this->transmitNews($object, $content);

}else if (isset($content['MusicUrl'])){

$result = $this->transmitMusic($object, $content);

}

}else{

$result = $this->transmitText($object, $content);

}

return $result;

}

private function transmitText($object, $content)

{

$textTpl = "

%s

";

$result = sprintf($textTpl, $object->FromUserName,$object->ToUserName, time(), $content);

return $result;

}

private function transmitNews($object, $arr_item)

{

if(!is_array($arr_item))

return;

$itemTpl = "

";

$item_str = "";

foreach ($arr_item as $item)

$item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']);

$newsTpl = "

%s

%s

$item_str

";

$result = sprintf($newsTpl, $object->FromUserName, $object->ToUserName, time(), count($arr_item));

return $result;

}

private function transmitMusic($object, $musicArray)

{

$itemTpl = "

";

$item_str = sprintf($itemTpl, $musicArray['Title'], $musicArray['Description'], $musicArray['MusicUrl'], $musicArray['HQMusicUrl']);

$textTpl = "

%s

$item_str

";

$result = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time());

return $result;

}

private function logger($log_content)

{

if(isset($_SERVER['HTTP_APPNAME'])){ //SAE

sae_set_display_errors(false);

sae_debug($log_content);

sae_set_display_errors(true);

}else if($_SERVER['REMOTE_ADDR'] != "127.0.0.1"){ //LOCAL

$max_size = 10000;

$log_filename = "log.xml";

if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}

file_put_contents($log_filename, date('H:i:s')." ".$log_content."\r\n", FILE_APPEND);

}

}

/*

* 微信分享配置

*/

//curl获取请求文本内容

private function get_curl_contents($url, $method = 'GET', $data = array())

{

if ($method == 'POST') {

//使用crul模拟

$ch = curl_init();

//禁用https

'curl_setopt';

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

//允许请求以文件流的形式返回

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);

curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 30);

curl_setopt($ch, CURLOPT_URL, $url);

$result = curl_exec($ch); //执行发送

curl_close($ch);

} else {

if (ini_get('allow_fopen_url') == '1') {

$result = file_get_contents($url);

} else {

//使用crul模拟

$ch = curl_init();

//允许请求以文件流的形式返回

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

//禁用https

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_URL, $url);

$result = curl_exec($ch); //执行发送

curl_close($ch);

}

}

return $result;

}

/*

* 获取微信公众号access_token

*/

private function getAccessToken()

{

if ($_SESSION['access_token']) {

return $_SESSION['access_token'];

} else {

$AppID = 'wxc7ea3c2f37093ca6'; //AppID(应用ID)

$AppSecret = 'a3b01e59b989455ec3d396c57b4e6c80'; //应用内秘钥

$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$AppID&secret=$AppSecret";

// dump($url);

$res = $this->get_curl_contents($url);

$res = json_decode($res, true);

//把获取到的access_token存起来,有效期是7200s;

$_SESSION['access_token']= $res['access_token'];

return $res['access_token'];

}

}

}

?>

第二步:登录微信公众号官网,启动服务器配置

url填访问到wxtokenvalid.php 文件的路径

244655a818d6c9e1a9443c8c8ffff432.png

第三步:启动了服务器配置,那么公众号后台就不能进行自动回复操作,可以在wxtokenvalid.php里进行设置

72d4fb9b470cba8903002726d1a3dc19.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值