微信公众号第三方 推送component_verify_ticket协议

时间:2024-01-13 18:52:26

整了一天,终于弄明白了 component_verify_ticket 怎么获取的了。在此先批一下微信公众号平台,文档又没写清楚,又没有客服,想搞哪样哈! 好,回归正题。

第一,先通过开发者资质认证,再创建一个第三方开发平台,待审核通过后。 授权事件接收URL 每隔10分钟,微信服务器会定时向这个地址推送消息!

如果你的填写的接收url 是asp.net的,如下案例

protected void Page_Load(object sender, EventArgs e)
{

try
{

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Request.InputStream);
string xml = xmlDoc.InnerXml;
string postData = xml;

////公众号第三方平台的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);

string path = "~/" + DateTime.Today.ToString("yyMMdd") + ".txt";
if (!File.Exists(System.Web.HttpContext.Current.Server.MapPath(path)))
{
File.Create(System.Web.HttpContext.Current.Server.MapPath(path)).Close();
}
using (StreamWriter w = File.AppendText(System.Web.HttpContext.Current.Server.MapPath(path)))
{
w.WriteLine("\r\nLog Entry : ");
w.WriteLine("{0}", DateTime.Now.ToString(CultureInfo.InvariantCulture));
w.WriteLine(xml);
w.WriteLine("________________________________________________________");
w.WriteLine(sMsg);
w.WriteLine("_____________________________________________1___________");
w.Flush();
w.Close();
if (sMsg != "") { Response.Write("success"); }
}
}
catch (Exception ex)
{
 
}
}

记住不能打开直接打开连接,它接收到微信的component_verify_ticket 会记录到日志中,或者你可以在记录日志的那个步骤 换成你 记录到数据库里面!

在接收到component_verify_ticket 后,记得返回success。

希望可以帮到你!