忽略dll文件git

This commit is contained in:
“wanyongkang”
2023-07-29 10:19:42 +08:00
parent 7f97317bcc
commit b562aba2b1
3868 changed files with 63608 additions and 385427 deletions

View File

@@ -1,56 +0,0 @@
using System;
using System.Xml.Linq;
namespace Hncore.Wx.Open
{
public static class InfoTypeHelper
{
/// <summary>
/// 根据xml信息返回类型
/// 授权信息返回的是 InfoType
/// 微信交互消息和事件返回的是 MsgType
/// </summary>
/// <param name="doc"></param>
/// <returns></returns>
public static RequestInfoType GetRequestInfoType(XDocument doc)
{
var reqType = "";
var typeNode = doc.Root.Element("InfoType");
if (typeNode != null)
{
reqType = typeNode.Value;
}
else
{
typeNode = doc.Root.Element("MsgType");
reqType = typeNode.Value;
if (reqType == "event")
{
reqType = "event_" + doc.Root.Element("Event").Value;
var eventKey = doc.Root.Element("EventKey");
if (null != (eventKey) && eventKey.Value.StartsWith("qrscene_"))
{
reqType = "event_subscribe_qrscene";
}
}
}
return GetRequestInfoType(reqType);
}
/// <summary>
/// 根据xml信息返回InfoType
/// </summary>
/// <returns></returns>
public static RequestInfoType GetRequestInfoType(string str)
{
try
{
return (RequestInfoType)Enum.Parse(typeof(RequestInfoType), str, true);
}
catch
{
return RequestInfoType.none;
}
}
}
}

View File

@@ -1,16 +0,0 @@
using System.Threading.Tasks;
namespace Hncore.Wx.Open
{
/// <summary>
/// 请求消息接口
/// </summary>
public interface IMessageBase
{
string AppId { get; set; }
long CreateTime { get; set; }
RequestInfoType InfoType { get; }
Task<bool> Handler();
}
}

View File

@@ -1,38 +0,0 @@
/*
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[qrscene_123123]]></EventKey>
<Ticket><![CDATA[TICKET]]></Ticket>
</xml>
*/
using System.Threading.Tasks;
namespace Hncore.Wx.Open
{
/// <summary>
/// 扫描二维码关注
/// </summary>
public class MessageDefault : IMessageBase
{
public MessageDefault()
{
}
public RequestInfoType InfoType
{
get { return RequestInfoType.none; }
}
public string AppId { get; set; }
public long CreateTime { get; set; }
public async Task<bool> Handler()
{
return true;
}
}
}

View File

@@ -1,95 +0,0 @@
using Hncore.Infrastructure.Common;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.IO;
using System.Xml;
using System.Xml.Linq;
namespace Hncore.Wx.Open
{
/// <summary>
/// RequestMessage工厂
/// </summary>
public static class MessageFactory
{
public static IServiceCollection Service { get; set; }
/// <summary>
/// 获取XDocument转换后的IRequestMessageBase实例。
/// 如果MsgType不存在抛出UnknownRequestMsgTypeException异常
/// </summary>
/// <returns></returns>
public static IMessageBase GetRequestEntity(XDocument doc)
{
IMessageBase requestMessage = null;
RequestInfoType infoType;
try
{
infoType = InfoTypeHelper.GetRequestInfoType(doc);
switch (infoType)
{
case RequestInfoType.component_verify_ticket:
requestMessage = new MessageComponentVerifyTicket(doc);
break;
case RequestInfoType.unauthorized:
requestMessage = new MessageUnauthorized(doc);
break;
case RequestInfoType.authorized:
requestMessage = new MessageAuthorized(doc);
break;
case RequestInfoType.updateauthorized:
requestMessage = new MessageUpdateAuthorized(doc);
break;
case RequestInfoType.notify_third_fasteregister:
requestMessage = new MessageThirdFasteRegister(doc);
break;
case RequestInfoType.event_subscribe_qrscene:
requestMessage = new MessageEventSubscribeQrscene(doc);
break;
case RequestInfoType.event_SCAN:
requestMessage = new MessageEventScan(doc);
break;
case RequestInfoType.event_subscribe:
requestMessage = new MessageEventSubscribe(doc);
break;
default:
return new MessageDefault();
}
}
catch (Exception ex)
{
LogHelper.Error("MessageFactory 解析失败", ex.Message);
}
return requestMessage;
}
/// <summary>
/// 获取XDocument转换后的IRequestMessageBase实例。
/// 如果MsgType不存在抛出UnknownRequestMsgTypeException异常
/// </summary>
/// <returns></returns>
public static IMessageBase GetRequestEntity(string xml)
{
return GetRequestEntity(XDocument.Parse(xml));
}
/// <summary>
/// 获取XDocument转换后的IRequestMessageBase实例。
/// 如果MsgType不存在抛出UnknownRequestMsgTypeException异常
/// </summary>
/// <param name="stream">如Request.InputStream</param>
/// <returns></returns>
public static IMessageBase GetRequestEntity(Stream stream)
{
using (XmlReader xr = XmlReader.Create(stream))
{
var doc = XDocument.Load(xr);
return GetRequestEntity(doc);
}
}
}
}

View File

@@ -1,60 +0,0 @@
/*
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[qrscene_123123]]></EventKey>
<Ticket><![CDATA[TICKET]]></Ticket>
</xml>
*/
using Hncore.Pass.MsgCenter.Constant;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Xml.Linq;
using Hncore.Pass.MsgCenter.Util;
namespace Hncore.Wx.Open
{
/// <summary>
/// 扫描二维码关注
/// </summary>
public class MessageEventScan : MessageMPBase
{
public MessageEventScan(XDocument doc) : base(doc)
{
this.EventKey = doc.Root.Element("EventKey").Value;
this.Ticket = doc.Root.Element("Ticket").Value;
}
public override RequestInfoType InfoType
{
get { return RequestInfoType.event_SCAN; }
}
/// <summary>
/// 事件KEY值qrscene_为前缀后面为二维码的参数值
/// </summary>
public string EventKey { get; set; }
/// <summary>
/// 二维码的ticket可用来换取二维码图片
/// </summary>
public string Ticket { get; set; }
public override async Task<bool> Handler()
{
///参数形式 method?a=1&b=2
var dataUrl = this.EventKey;
var model = UrlHelper.ParseUrl(dataUrl);
if (model.Method == "addtag")
{
var tagid = model.Args["tagid"];
WxOpenApi.AddTag(this.AppId, new List<string>() { this.FromUserName }, tagid);
}
return true;
}
}
}

View File

@@ -1,38 +0,0 @@
/*
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>
*/
using Hncore.Infrastructure.Common;
using Microsoft.EntityFrameworkCore;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace Hncore.Wx.Open
{
/// <summary>
/// 关注
/// </summary>
public class MessageEventSubscribe : MessageMPBase
{
public MessageEventSubscribe(XDocument doc) : base(doc)
{
}
public override RequestInfoType InfoType
{
get { return RequestInfoType.event_subscribe; }
}
public override async Task<bool> Handler()
{
LogHelper.Info("MessageEventSubscribe", $"AppId={this.AppId},openid={this.FromUserName}");
var userInfo = await WxOpenApi.GetUserUnionIDinfo(this.AppId, this.FromUserName);
LogHelper.Info("MessageEventSubscribe_userInfo", $"AppId={this.AppId},unionid={ userInfo.unionid}");
return true;
}
}
}

View File

@@ -1,64 +0,0 @@
/*
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[qrscene_123123]]></EventKey>
<Ticket><![CDATA[TICKET]]></Ticket>
</xml>
*/
using Hncore.Pass.MsgCenter.Util;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace Hncore.Wx.Open
{
/// <summary>
/// 扫描二维码关注
/// </summary>
public class MessageEventSubscribeQrscene : MessageMPBase
{
public MessageEventSubscribeQrscene(XDocument doc) : base(doc)
{
this.EventKey = doc.Root.Element("EventKey").Value;
this.Ticket = doc.Root.Element("Ticket").Value;
}
public override RequestInfoType InfoType
{
get { return RequestInfoType.event_subscribe_qrscene; }
}
/// <summary>
/// 事件KEY值qrscene_为前缀后面为二维码的参数值
/// </summary>
public string EventKey { get; set; }
/// <summary>
/// 二维码的ticket可用来换取二维码图片
/// </summary>
public string Ticket { get; set; }
public override async Task<bool> Handler()
{
///参数形式 method?a=1&b=2
var dataUrl = EventKey.TrimStart("qrscene_".ToCharArray());
var model = UrlHelper.ParseUrl(dataUrl);
if (model.Method == "addtag")
{
var tagid = model.Args["tagid"];
WxOpenApi.AddTag(this.AppId, new List<string>() { this.FromUserName }, tagid);
}
var userInfo = await WxOpenApi.GetUserUnionIDinfo(this.AppId, this.FromUserName);
return true;
}
}
}

View File

@@ -1,35 +0,0 @@
using System.Threading.Tasks;
using System.Xml.Linq;
namespace Hncore.Wx.Open
{
/// <summary>
/// 请求消息
/// </summary>
public class MessageMPBase : IMessageBase
{
public MessageMPBase(XDocument doc)
{
this.FromUserName = doc.Root.Element("FromUserName").Value;
this.ToUserName = doc.Root.Element("ToUserName").Value;
this.CreateTime = long.Parse(doc.Root.Element("CreateTime").Value);
}
public string AppId { get; set; }
public string FromUserName { get; set; }
public string ToUserName { get; set; }
public long CreateTime { get; set; }
public virtual RequestInfoType InfoType
{
get { return RequestInfoType.component_verify_ticket; }
}
public virtual async Task<bool> Handler()
{
return true;
}
}
}

View File

@@ -1,45 +0,0 @@
/*
<xml>
<AppId>第三方平台appid</AppId>
<CreateTime>1413192760</CreateTime>
<InfoType>authorized</InfoType>
<AuthorizerAppid>公众号appid</AuthorizerAppid>
<AuthorizationCode>授权码code</AuthorizationCode>
<AuthorizationCodeExpiredTime>过期时间</AuthorizationCodeExpiredTime>
</xml>
*/
using System;
using System.Xml.Linq;
namespace Hncore.Wx.Open
{
/// <summary>
/// 授权成功通知
/// </summary>
public class MessageAuthorized : MessageOpenBase
{
public MessageAuthorized(XDocument doc) : base(doc)
{
this.AuthorizerAppid = doc.Root.Element("AuthorizerAppid").Value;
this.AuthorizationCode = doc.Root.Element("AuthorizationCode").Value;
this.AuthorizationCodeExpiredTime = DateTimeOffset.Parse(doc.Root.Element("AuthorizationCodeExpiredTime").Value);
}
public override RequestInfoType InfoType
{
get { return RequestInfoType.authorized; }
}
/// <summary>
/// 公众号appid
/// </summary>
public string AuthorizerAppid { get; set; }
/// <summary>
/// 授权码code
/// </summary>
public string AuthorizationCode { get; set; }
/// <summary>
/// 过期时间
/// </summary>
public DateTimeOffset AuthorizationCodeExpiredTime { get; set; }
}
}

View File

@@ -1,32 +0,0 @@
using Hncore.Pass.MsgCenter.Constant;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace Hncore.Wx.Open
{
//<xml>
// <AppId> </AppId>
// <CreateTime>1413192605 </CreateTime>
// <InfoType> </InfoType>
// <ComponentVerifyTicket> </ComponentVerifyTicket>
//</xml>
public class MessageComponentVerifyTicket : MessageOpenBase
{
public MessageComponentVerifyTicket(XDocument doc):base(doc)
{
this.ComponentVerifyTicket = doc.Root.Element("ComponentVerifyTicket").Value;
}
public override RequestInfoType InfoType
{
get { return RequestInfoType.component_verify_ticket; }
}
public string ComponentVerifyTicket { get; set; }
public override async Task<bool> Handler()
{
//把ticket存入redis中
return await RedisHelper.SetAsync(ConstantConfig.Redis_Psipwechat_Ticket_Key, this.ComponentVerifyTicket);
}
}
}

View File

@@ -1,28 +0,0 @@
using System.Threading.Tasks;
using System.Xml.Linq;
namespace Hncore.Wx.Open
{
/// <summary>
/// 请求消息
/// </summary>
public class MessageOpenBase : IMessageBase
{
public MessageOpenBase(XDocument doc)
{
this.AppId = doc.Root.Element("AppId").Value;
this.CreateTime = long.Parse(doc.Root.Element("CreateTime").Value);
}
public string AppId { get; set; }
public long CreateTime { get; set; }
public virtual RequestInfoType InfoType
{
get { return RequestInfoType.component_verify_ticket; }
}
public virtual async Task<bool> Handler()
{
return true;
}
}
}

View File

@@ -1,70 +0,0 @@
using System;
using System.Xml.Linq;
namespace Hncore.Wx.Open
{
/// <summary>
/// 注册审核事件推送
/// </summary>
public class MessageThirdFasteRegister : MessageOpenBase
{
public MessageThirdFasteRegister(XDocument doc) : base(doc)
{
}
public override RequestInfoType InfoType
{
get { return RequestInfoType.notify_third_fasteregister; }
}
/// <summary>
/// 创建小程序appid
/// </summary>
public string appid { get; set; }
public string status { get; set; }
/// <summary>
/// 第三方授权码
/// </summary>
public string auth_code { get; set; }
public string msg { get; set; }
/// <summary>
/// 注册时提交的资料
/// </summary>
public info info {get;set;}
}
/// <summary>
/// 注册时提交的资料信息
/// </summary>
public class info
{
/// <summary>
/// 企业名称
/// </summary>
public string name { get; set; }
/// <summary>
/// 企业代码
/// </summary>
public string code { get; set; }
/// <summary>
/// 企业代码类型
/// </summary>
public CodeType code_type { get; set; }
/// <summary>
/// 法人微信号
/// </summary>
public string legal_persona_wechat { get; set; }
/// <summary>
/// 法人姓名
/// </summary>
public string legal_persona_name { get; set; }
/// <summary>
/// 第三方联系电话
/// </summary>
public string component_phone { get; set; }
}
}

View File

@@ -1,44 +0,0 @@
/*
<xml>
<AppId>第三方平台appid</AppId>
<CreateTime>1413192760</CreateTime>
<InfoType>unauthorized</InfoType>
<AuthorizerAppid>公众号appid</AuthorizerAppid>
</xml>
*/
using Hncore.Infrastructure.Common;
using System;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace Hncore.Wx.Open
{
public class MessageUnauthorized : MessageOpenBase
{
public MessageUnauthorized(XDocument doc) : base(doc)
{
this.AuthorizerAppid = doc.Root.Element("AuthorizerAppid").Value;
}
public override RequestInfoType InfoType
{
get { return RequestInfoType.unauthorized; }
}
public string AuthorizerAppid { get; set; }
public override async Task<bool> Handler()
{
if (!string.IsNullOrEmpty(this.AuthorizerAppid))
{
try
{
}
catch(Exception ex)
{
LogHelper.Error("MessageUnauthorized",ex.Message);
}
}
return false;
}
}
}

View File

@@ -1,36 +0,0 @@
using System;
using System.Xml.Linq;
namespace Hncore.Wx.Open
{
/// <summary>
/// 授权更新通知
/// </summary>
public class MessageUpdateAuthorized : MessageOpenBase
{
public MessageUpdateAuthorized(XDocument doc) : base(doc)
{
this.AuthorizerAppid = doc.Root.Element("AuthorizerAppid").Value;
this.AuthorizationCode = doc.Root.Element("AuthorizationCode").Value;
this.AuthorizationCodeExpiredTime = DateTimeOffset.Parse(doc.Root.Element("AuthorizationCodeExpiredTime").Value);
}
public override RequestInfoType InfoType
{
get { return RequestInfoType.updateauthorized; }
}
/// <summary>
/// 公众号appid
/// </summary>
public string AuthorizerAppid { get; set; }
/// <summary>
/// 授权码code
/// </summary>
public string AuthorizationCode { get; set; }
/// <summary>
/// 过期时间
/// </summary>
public DateTimeOffset AuthorizationCodeExpiredTime { get; set; }
}
}