diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/AdvancedAPIs/External/ExternalApi.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/AdvancedAPIs/External/ExternalApi.cs index a78e9795ac..6eba16033c 100644 --- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/AdvancedAPIs/External/ExternalApi.cs +++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/AdvancedAPIs/External/ExternalApi.cs @@ -10,6 +10,9 @@ 修改标识:lishewen - 20200318 修改描述:v3.7.401 新增“获取客户群列表”“获取客户群详情” API + 修改标识:gokeiyou - 20201013 + 修改描述:v3.7.604 添加外部联系人管理 > 客户管理相关接口 + ----------------------------------------------------------------*/ /* @@ -20,6 +23,7 @@ using Senparc.Weixin.CommonAPIs; using Senparc.Weixin.Entities; using Senparc.Weixin.Work.AdvancedAPIs.External; +using Senparc.Weixin.Work.AdvancedAPIs.External.ExternalJson; using System.Threading.Tasks; namespace Senparc.Weixin.Work.AdvancedAPIs @@ -119,6 +123,91 @@ public static GroupChatGetResult GroupChatGet(string accessTokenOrAppKey, string }, accessTokenOrAppKey); } + + #region 客户管理 + + /// + /// 获取客户列表 + /// + /// 调用接口凭证 + /// 企业成员的userid + /// + /// + [ApiBind(NeuChar.PlatformType.WeChat_Work, "ExternalApi.GetExternalContactList", true)] + public static GetExternalContactListResult GetExternalContactList(string accessTokenOrAppKey, string userid, int timeOut = Config.TIME_OUT) + { + return ApiHandlerWapper.TryCommonApi(accessToken => + { + var url = $"{Config.ApiWorkHost}/cgi-bin/externalcontact/list?access_token={accessToken}&userid={userid}"; + + return CommonJsonSend.Send(null, url, null, CommonJsonSendType.GET, timeOut); + }, accessTokenOrAppKey); + } + + /// + /// 获取客户详情 + /// + /// 调用接口凭证 + /// 外部联系人的userid,注意不是企业成员的帐号 + /// + /// + [ApiBind(NeuChar.PlatformType.WeChat_Work, "ExternalApi.GetExternalContactInfo", true)] + public static GetExternalContactResultJson GetExternalContactInfo(string accessTokenOrAppKey, string externalUserId, int timeOut = Config.TIME_OUT) + { + return ApiHandlerWapper.TryCommonApi(accessToken => + { + var url = $"{Config.ApiWorkHost}/cgi-bin/externalcontact/get?access_token={accessToken}&external_userid={externalUserId}"; + + return CommonJsonSend.Send(null, url, null, CommonJsonSendType.GET, timeOut); + }, accessTokenOrAppKey); + } + + /// + /// 批量获取客户详情 + /// + /// + /// + /// + /// + /// + [ApiBind(NeuChar.PlatformType.WeChat_Work, "ExternalApi.GetExternalContactInfoBatch", true)] + public static GetExternalContactInfoBatchResult GetExternalContactInfoBatch(string accessTokenOrAppKey, string userid, string cursor = "", int limit = 50, int timeOut = Config.TIME_OUT) + { + return ApiHandlerWapper.TryCommonApi(accessToken => + { + var url = $"{Config.ApiWorkHost}/cgi-bin/externalcontact/batch/get_by_user?access_token={accessToken}"; + + var data = new + { + userid, + cursor, + limit + }; + + return CommonJsonSend.Send(null, url, data, CommonJsonSendType.POST, timeOut); + }, accessTokenOrAppKey); + } + + /// + /// 修改客户备注信息 + /// + /// 调用接口凭证 + /// 请求报文 + /// + /// + [ApiBind(NeuChar.PlatformType.WeChat_Work, "ExternalApi.UpdateExternalContactRemark", true)] + public static WorkJsonResult UpdateExternalContactRemark(string accessTokenOrAppKey, UpdateExternalContactRemarkRequest rquest, int timeOut = Config.TIME_OUT) + { + return ApiHandlerWapper.TryCommonApi(accessToken => + { + var url = $"{Config.ApiWorkHost}/cgi-bin/externalcontact/remark?access_token={accessToken}"; + + return CommonJsonSend.Send(null, url, rquest, CommonJsonSendType.POST, timeOut); + }, accessTokenOrAppKey); + } + + #endregion + #endregion @@ -212,6 +301,91 @@ public static async Task GroupChatGetAsync(string accessToke }, accessTokenOrAppKey).ConfigureAwait(false); } + + #region 客户管理 + + /// + /// 【异步方法】获取客户列表 + /// + /// 调用接口凭证 + /// 企业成员的userid + /// + /// + [ApiBind(NeuChar.PlatformType.WeChat_Work, "ExternalApi.GetExternalContactListAsync", true)] + public static async Task GetExternalContactListAsync(string accessTokenOrAppKey, string userid, int timeOut = Config.TIME_OUT) + { + return await ApiHandlerWapper.TryCommonApiAsync(async accessToken => + { + var url = $"{Config.ApiWorkHost}/cgi-bin/externalcontact/list?access_token={accessToken}&userid={userid}"; + + return await CommonJsonSend.SendAsync(null, url, null, CommonJsonSendType.GET, timeOut).ConfigureAwait(false); + }, accessTokenOrAppKey).ConfigureAwait(false); + } + + /// + /// 【异步方法】获取客户详情 + /// + /// 调用接口凭证 + /// 外部联系人的userid,注意不是企业成员的帐号 + /// + /// + [ApiBind(NeuChar.PlatformType.WeChat_Work, "ExternalApi.GetExternalContactInfoAsync", true)] + public static async Task GetExternalContactInfoAsync(string accessTokenOrAppKey, string externalUserId, int timeOut = Config.TIME_OUT) + { + return await ApiHandlerWapper.TryCommonApiAsync(async accessToken => + { + var url = $"{Config.ApiWorkHost}/cgi-bin/externalcontact/get?access_token={accessToken}&external_userid={externalUserId}"; + + return await CommonJsonSend.SendAsync(null, url, null, CommonJsonSendType.GET, timeOut).ConfigureAwait(false); + }, accessTokenOrAppKey).ConfigureAwait(false); + } + + /// + /// 【异步方法】批量获取客户详情 + /// + /// + /// + /// + /// + /// + [ApiBind(NeuChar.PlatformType.WeChat_Work, "ExternalApi.GetExternalContactInfoBatchAsync", true)] + public static async Task GetExternalContactInfoBatchAsync(string accessTokenOrAppKey, string userid, string cursor = "", int limit = 50, int timeOut = Config.TIME_OUT) + { + return await ApiHandlerWapper.TryCommonApiAsync(async accessToken => + { + var url = $"{Config.ApiWorkHost}/cgi-bin/externalcontact/batch/get_by_user?access_token={accessToken}"; + + var data = new + { + userid, + cursor, + limit + }; + + return await CommonJsonSend.SendAsync(null, url, data, CommonJsonSendType.POST, timeOut).ConfigureAwait(false); + }, accessTokenOrAppKey).ConfigureAwait(false); + } + + /// + /// 修改客户备注信息 + /// + /// 调用接口凭证 + /// 请求报文 + /// + /// + [ApiBind(NeuChar.PlatformType.WeChat_Work, "ExternalApi.UpdateExternalContactRemarkAsync", true)] + public static async Task UpdateExternalContactRemarkAsync(string accessTokenOrAppKey, UpdateExternalContactRemarkRequest rquest, int timeOut = Config.TIME_OUT) + { + return await ApiHandlerWapper.TryCommonApiAsync(async accessToken => + { + var url = $"{Config.ApiWorkHost}/cgi-bin/externalcontact/remark?access_token={accessToken}"; + + return await CommonJsonSend.SendAsync(null, url, rquest, CommonJsonSendType.POST, timeOut).ConfigureAwait(false); + }, accessTokenOrAppKey).ConfigureAwait(false); + } + + #endregion + #endregion } } diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/AdvancedAPIs/External/ExternalJson/GetExternalContactInfoBatchResult.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/AdvancedAPIs/External/ExternalJson/GetExternalContactInfoBatchResult.cs new file mode 100644 index 0000000000..a268df2109 --- /dev/null +++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/AdvancedAPIs/External/ExternalJson/GetExternalContactInfoBatchResult.cs @@ -0,0 +1,63 @@ +/*---------------------------------------------------------------- + Copyright (C) 2020 Senparc + + 文件名:GetExternalContactInfoBatchResult.cs + 文件功能描述:批量获取客户详情 返回结果 + + + 创建标识:gokeiyou - 20201013 + +----------------------------------------------------------------*/ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Senparc.Weixin.Entities; + +namespace Senparc.Weixin.Work.AdvancedAPIs.External.ExternalJson +{ + /// + /// 批量获取客户详情 返回结果 + /// + public class GetExternalContactInfoBatchResult : WorkJsonResult + { + /// + /// + /// + public List external_contact_list { get; set; } + + /// + /// 分页游标,再下次请求时填写以获取之后分页的记录,如果已经没有更多的数据则返回空 + /// + public string next_cursor { get; set; } + } + + public class ExternalContactList + { + public ExternalContact external_contact { get; set; } + public FollowUser follow_info { get; set; } + } + + + public class ExternalContact + { + public string external_userid { get; set; } + public string name { get; set; } + public int type { get; set; } + public string avatar { get; set; } + public int gender { get; set; } + public string unionid { get; set; } + } + + public class FollowUser + { + public string remark { get; set; } + public string description { get; set; } + public long creattime { get; set; } + public string[] tag_id { get; set; } + public string[] remark_mobiles { get; set; } + public int add_way { get; set; } + } +} diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/AdvancedAPIs/External/ExternalJson/GetExternalContactListResult.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/AdvancedAPIs/External/ExternalJson/GetExternalContactListResult.cs new file mode 100644 index 0000000000..6a96c79503 --- /dev/null +++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/AdvancedAPIs/External/ExternalJson/GetExternalContactListResult.cs @@ -0,0 +1,31 @@ +/*---------------------------------------------------------------- + Copyright (C) 2020 Senparc + + 文件名:GetExternalContactInfoBatchResult.cs + 文件功能描述:批量获取客户详情 返回结果 + + + 创建标识:gokeiyou - 20201013 + +----------------------------------------------------------------*/ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Senparc.Weixin.Entities; + +namespace Senparc.Weixin.Work.AdvancedAPIs.External.ExternalJson +{ + /// + /// 获取客户列表返回实体 + /// + public class GetExternalContactListResult : WorkJsonResult + { + /// + /// 外部联系人的userid列表 + /// + public List external_userid { get; set; } + } +} diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/AdvancedAPIs/External/ExternalJson/UpdateExternalContactRemarkRequest.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/AdvancedAPIs/External/ExternalJson/UpdateExternalContactRemarkRequest.cs new file mode 100644 index 0000000000..b8884c3ec3 --- /dev/null +++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/AdvancedAPIs/External/ExternalJson/UpdateExternalContactRemarkRequest.cs @@ -0,0 +1,51 @@ +/*---------------------------------------------------------------- + Copyright (C) 2020 Senparc + + 文件名:GetExternalContactInfoBatchResult.cs + 文件功能描述:批量获取客户详情 返回结果 + + + 创建标识:gokeiyou - 20201013 + +----------------------------------------------------------------*/ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Senparc.Weixin.Work.AdvancedAPIs.External.ExternalJson +{ + public class UpdateExternalContactRemarkRequest + { + /// + /// 企业成员的userid + /// + public string userid { get; set; } + /// + /// 外部联系人userid + /// + public string external_userid { get; set; } + /// + /// 此用户对外部联系人的备注,最多20个字符 + /// + public string remark { get; set; } + /// + /// 此用户对外部联系人的描述,最多150个字符 + /// + public string description { get; set; } + /// + /// 此用户对外部联系人备注的所属公司名称,最多20个字符 + /// + public string remark_company { get; set; } + /// + /// 此用户对外部联系人备注的手机号 + /// + public string[] remark_mobiles { get; set; } + /// + /// 备注图片的mediaid + /// + public string remark_pic_mediaid { get; set; } + } +} diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Entities/Request/Event/RequestMessageEvent_ExternalContact.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Entities/Request/Event/RequestMessageEvent_ExternalContact.cs index 9e4dca8780..894a4e6135 100644 --- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Entities/Request/Event/RequestMessageEvent_ExternalContact.cs +++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Entities/Request/Event/RequestMessageEvent_ExternalContact.cs @@ -13,6 +13,9 @@ 修改标识:OrchesAdam - 20200430 修改描述:v3.7.502 添加编辑企业客户事件 + 修改标识:gokeiyou - 20201013 + 修改描述:v3.7.604 添加外部联系人管理 > 客户管理相关接口 + ----------------------------------------------------------------*/ namespace Senparc.Weixin.Work.Entities.Request.Event @@ -22,6 +25,8 @@ namespace Senparc.Weixin.Work.Entities.Request.Event /// public interface IRequestMessageEvent_Change_ExternalContact_Base : IRequestMessageEventBase { + string SuiteId { get; set; } + string AuthCorpId { get; set; } ExternalContactChangeType ChangeType { get; @@ -30,6 +35,8 @@ ExternalContactChangeType ChangeType public class RequestMessageEvent_Change_ExternalContact_Base : RequestMessageEventBase, IRequestMessageEvent_Change_ExternalContact_Base { + public string SuiteId { get; set; } + public string AuthCorpId { get; set; } public override Work.Event Event { get { return Work.Event.CHANGE_EXTERNAL_CONTACT; } diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Enums.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Enums.cs index b3297451d6..a81c10581f 100644 --- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Enums.cs +++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Enums.cs @@ -29,6 +29,9 @@ v1.4.1 增加“接收通讯录变更事件” 修改标识:jiehanlin - 20200430 修改描述:v3.7.502 添加枚举“客户群变更事件”(CHANGE_EXTERNAL_CHAT) + 修改标识:gokeiyou - 20201013 + 修改描述:v3.7.604 添加外部联系人管理 > 客户管理相关接口 + ----------------------------------------------------------------*/ namespace Senparc.Weixin.Work @@ -183,7 +186,12 @@ public enum ThirdPartyInfo /// /// 通讯录变更通知 /// - CHANGE_CONTACT//更新前字符串:CONTACT_SYNC + CHANGE_CONTACT,//更新前字符串:CONTACT_SYNC + + /// + /// 外部联系人变更通知 + /// + CHANGE_EXTERNAL_CONTACT } diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/MessageHandlers/WorkMessageHandler.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/MessageHandlers/WorkMessageHandler.cs index 6cb53c8c76..68601f233c 100644 --- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/MessageHandlers/WorkMessageHandler.cs +++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/MessageHandlers/WorkMessageHandler.cs @@ -48,6 +48,9 @@ OnThirdPartyEvent_Contact_Sync 改名为 OnThirdPartyEvent_Change_Contact() 修改标识:OrchesAdam - 20200430 修改描述:添加“客户群变更事件”(OnEvent_ChangeExternalChatRequest) + 修改标识:gokeiyou - 20201013 + 修改描述:v3.7.604 添加外部联系人管理 > 客户管理相关接口 + ----------------------------------------------------------------*/ using System; @@ -739,6 +742,33 @@ private string OnThirdPartyEvent(IThirdPartyInfoBase thirdPartyInfo) return OnThirdPartyEvent_Create_Auth((RequestMessageInfo_Create_Auth)thirdPartyInfo); case ThirdPartyInfo.CHANGE_CONTACT: return OnThirdPartyEvent_Change_Contact((RequestMessageInfo_Change_Contact)thirdPartyInfo); + case ThirdPartyInfo.CHANGE_EXTERNAL_CONTACT: + { + var cecRequestMessage = RequestMessage as IRequestMessageEvent_Change_ExternalContact_Base; + switch (cecRequestMessage.ChangeType) + { + case ExternalContactChangeType.add_external_contact: + return OnThirdPartyEvent_ChangeExternalContactAddRequest( + RequestMessage as RequestMessageEvent_Change_ExternalContact_Add); + case ExternalContactChangeType.edit_external_contact: + return OnThirdPartyEvent_ChangeExternalContactUpdateRequest( + RequestMessage as RequestMessageEvent_Change_ExternalContact_Modified); + case ExternalContactChangeType.add_half_external_contact: + return OnThirdPartyEvent_ChangeExternalContactAddHalfRequest( + RequestMessage as RequestMessageEvent_Change_ExternalContact_Add_Half); + case ExternalContactChangeType.del_external_contact: + return OnThirdPartyEvent_ChangeExternalContactDelRequest( + RequestMessage as RequestMessageEvent_Change_ExternalContact_Del); + case ExternalContactChangeType.del_follow_user: + return OnThirdPartyEvent_ChangeExternalContactDelFollowUserRequest( + RequestMessage as RequestMessageEvent_Change_ExternalContact_Del_FollowUser); + case ExternalContactChangeType.msg_audit_approved: + return OnThirdPartyEvent_ChangeExternalContactMsgAudit( + RequestMessage as RequestMessageEvent_Change_ExternalContact_MsgAudit); + default: + throw new UnknownRequestMsgTypeException("未知的外部联系人事件Event.CHANGE_EXTERNAL_CONTACT下属请求信息", null); + } + } default: throw new UnknownRequestMsgTypeException("未知的InfoType请求类型", null); } @@ -769,6 +799,40 @@ protected virtual string OnThirdPartyEvent_Suite_Ticket(RequestMessageInfo_Suite return ThirdPartyEventSuccessResult; } + #region 外部联系人 + + protected virtual string OnThirdPartyEvent_ChangeExternalContactAddRequest(RequestMessageEvent_Change_ExternalContact_Add requestMessage) + { + return ThirdPartyEventSuccessResult; + } + + protected virtual string OnThirdPartyEvent_ChangeExternalContactUpdateRequest(RequestMessageEvent_Change_ExternalContact_Modified requestMessage) + { + return ThirdPartyEventSuccessResult; + } + + protected virtual string OnThirdPartyEvent_ChangeExternalContactAddHalfRequest(RequestMessageEvent_Change_ExternalContact_Add_Half requestMessage) + { + return ThirdPartyEventSuccessResult; + } + + protected virtual string OnThirdPartyEvent_ChangeExternalContactDelRequest(RequestMessageEvent_Change_ExternalContact_Del requestMessage) + { + return ThirdPartyEventSuccessResult; + } + + protected virtual string OnThirdPartyEvent_ChangeExternalContactDelFollowUserRequest(RequestMessageEvent_Change_ExternalContact_Del_FollowUser requestMessage) + { + return ThirdPartyEventSuccessResult; + } + + protected virtual string OnThirdPartyEvent_ChangeExternalContactMsgAudit(RequestMessageEvent_Change_ExternalContact_MsgAudit requestMessage) + { + return ThirdPartyEventSuccessResult; + } + + #endregion + #endregion } } diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/RequestMessageFactory.cs b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/RequestMessageFactory.cs index 18e6facb52..e4ae0d3862 100644 --- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/RequestMessageFactory.cs +++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/RequestMessageFactory.cs @@ -15,6 +15,10 @@ 修改标识:Senparc - 20180909 修改描述:v3.1.2 RequestMessageInfo_Contact_Sync 改名为 RequestMessageInfo_Change_Contact + + 修改标识:gokeiyou - 20201013 + 修改描述:v3.7.604 添加外部联系人管理 > 客户管理相关接口 + ----------------------------------------------------------------*/ using System; @@ -23,6 +27,7 @@ using System.Xml.Linq; using Senparc.Weixin.Exceptions; using Senparc.Weixin.Work.Entities; +using Senparc.Weixin.Work.Entities.Request.Event; using Senparc.NeuChar; using Senparc.NeuChar.Helpers; using Senparc.NeuChar.Context; @@ -84,6 +89,9 @@ public static IWorkRequestMessageBase GetRequestEntity(TMC messageContext, case ThirdPartyInfo.CHANGE_CONTACT://通讯录变更通知 requestMessage = new RequestMessageInfo_Change_Contact(); break; + case ThirdPartyInfo.CHANGE_EXTERNAL_CONTACT: + requestMessage = new RequestMessageEvent_Change_ExternalContact_Base(); + break; default: throw new UnknownRequestMsgTypeException(string.Format("InfoType:{0} 在RequestMessageFactory中没有对应的处理程序!", infoType), new ArgumentOutOfRangeException());//为了能够对类型变动最大程度容错(如微信目前还可以对公众账号suscribe等未知类型,但API没有开放),建议在使用的时候catch这个异常 } diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.csproj b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.csproj index d35f7abb3c..47d1162b73 100644 --- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.csproj +++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.csproj @@ -82,7 +82,13 @@ + + + + + + diff --git a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.netcore3.csproj b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.netcore3.csproj index a85f4193c6..5c38face36 100644 --- a/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.netcore3.csproj +++ b/src/Senparc.Weixin.Work/Senparc.Weixin.Work/Senparc.Weixin.Work.netcore3.csproj @@ -2,7 +2,7 @@ net45;netstandard2.0;netstandard2.1 $(Net35FrameworkPathOverride) - 3.7.603 + 3.7.604 Senparc.Weixin.Work Senparc.Weixin.Work true @@ -151,9 +151,10 @@ v3.7.502.1 “更新任务卡片”接口更新返回类型 v3.7.510.1 GetMemberResult 补充 open_userid、main_department(主部门)属性 v3.7.601 修改“删除标签成员”接口返回参数 - v3.7.603 + v3.7.603 1、企业微信通讯录模块下 成员 实体 更新实体新增别名、MemberBase移除isleader 2、新增is_leader_in_dept + v3.7.604 添加外部联系人管理 > 客户管理相关接口 https://github.com/JeffreySu/WeiXinMPSDK False diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Helpers/EncryptHelper.cs b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Helpers/EncryptHelper.cs index 288cd4a206..7f12c37dc8 100644 --- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Helpers/EncryptHelper.cs +++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Helpers/EncryptHelper.cs @@ -33,6 +33,9 @@ and limitations under the License. 修改标识:Senparc - 20190727 修改描述:完善 AES_Decrypt,处理偶然出现的 adding is invalid and cannot be removed 问题(未发现规律) + 修改标识:likui0623 - 20201013 + 修改描述:添加解密到实例信息方法 + ----------------------------------------------------------------*/ using System; diff --git a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.netcore3.csproj b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.netcore3.csproj index 3fca6b7307..e8efe38221 100644 --- a/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.netcore3.csproj +++ b/src/Senparc.Weixin.WxOpen/src/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen/Senparc.Weixin.WxOpen.netcore3.csproj @@ -1,7 +1,7 @@ net45;netstandard2.0;netstandard2.1 - 3.8.600 + 3.8.601 Senparc.Weixin.WxOpen Senparc.Weixin.WxOpen true @@ -147,7 +147,7 @@ v3.8.511 1、小程序 WxOpenMessageHandler 增加 OnImageRequestAsync 和 OnTextRequestAsync 2、调整 MessageHandler 异步方法执行代码 - v3.8.512 修复普通链接二维码与小程序码-获取校验文件名称及内容 + v3.8.512 添加解密到实例信息方法 https://github.com/JeffreySu/WeiXinMPSDK