公众号第三方平台开发 获取 component_verify_ticket
8、推送component_verify_ticket协议
在公众号第三方平台创建审核通过后,微信服务器会向其“授权事件接收URL”每隔10分钟定时推送component_verify_ticket。第三方平台方在收到ticket推送后也需进行解密(详细请见【消息加解密接入指引】),接收到后必须直接返回字符串success。
上面是微信API里的原话,在回调页面做了下日志记录:
string post = "";string get = "";for (int i = 0; i < Request.Form.Count; i++){post += Request.Form.Keys[i] + "=" + Request.Form[i] + " ";}for (int i = 0; i < Request.QueryString.Count; i++){get += Request.QueryString.Keys[i] + "=" + Request.QueryString[i] + " ";}</span>
但是,日志记录的Post和Get参数,都没内容 component_verify_ticket 相关的内容。
后面经过一番查询,原来是要这样才能获取到微信推送的内容:
byte[] data = Request.BinaryRead(Request.TotalBytes);
string postData = Encoding.Default.GetString(data);
//公众号第三方平台的appid
string appId = ConfigurationManager.AppSettings["WeixinAppID"];
//第三方平台申请时填写的接收消息的校验token
string token = ConfigurationManager.AppSettings["WeixinToken"];
//第三方平台申请时填写的接收消息的加密symmetric_key
string encodingAesKey = ConfigurationManager.AppSettings["WeixinEncodingAESKey"];
string sMsg = "";//解密后的内容
var msg = new WXBizMsgCrypt(token, encodingAesKey, appId);
int ret = msg.DecryptMsg(
Request.QueryString["msg_signature"],
Request.QueryString["timestamp"],
Request.QueryString["nonce"],
postData,
ref sMsg);
AppService.LogService.Log("回调参数", "构造参数:" +
" appId:" + appId +
" token:" + token +
" encodingAesKey:" + encodingAesKey + " 解密参数:" +
" signature:" + Request.QueryString["signature"] +
" msg_signature:" + Request.QueryString["msg_signature"] +
" timestamp:" + Request.QueryString["timestamp"] +
" nonce:" + Request.QueryString["nonce"] +
" postData:" + postData
);
AppService.LogService.Log("解密结果", ret + " " + sMsg);
解密后得到的结果大概是这样:
<xml>
<AppId><![CDATA[wx34b5f92cdbb24fe4]]>
</AppId>
<CreateTime>1436066428</CreateTime>
<InfoType><![CDATA[component_verify_ticket]]>
</InfoType>
<ComponentVerifyTicket><![CDATA[ticket@@@SfS2Ck4oxPhL0LRSJH5v9Pr68vjeDfWWPx9SzIWzm6PeKGeEoszohQ-5-EBm4RajI7AKlzIz1Kj1ghPg0t199w]]>
</ComponentVerifyTicket>
</xml>
ComponentVerifyTicket节点即是我们需要的结果。
希望遇到同样问题的童鞋不用走弯路。
公众号第三方平台开发 获取 component_verify_ticket相关推荐
- 微信公众号第三方平台开发PYTHON教程 PART 2
github地址:cppfun@wechat-open-third-party-dev 微信公众号第三方平台开发python教程 Part 1 这一节肯定是在第一节的基础上,如果你没有看过第一节,可能 ...
- 公众号第三方平台开发 - 教程五 代公众号发起网页授权源码
教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建公众号第三方平台 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台 ...
- 微信开放平台 公众号第三方平台开发 教程一 平台介绍
教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建公众号第三方平台 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台 ...
- 微信开放平台公众号第三方平台开发 教程一 平台介绍
微信现在火,火的如火如荼,给我们这些第三方的开发者带来了不少机会,相信现在有不少人在基于微信的公众平台在做二次开发,接下来会一系列的文章来介绍微信的另一种开发模式- 基于微信开发平台的公众号第 ...
- 公众号第三方平台开发流程详解
准备工作 1. 注册申请 访问https://open.weixin.qq.com 根据指引进行注册申请,申请流程相对比较麻烦,需要耐心等待审核 2. 创建第三方平台 进入'管理中心->创建第三 ...
- 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台
更多微信技术交流,请加QQ群:289709451.287090836 公众号第三方平台的开放,是为了让公众号运营者,在面向垂直行业需求时,可以一键登录授权给第三方的公众号运营平台,通过第三方开 ...
- 微信开放平台之公众号第三方平台开发及全网发布验证
技术交流请加QQ群:Jeewx微信开发④[289709451] 微信公众号第三方平台的开放,让公众号运营者在面向垂直行业需求时,可以通过一键登录授权给第三方开发者,来完成相关的处理能力,方便快捷,那如 ...
- 微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo
更多微信技术交流,请加QQ群:289709451.287090836 前几章中我讲解了微信开发平台提供第三方平台的好处,和使用流程,如果你看了我的文章相信你对开放平台有了初步的了解,但是在实 ...
- 微信公众号第三方平台开发PYTHON教程 PART 1
微信是一个时代的标志,虽然它现在不温不火,但我们大部分人离不开它.最近我帮朋友的公司接入了微信公众号第三方,使其成为第三方开发者. 网上公众号的开发教程,描述很多,但第三方的就几乎没有,可能是商业部分 ...
最新文章
- 【ACM】杭电OJ 2007
- 5G 行业专网 — 三大运营商的 5G 专网类型
- Cannot resolve corresponding JNI function
- python万年历_Python实现的简单万年历例子分享
- python怎么导入大小字母_isort-用于对python导入的库按照字母进行排序的工具
- 不同模块下包重名怎么解决_注册公司核名通不过,疑难核名有办法解决吗?
- 微软推出一波AI新功能:自动生成图表、更贴心的Cortana和搜索
- java线程冲突问题——不安全的线程例子
- Oracle 11g 字符集修改
- Midori 0.5 发布,轻量级跨平台网页浏览器
- 计算机网络(第七版)谢希仁编著 前五章课后答案计算题详解
- 文本文档怎么转换为html文件,win10系统下如何将文本文档转换为网页
- 线性反馈移位寄存器(LFSR,Linear Feedback Shift Register)
- Go语言实战-nginx日志处理
- ESP32使用SDIO接口注意事项
- 计算机中计算平均数的函数是什么,Excel里怎么求平均数的?函数是什么?!excle2010怎么求平均数...
- 微信小程序头像怎么改变形状_如何实现微信小程序换头像?三步帮你搞定!
- shell脚本:自动更新动态域名的IP地址
- 如何正确看谷歌文档android,在Android webview中查看google文档中的pdf时“无法预览”...
- 亚马逊跨境电商如何运营模式?
热门文章
- Maven报错解决:Element 'dependency' cannot have character [children], because the type's content type is
- linux本地监听创建,linux 创建监听服务器
- SpringBoot自定义参数验证器
- java arrays.sort() c_正面刚算法-Java中Arrays.sort()(一)
- SqlTransaction——事务详解
- 日期Date和字符串之间转换
- FastAPI 之自动化测试数据库接口
- 功能测试Bug频发?测试工作中这点不可忽略
- php 转义 回车 空格 file put content,为什么在服务器上php里执行file_put_contents创建文件返回是false呢,文件目录已经设置为777的权限了,不解...
- mac的mysql数据库管理_Mac使用MySQL Workbench管理MySQL数据库