static ApiTestBase() { //配置构造器 WeChatSDKBuilder.Create() .WithApiLogger(new DebugLogger("Api")) .WithPayLogger(new DebugLogger("Pay")) .Build(); //注册Key。这里用于单元测试,写死。在实际开发中,可以考虑使用Sesstion来存储 WeChatFrameworkFuncsManager.Current.Register(WeChatFrameworkFuncTypes.GetKey, model => "wxa6eecd3e040a2d1e"); //注册获取配置函数:根据Key获取微信配置(加载一次后续将缓存) WeChatFrameworkFuncsManager.Current.Register(WeChatFrameworkFuncTypes.Config_GetWeChatConfigByKey, model => { var arg = model as WeChatApiCallbackFuncArgInfo; return(new WeChatConfig() { //AppId = "wxe753e9de3a7ebfc2", //AppSecret = "7cc4b4ef1daf99791d9a4f64b8f94648" AppId = "wxaf360c577178e6f5", AppSecret = "42b16416635613b8ca4dd30faaf21362" }); }); }
static ApiTestBase() { //配置构造器 WeChatSDKBuilder.Create() .WithApiLogger(new DebugLogger("Api")) .WithPayLogger(new DebugLogger("Pay")) .Build(); //注册Key。这里用于单元测试,写死。在实际开发中,可以考虑使用Sesstion来存储 WeChatFrameworkFuncsManager.Current.Register(WeChatFrameworkFuncTypes.GetKey, model => "wxa6eecd3e040a2d1e"); //注册获取配置函数:根据Key获取微信配置(加载一次后续将缓存) WeChatFrameworkFuncsManager.Current.Register(WeChatFrameworkFuncTypes.Config_GetWeChatConfigByKey, model => { var arg = model as WeChatApiCallbackFuncArgInfo; return(new WeChatConfig() { AppId = "wx9ff101863db7db9c", AppSecret = "f97b922e9cf4c1aedb4843f63b7cf6d7" //AppId= "wxaf360c577178e6f5", //AppSecret= "42b16416635613b8ca4dd30faaf21362" }); }); }
static ApiTestBase() { WeChatSDKBuilder.Create() //设置日志记录 .WithLoggerAction((tag, message) => { Console.WriteLine(string.Format("Tag:{0}\tMessage:{1}", tag, message)); }) //注册Key。不再需要各个控制注册 .Register(WeChatFrameworkFuncTypes.GetKey, model => { return("wx9ff101863db7db9c"); } ) //注册获取配置函数:根据Key获取微信配置(加载一次后续将缓存) .Register(WeChatFrameworkFuncTypes.Config_GetWeChatConfigByKey, model => { var arg = model as WeChatApiCallbackFuncArgInfo; return(new WeChatConfig() { AppId = "wx9ff101863db7db9c", AppSecret = "f97b922e9cf4c1aedb4843f63b7cf6d7" //AppId= "wxaf360c577178e6f5", //AppSecret= "42b16416635613b8ca4dd30faaf21362" }); }) .Build(); }
private void ConfigureWeChatSdk() { WeChatSDKBuilder.Create() .WithLoggerAction((tag, message) => { Console.WriteLine(string.Format("Tag:{0}\tMessage:{1}", tag, message)); }) .Register(WeChatFrameworkFuncTypes.GetKey, model => _appConfiguration["Authentication:WeChat:AppId"]) .Register(WeChatFrameworkFuncTypes.Config_GetWeChatConfigByKey, model => { var arg = model as WeChatApiCallbackFuncArgInfo; return(new WeChatConfig { AppId = _appConfiguration["Authentication:WeChat:AppId"], AppSecret = _appConfiguration["Authentication:WeChat:AppSecret"] }); }) .Build(); }
public static void RegisterSdkFuncs() { var baseDir = HostingEnvironment.MapPath("~/"); baseDir = Path.Combine(baseDir, "Storage"); if (!Directory.Exists(baseDir)) { Directory.CreateDirectory(baseDir); } WeChatSDKBuilder.Create() //设置Api日志记录器 .WithApiLogger(new NLogLogger("WeChatApiLogger")) //设置支付日志记录器 .WithPayLogger(new NLogLogger("WeChatPayLogger")) //设置存储管理提供程序 .WithStorageProvider(new LocalStorageProvider(Path.Combine(baseDir, "WeChat"), "/Storage/WeChat")) .Build(); //注册Key。不再需要各个控制注册 WeChatFrameworkFuncsManager.Current.Register(WeChatFrameworkFuncTypes.GetKey, model => WeiChatApplicationContext.Current.TenantId); //注册获取配置函数:根据Key获取微信配置(加载一次后续将缓存) WeChatFrameworkFuncsManager.Current.Register(WeChatFrameworkFuncTypes.Config_GetWeChatConfigByKey, model => { var arg = model as WeChatApiCallbackFuncArgInfo; using (var db = new AppDbContext()) { var appConfig = db.WeiChat_Apps.Find(arg.Data); if (appConfig == null) { throw new Exception("您尚未配置公众号,请配置公众号信息!"); } return(appConfig); } }); //注册获取微信支付配置函数:根据Key获取微信支付配置(加载一次后续将缓存) WeChatFrameworkFuncsManager.Current.Register(WeChatFrameworkFuncTypes.Config_GetWeChatPayConfigByKey, model => { var arg = model as WeChatPayCallbackFuncArgInfo; using (var _db = new AppDbContext()) { var key = arg.Api == null ? null : arg.Api.GetKey(); if (key == null) { key = arg.Data; } var tenantId = key != null ? (int)key : WeiChatApplicationContext.Current.TenantId; var appConfig = _db.WeiChat_Pays.FirstOrDefault(p => p.TenantId == tenantId); if (appConfig == null) { throw new Exception("您尚未配置微信支付,请配置微信支付信息!"); } return(appConfig); } }); //模板消息发送:记录发送日志 WeChatFrameworkFuncsManager.Current.Register(WeChatFrameworkFuncTypes.APIFunc_TemplateMessageApi_Create, model => { var arg = model as WeChatApiCallbackFuncArgInfo; var messagesTemplateLogFuncModel = arg.Data as List <MessagesTemplateLogFuncModel>; if ((messagesTemplateLogFuncModel == null) || (messagesTemplateLogFuncModel.Count == 0)) { return(true); } var key = arg.Api == null ? null : arg.Api.GetKey(); var tenantId = key != null ? (int)key : WeiChatApplicationContext.Current.TenantId; var userId = WeiChatApplicationContext.Current.UserId; var messageTplNo = messagesTemplateLogFuncModel.First().MessagesTemplateNo; using (var _db = new AppDbContext()) { var messageTemplate = _db.WeiChat_MessagesTemplates.FirstOrDefault( p => (p.TenantId == tenantId) && (p.TemplateNo == messageTplNo)); if (messageTemplate == null) { throw new Exception( string.Format( "模板库中不存在此模板消息,请先维护。模板Id:{0}。模板库地址:https://mp.weixin.qq.com/advanced/tmplmsg?action=tmpl_store&t=tmplmsg/store&token=1241910100&lang=zh_CN", messageTplNo)); } var logs = messagesTemplateLogFuncModel.Select(p => new WeiChat_MessagesTemplateSendLog { CreateTime = p.CreateTime, BatchNumber = p.BatchNumber, Content = p.Content, MessagesTemplateNo = p.MessagesTemplateNo, MessagesTemplateId = messageTemplate.Id, ReceiverId = p.ReceiverId, TopColor = p.TopColor, Url = p.Url, TenantId = tenantId, CreateBy = userId, Result = p.Result }).ToList(); _db.WeiChat_MessagesTemplateSendLogs.AddRange(logs); _db.SaveChanges(); } return(true); }); }