微信公众号接收消息时参数简单理解

469次阅读
没有评论

我们给我们关注的公众号发送信息,公众号服务器会给我们的服务器地址通过两种方式发送信息,get和post

举例我们的php代码为

//获取微信发来的内容
$gets_content = $_GET;
$posts_content = file_get_contents('php://input');
//写入get 内容
file_put_contents('info.txt',json_encode($gets_content)."\n",FILE_APPEND);
// 写入post 内容
file_put_contents('info.txt',json_encode($posts_content)."\n",FILE_APPEND);

那么我们获取到的内容分为

GET格式(这个是安全模式下我们获取到的get数据,明文模式下,会没有encrypt_type,msg_signature这两个)

{
"signature":"e49f079b0b54b2bcb969f94771d8674c44e427b5",
"timestamp":"1664783380",
"nonce":"760501301",
"openid":"ouRL456Q29l82zNwFmOwI3hc4uEo",
"encrypt_type":"aes",
"msg_signature":"ca9a42bd1b865b3dc44274acfa3658793618eb50"
}

和POST格式(加密的)

//这个是post部分,加密格式的
"<xml>\n    <ToUserName><![CDATA[gh_17b02f54cdc2]]><\/ToUserName>\n    <Encrypt><![CDATA[TV0XwbKpPd2Hr8EGPK9L7E6+jkcTDEEMf2ENfcnEUbEnIN6c61v66je9slmtlMVHwb78phRuO\/5omqxetSsREpwuh\/bqD9eXbJq1hWvFg6jyFauXFH8eFKjTdku\/jc7VNvlRZ8m06x2FzN6j6d9HJV6ajdNXoDELGzZY5Hg4nDTr4S15Nh1FdCOucurRiYO0RCy8IM6XYI8yD\/cCLTHoyiIc5BuHq6ms4chBnlrvIn4E0S37aIlpPTbu5TTq2Y9526eOY7VNQr7FZTDOz7Bq\/+GgFNM5GD678rRaB5MDXVVeyMAQyYj3LVVFvrQSHcTPNiUDkEkeQrV9FW1jZ\/Hw7pEWdBtehQEi9N+nzthLQKZIlQDLhx6jlLOh7rmcCraiQUzu6MmpX+d6FAIB7yY+22oPJ4VZ0oxBpKXdFfHAfmg=]]><\/Encrypt>\n<\/xml>\n"

我们来附上一份如果非加密形式的POST内容,并整理一下格式,我测试的就是个文本内容,各种格式会有稍微的差异,但是差异不大,顶多多一两条具体信息内容

"<xml>
    <ToUserName><![CDATA[gh_17b02f54cdc2]]><\/ToUserName>\n  //这个就是发送给谁,我们自己
    <FromUserName><![CDATA[ouRL456Q29l82zNwFmOwI3hc4uEo]]><\/FromUserName>\n    //谁发送的,OpenID
    <CreateTime>1664783998<\/CreateTime>\n      //发送时间
    <MsgType><![CDATA[text]]><\/MsgType>\n      //发送内容的类型,其中的text代表文本,这个可以有很多种,例如text,image,voice(语音),video(视频),shortvideo(小视频),location,link
    <Content><![CDATA[1111111]]><\/Content>\n   //发送的内容主体,我发送了1111111做测试
    <MsgId>23833973921440014<\/MsgId>\n         //本条内容在微信内部的内容id
<\/xml>"

我们正式使用中,肯定是使用加密格式的,不可能明文,但是测试或者开发阶段为了方便测试,很多情况会使用明文。

 

2
李路昌
版权声明:本站原创文章,由 李路昌 2022-10-03发表,共计1763字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)