PHP 微信公众平台自定义菜单响应事件 100
请问一下微信公众平台自定义菜单响应事件,应该怎么写,现在菜单已经有了$data='{"button":[{"type":"click","name":"贸易","key"...
请问一下微信公众平台自定义菜单响应事件,应该怎么写,现在菜单已经有了
$data = '{
"button":[
{
"type":"click",
"name":"贸易",
"key":"V1001_TODAY_MUSIC"
},
{
"type":"click",
"name":"外贸",
"key":"V1001_TODAY_SINGER"
},
{
"name":"物流",
"sub_button":[
{
"type":"click",
"name":"国外物流",
"key":"V1001_HELLO_WORLD"
},
{
"type":"click",
"name":"国内物流",
"key":"V1001_GOOD"
}]
}]
}';
想知道如何才能通过key值点击响应
接口文档:
<xml><ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[EVENT]]></Event>
<EventKey><![CDATA[EVENTKEY]]></EventKey>
</xml>
参数 描述
ToUserName 接收方微信号
FromUserName 发送方微信号,若为普通用户,则是一个OpenID
CreateTime 消息创建时间
MsgType 消息类型,event
Event 事件类型,subscribe(订阅)、unsubscribe(取消订阅)、CLICK(自定义菜单点击事件)
EventKey 事件KEY值,与自定义菜单接口中KEY值对应 展开
$data = '{
"button":[
{
"type":"click",
"name":"贸易",
"key":"V1001_TODAY_MUSIC"
},
{
"type":"click",
"name":"外贸",
"key":"V1001_TODAY_SINGER"
},
{
"name":"物流",
"sub_button":[
{
"type":"click",
"name":"国外物流",
"key":"V1001_HELLO_WORLD"
},
{
"type":"click",
"name":"国内物流",
"key":"V1001_GOOD"
}]
}]
}';
想知道如何才能通过key值点击响应
接口文档:
<xml><ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[EVENT]]></Event>
<EventKey><![CDATA[EVENTKEY]]></EventKey>
</xml>
参数 描述
ToUserName 接收方微信号
FromUserName 发送方微信号,若为普通用户,则是一个OpenID
CreateTime 消息创建时间
MsgType 消息类型,event
Event 事件类型,subscribe(订阅)、unsubscribe(取消订阅)、CLICK(自定义菜单点击事件)
EventKey 事件KEY值,与自定义菜单接口中KEY值对应 展开
展开全部
/**
* 相关回复
*/
public function responseMsg()
{
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//返回回复数据
if (!empty($postStr))
{
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;//发送消息方ID
$toUsername = $postObj->ToUserName;//接收消息方ID
$keyword = trim($postObj->Content);//用户发送的消息
$times = time();//发送时间
$MsgType = $postObj->MsgType;//消息类型
$msgType = "text";
if($MsgType=='event')
{
$MsgEvent = $postObj->Event;//获取事件类型
if ($MsgEvent=='subscribe')
{
//订阅事件
}
elseif ($MsgEvent=='CLICK')
{
//点击事件
$EventKey = $postObj->EventKey;//菜单的自定义的key值,可以根据此值判断用户点击了什么内容,从而推送不同信息
switch($EventKey)
{
case "V1001_TODAY_MUSIC" :
//要返回相关内容
break;
case "V1001_TODAY_SINGER" :
//要返回相关内容
break;
case "V1001_HELLO_WORLD" :
//要返回相关内容
break;
case "V1001_GOOD" :
//要返回相关内容
break;
}
}
}
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $times, "text", "这里是要说的内容");
}
else
{
echo '没有任何消息传递';
}
}
试试这个看,我段时间也在看,但是还没有机会试
更多追问追答
追问
case "V1001_TODAY_MUSIC" :
//要返回相关内容
这个相关内容应该怎么写 也是返回xml还是一个字符串
追答
这个就要看你的功能了啊,比如 V1001_TODAY_MUSIC
case "V1001_TODAY_MUSIC" :
$content = "请输入你的订单号";
break;
然后在下面的输出语句
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $times, "text", $content);
展开全部
说下过程
1.先把菜单放到HTML里面
2.切换按钮的时候用JS获取KEY和VALUE
3.用AJAX提交到PHP文件
4.在PHP组织XML代码
5.PHP用scoket或者CURL进行数据提交,提交到接口
6.服务器响应数据到PHP,PHP返回到JS JS将响应的字符串组织一下显示到页面
END。
1.先把菜单放到HTML里面
2.切换按钮的时候用JS获取KEY和VALUE
3.用AJAX提交到PHP文件
4.在PHP组织XML代码
5.PHP用scoket或者CURL进行数据提交,提交到接口
6.服务器响应数据到PHP,PHP返回到JS JS将响应的字符串组织一下显示到页面
END。
更多追问追答
追问
如果不通过HTML呢
现在是按钮点击事件发生以后,微信会直接返回一个消息,
追答
既然是做在WEB上面,异步逻辑传输只有AJAX,也就是说可能直接可以AJAX提交给微信接口。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你应该起诉你朋友,这事跟他爸又没多大关系。
本来应该在借款时你就应该要求你朋友提供房子抵押的相关资料,以证明其真实性。现在再说这事也晚了。
你现在应该尽量收集相信证据,必要的话可以和出借人联合起来,一起起诉你朋友。
本来应该在借款时你就应该要求你朋友提供房子抵押的相关资料,以证明其真实性。现在再说这事也晚了。
你现在应该尽量收集相信证据,必要的话可以和出借人联合起来,一起起诉你朋友。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么时候回来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询