php+微信首次关注回复,php微信关注后消息回复以及关键字回复

header('content-type:text/html;charset=utf-8');

define("TOKEN", "weixin"); //define your token

$wx = new wechatCallbackapiTest();

if($_GET['echostr']){

$wx->valid(); //如果发来了echostr则进行验证

}else{

$wx->responseMsg(); //如果没有echostr,则返回消息

}

class wechatCallbackapiTest{

//微信验证

public function valid(){ //valid signature , option

$echoStr = $_GET["echostr"];

if($this->checkSignature()){ //调用验证字段

echo $echoStr;

exit;

}

}

/*

返回消息数据

*/

public function responseMsg(){

$postStr = file_get_contents('php://input');//php7.0以上用这个接收参数、

//数据

// "

// \n

// \n

// 1550115489\n

// \n

// \n

// \n

// "

//get post data, May be due to the different environments

// $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //接收微信发来的XML数据 版本php7.0以上这个函数已经作废

file_put_contents('02.txt',json_encode($postStr));

//extract post data

if(!empty($postStr)){

//解析post来的XML为一个对象$postObj

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

$fromUsername = $postObj->FromUserName; //请求消息的用户

$toUsername = $postObj->ToUserName; //"我"的公众号id

$keyword = trim($postObj->Content); //消息内容

$time = time(); //时间戳

$msgtype = 'text'; //消息类型:文本

$textTpl = "

%s

";

file_put_contents('01.txt',json_encode($postObj));

if(strtolower($postObj->MsgType == 'event' )){ //如果XML信息里消息类型为event

if($postObj->Event == 'subscribe'){ //如果是订阅事件

// $contentStr = $fromUsername."欢迎订阅misaka去年夏天32434!\n更多精彩内容:http://blog..net/misakaqunianxiatian";

// $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);

// echo $resultStr;

$contentStrq = "欢迎订阅:请点击链接wordwrap";

$resultStrq = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStrq);

echo $resultStrq;

exit();

}

}

switch (keyword) {

case '1':

$contentStr = '我是1号';

break;

case '2':

$contentStr = '我是2号';

break;

default:

$contentStr = '输入数字试试';

break;

}

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);

echo $resultStr;

file_put_contents('01.txt',json_encode($resultStr));

exit();

}else {

echo "";

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;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现服务号给微信小程序用户发送模板消息,需要使用微信公众平台提供的模板消息接口。以下是使用PHP实现的步骤: 1. 获取access_token 首先需要获取access_token,可以通过向以下接口发送GET请求获取: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 其中APPID和APPSECRET分别为服务号的AppID和AppSecret。 2. 获取小程序用户的openid 在向小程序用户发送模板消息之前,需要获取用户的openid。可以通过使用小程序提供的登录接口获取用户的openid,具体方法可以参考小程序开发文档。 3. 发送模板消息 获取用户的openid之后,就可以向用户发送模板消息了。发送模板消息的接口为: https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN 其中ACCESS_TOKEN为第一步获取的access_token。 发送模板消息的数据格式为: { "touser":"OPENID", "template_id":"TEMPLATE_ID", "page":"index", "form_id":"FORMID", "data":{ "keyword1":{ "value":"VALUE1" }, "keyword2":{ "value":"VALUE2" } }, "emphasis_keyword":"keyword1.DATA" } 其中: - touser为接收消息的小程序用户的openid; - template_id为模板消息的ID,可以在公众平台后台的模板库中查找; - page为小程序的页面路径,可以不填; - form_id为小程序的form_id,可以在小程序端通过wx.requestPayment等接口获取; - data为模板消息中需要替换的变量; - emphasis_keyword为模板消息中需要进行高亮的关键字。 具体的数据格式可以参考微信公众平台的文档。 以上是使用PHP实现服务号给微信小程序用户发送模板消息的基本步骤。需要注意的是,为了保证模板消息能够正常发送,需要先在公众平台后台的模板库中添对应的模板,并且设置好模板消息中需要替换的变量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值