Пример #1
0
        public string BasicSetting(HttpContext context)
        {
            PluginPackAttribute attr = this._plugin.GetAttribute();
            TemplatePage        page = this._app.GetPage(this._plugin, "mg/basic_setting.html");

            string url = String.Format("http://{0}/{1}.sh.aspx/serve",
                                       context.Request.Url.Host, attr.WorkIndent);
            string token = attr.Settings["Weixin_Token"] ??
                           String.Empty.RandomLetters(6);
            string appId              = attr.Settings["Weixin_AppId"] ?? "";
            string appSecret          = attr.Settings["Weixin_AppSecret"] ?? "";
            string appEncodeString    = attr.Settings["Weixin_AppEncodeString"] ?? "";
            string wlc                = attr.Settings["Weixin_WelcomeMessage"] ?? "";
            string enterMessage       = attr.Settings["Weixin_EnterMessage"] ?? "";
            string defaultRspMesssage = attr.Settings["Weixin_DefaultResponseMessage"] ?? "";

            page.AddVariable("data", new
            {
                url               = url,
                token             = token,
                appId             = appId,
                appSecret         = appSecret,
                aes               = appEncodeString,
                welcomeMessage    = wlc,
                enterMessage      = enterMessage,
                defaultRspMessage = defaultRspMesssage,
            });
            return(page.ToString());
        }
Пример #2
0
        public static void Init(IPlugin plugin)
        {
            app        = plugin;
            PluginAttr = plugin.GetAttribute();
            initCfg(PluginAttr);
            InitWeixin(PluginAttr.Settings);

            //提供微信支付信息
            var weixinPay_PartnerId    = PluginAttr.Settings["WeixinPay_PartnerId"];
            var weixinPay_Key          = PluginAttr.Settings["WeixinPay_Key"];
            var weixinPay_AppId        = PluginAttr.Settings["WeixinPay_AppId"];
            var weixinPay_AppKey       = PluginAttr.Settings["WeixinPay_AppKey"];
            var weixinPay_TenpayNotify = PluginAttr.Settings["WeixinPay_TenpayNotify"];
            var tenPayV3_MchId         = PluginAttr.Settings["TenPayV3_MchId"];
            var tenPayV3_Key           = PluginAttr.Settings["TenPayV3_Key"];
            var tenPayV3_AppId         = PluginAttr.Settings["TenPayV3_AppId"];
            var tenPayV3_AppSecret     = PluginAttr.Settings["TenPayV3_AppSecret"];
            var tenPayV3_TenpayNotify  = PluginAttr.Settings["TenPayV3_TenpayNotify"];
            var weixinPayInfo          = new TenPayInfo(weixinPay_PartnerId, weixinPay_Key, weixinPay_AppId, weixinPay_AppKey, weixinPay_TenpayNotify);

            TenPayInfoCollection.Register(weixinPayInfo);
            var tenPayV3Info = new TenPayV3Info(tenPayV3_AppId, tenPayV3_AppSecret, tenPayV3_MchId, tenPayV3_Key,
                                                tenPayV3_TenpayNotify);

            TenPayV3InfoCollection.Register(tenPayV3Info);
        }
Пример #3
0
        /// <summary>
        /// 注册插件路由
        /// </summary>
        /// <param name="plugin"></param>
        /// <param name="aliasName"></param>
        public void MapPluginRoute(IPlugin plugin, string aliasName)
        {
            PluginPackAttribute attr = PluginUtil.GetAttribute(plugin);
            string workIndent        = attr.WorkIndent;

            MapPluginRoute(aliasName, workIndent);
        }
Пример #4
0
        /// <summary>
        /// 初始化插件
        /// </summary>
        /// <param name="_app"></param>
        /// <returns></returns>
        public PluginConnectionResult Connect(IPluginHost _app)
        {
            IPluginApp app = _app as IPluginApp;

            if (app != null)
            {
                //注册
                app.Register(this, app_OnExtendModuleRequest, app_OnExtendModulePost);
                app.MapPluginRoute(this, "xmlrpc");
            }

            //初始化设置
            attr = this.GetAttribute();
            bool isChanged = false;

            if (attr.Settings.Contains("enable_base64_image"))
            {
                WeblogRPCService.EnableBase64Images = attr.Settings["enable_base64_image"] == "yes";
            }
            else
            {
                WeblogRPCService.EnableBase64Images = false;
                attr.Settings.Set("enable_base64_image", "no");
                isChanged = true;
            }

            if (isChanged)
            {
                attr.Settings.Flush();
            }

            return(PluginConnectionResult.Success);
        }
Пример #5
0
        static Conf()
        {
            PluginAttrs = PluginUtil.GetAttribute <Main>();

            //初始化配置


            //bool isChanged=false;
            //if(!PackAttr.Settings.Contains("notify.workerindent"))
            //{
            //    PackAttr.Settings.Append("notify.workerindent","");
            //    isChanged=true;
            //}

            //if(!PackAttr.Settings.Contains("alipay.account"))
            //{
            //    PackAttr.Settings.Append("alipay.account","");
            //    isChanged=true;
            //}

            //if(!PackAttr.Settings.Contains("alipay.userkey"))
            //{
            //    PackAttr.Settings.Append("alipay.userkey","");
            //    isChanged=true;
            //}

            //if(!PackAttr.Settings.Contains("alipay.secret"))
            //{
            //    PackAttr.Settings.Append("alipay.secret","");
            //    isChanged=true;
            //}

            // if (isChanged) PluginAttrs.Settings.Flush();
        }
Пример #6
0
        /// <summary>
        /// 初始化插件
        /// </summary>
        /// <param name="_app"></param>
        /// <returns></returns>
        public PluginConnectionResult Connect(IPluginHost _app)
        {
            IExtendApp app = _app as IExtendApp;

            if (app != null)
            {
                //注册
                app.Register(this, app_OnExtendModuleRequest, app_OnExtendModulePost);
                Cms.Plugins.MapExtendPluginRoute("xmlrpc", app.GetAttribute(this).WorkIndent);
            }

            blogService = new WeblogRPCService();

            //初始化设置
            attr = PluginUtil.GetAttribute <XmlRpcPluginCore>();
            bool isChanged = false;

            if (attr.Settings.Contains("enable_base64_image"))
            {
                WeblogRPCService.EnableBase64Images = attr.Settings["enable_base64_image"] == "yes";
            }
            else
            {
                WeblogRPCService.EnableBase64Images = false;
                attr.Settings.Append("enable_base64_image", "no");
                isChanged = true;
            }

            if (isChanged)
            {
                attr.Settings.Flush();
            }

            return(PluginConnectionResult.Success);
        }
Пример #7
0
        static Conf()
        {
            PluginAttrs = PluginUtil.GetAttribute<Main>();

            //初始化配置

            //bool isChanged=false;
            //if(!PackAttr.Settings.Contains("notify.workerindent"))
            //{
            //    PackAttr.Settings.Append("notify.workerindent","");
            //    isChanged=true;
            //}

            //if(!PackAttr.Settings.Contains("alipay.account"))
            //{
            //    PackAttr.Settings.Append("alipay.account","");
            //    isChanged=true;
            //}

            //if(!PackAttr.Settings.Contains("alipay.userkey"))
            //{
            //    PackAttr.Settings.Append("alipay.userkey","");
            //    isChanged=true;
            //}

            //if(!PackAttr.Settings.Contains("alipay.secret"))
            //{
            //    PackAttr.Settings.Append("alipay.secret","");
            //    isChanged=true;
            //}

               // if (isChanged) PluginAttrs.Settings.Flush();
        }
Пример #8
0
        /// <summary>
        /// 获取模板页
        /// </summary>
        /// <param name="filePath">相对于插件目录的文件路径,如插件com.demo引用模板test.html,将test.html放在/plugins/com.demo/下就可以了</param>
        /// <returns></returns>
        public TemplatePage GetPage <T>(string filePath) where T : IPlugin
        {
            this.Load();
            PluginPackAttribute attr = PluginUtil.GetPluginByType(typeof(T)).GetAttribute();

            return(this.GetTemplatePage(filePath, attr));
        }
Пример #9
0
        public static void MapExtendPluginRoute(this CmsPluginContext table, IPlugin plugin, string aliasName)
        {
            PluginPackAttribute attr = PluginUtil.GetAttribute(plugin);
            string workIndent        = attr.WorkIndent;

            MapExtendPluginRoute(table, aliasName, workIndent);
        }
Пример #10
0
        /// <summary>
        /// 获取模板页
        /// </summary>
        /// <param name="plugin"></param>
        /// <param name="filePath">相对于插件目录的文件路径,如插件com.demo引用模板test.html,将test.html放在/plugins/com.demo/下就可以了</param>
        /// <returns></returns>
        public TemplatePage GetPage(IPlugin plugin, string filePath)
        {
            this.Load();

            PluginPackAttribute attr = plugin.GetAttribute();

            return(this.GetTemplatePage(filePath, attr));
        }
Пример #11
0
 public PluginPackAttribute GetAttribute()
 {
     if (this._attr == null)
     {
         this._attr = PluginUtil.GetAttribute(this);
     }
     return(this._attr);
 }
Пример #12
0
        public TemplatePage GetTemplatePage(string filePath, PluginPackAttribute attr)
        {
            string pluginDirPath = attr.WorkSpace;


            string cacheId = String.Concat("plugin", "_tpl_", attr.WorkIndent, filePath);
            string html    = WebCtx.Current.Cache.Get(cacheId) as string;

            if (html == null)
            {
                //模板文件放在/plugins/com.spdepository/pages/下
                string tplFilePath = pluginDirPath + filePath;

                try
                {
                    using (TextReader tr = new StreamReader(tplFilePath))
                    {
                        html = tr.ReadToEnd();
                        tr.Dispose();
                    }

                    WebCtx.Current.Cache.Insert(cacheId, html, tplFilePath);
                }
                catch (Exception exc)
                {
                    throw new Exception(exc.Message + ", File:" + tplFilePath);
                }
            }

            TemplatePage tpl = new TemplatePage();

            tpl.TemplateContent = html;

            string pluginPath = this._pluginPath + attr.WorkIndent;

            tpl.AddVariable("os", new
            {
                version = FwCtx.Version.GetVersion(),
                domain  = WebCtx.Current.Domain,
                ppath   = pluginPath,
                fpath   = this._fpath,
                mjs     = this._shareJs,
                sjs     = this._shareJs,
                scss    = this._shareCss,
                mcss    = this._shareCss
            });

            tpl.AddVariable("plugin", new
            {
                path   = pluginPath,
                indent = attr.WorkIndent,
                name   = attr.Name
            });

            return(tpl);
        }
Пример #13
0
 /// <summary>
 /// 初始化配置
 /// </summary>
 /// <param name="attr"></param>
 private static void InitCfg(PluginPackAttribute attr)
 {
     //            bool isChanged = false;
     //            if (!attr.Settings.Contains("test_conf"))
     //            {
     //                attr.Settings.Add("test_conf", "测试配置", true);
     //                isChanged = true;
     //            }
     //
     //            if (isChanged) attr.Settings.Flush();
 }
Пример #14
0
        /// <summary>
        /// 获取模板页
        /// </summary>
        /// <param name="filePath">相对于插件目录的文件路径,如插件com.demo引用模板test.html,将test.html放在/plugins/com.demo/下就可以了</param>
        /// <returns></returns>
        public TemplatePage GetPage <T>(string filePath) where T : IPlugin
        {
            if (!this.loaded)
            {
                this.loaded = true;
                this._fpath = String.Format("{0}{1}", Cms.Context.StaticDomain,
                                            CmsVariables.FRAMEWORK_ASSETS_PATH
                                            .Substring(0, CmsVariables.FRAMEWORK_ASSETS_PATH.Length - 1)
                                            );
                this._admJs  = String.Concat("/", Settings.SYS_ADMIN_TAG, "?res=c2NyaXB0&amp;0.5.1.js&amp;ver=", Cms.Version);
                this._admCss = String.Concat("/", Settings.SYS_ADMIN_TAG, "?res=c3R5bGU=&amp;0.5.1.css&amp;ver=", Cms.Version);
            }

            PluginPackAttribute attr = PluginUtil.GetAttribute <T>();
            string pluginDirPath     = String.Concat(PluginConfig.PLUGIN_DIRECTORY, attr.WorkIndent);

            string cacheID = String.Concat("plugin", "_tpl_", attr.WorkIndent, filePath);
            string html    = Cms.Cache.Get(cacheID) as string;

            if (html == null)
            {
                //模板文件放在/plugins/com.spdepository/pages/下
                string tplFilePath = String.Concat(
                    Cms.PyhicPath,
                    pluginDirPath, "/",
                    filePath);

                using (TextReader tr = new StreamReader(tplFilePath))
                {
                    html = tr.ReadToEnd();
                    tr.Dispose();
                }

                Cms.Cache.Insert(cacheID, html, tplFilePath);
            }



            TemplatePage tpl = new TemplatePage();

            tpl.TemplateContent = html;

            tpl.AddVariable("os", new
            {
                version = Cms.Version,
                ppath   = "/" + pluginDirPath,
                fpath   = this._fpath,
                mjs     = this._admJs,
                mcss    = this._admCss
            });
            return(tpl);
        }
Пример #15
0
        /// <summary>
        /// 注册处理事件
        /// </summary>
        /// <param name="plugin"></param>
        /// <param name="reqHandler"></param>
        /// <param name="postReqHandler"></param>
        /// <returns></returns>
        public bool Register(IPlugin plugin, PluginHandler <TContext> getHandler, PluginHandler <TContext> postHandler)
        {
            Type type = plugin.GetType();
            PluginPackAttribute attr = PluginUtil.GetAttribute(plugin);
            string indent            = attr.WorkIndent;

            if (postHandler == null || postHandlers.Keys.Contains(indent))
            {
                return(false);
            }
            postHandlers.Add(indent, postHandler);

            return(base.Register(plugin, getHandler));
        }
Пример #16
0
        public string BasicSetting_post(HttpContext context)
        {
            PluginPackAttribute attr = this._plugin.GetAttribute();
            var form = context.Request.Form;

            attr.Settings["Weixin_Token"]                  = form["Weixin_Token"];
            attr.Settings["Weixin_AppId"]                  = form["Weixin_AppId"];
            attr.Settings["Weixin_AppSecret"]              = form["Weixin_AppSecret"];
            attr.Settings["Weixin_AppEncodeString"]        = form["Weixin_AppEncodeString"];
            attr.Settings["Weixin_WelcomeMessage"]         = form["Weixin_WelcomeMessage"];
            attr.Settings["Weixin_EnterMessage"]           = form["Weixin_EnterMessage"];
            attr.Settings["Weixin_DefaultResponseMessage"] = form["Weixin_DefaultResponseMessage"];

            attr.Settings.Flush();
            Config.InitWeixin(attr.Settings);

            return("{result:true,message:'修改成功'}");
        }
Пример #17
0
        /// <summary>
        /// 注册插件路由
        /// </summary>
        /// <param name="plugin"></param>
        public void MapPluginRoute(IPlugin plugin)
        {
            string aliasName;
            string workIndent;

            PluginPackAttribute attr = PluginUtil.GetAttribute(plugin);

            workIndent = attr.WorkIndent;
            aliasName  = attr.Settings[PluginSettingKeys.OverrideUrlIndent];

            //throw new Exception(extendName + "/" + aliasName);
            if (aliasName == "" ||
                String.Compare(aliasName,
                               workIndent, true,
                               CultureInfo.InvariantCulture) == 0)
            {
                return;
            }
            MapPluginRoute(aliasName, workIndent);
        }
Пример #18
0
        /// <summary>
        /// 注册插件路由
        /// </summary>
        /// <param name="extendName">扩展名</param>
        public static void MapExtendPluginRoute(this CmsPluginContext table, IPlugin plugin)
        {
            string aliasName;
            string extendName;

            PluginPackAttribute attr = PluginUtil.GetAttribute(plugin);

            extendName = attr.WorkIndent;
            aliasName  = attr.Settings["override.url.indent"];

            //throw new Exception(extendName + "/" + aliasName);
            if (aliasName == "" ||
                String.Compare(aliasName,
                               extendName, true,
                               CultureInfo.InvariantCulture) == 0)
            {
                return;
            }
            MapExtendPluginRoute(table, aliasName, extendName);
        }
Пример #19
0
        /// <summary>
        /// 获取模板页
        /// </summary>
        /// <param name="filePath">相对于插件目录的文件路径,如插件com.demo引用模板test.html,将test.html放在/plugins/com.demo/下就可以了</param>
        /// <returns></returns>
        public TemplatePage GetPage <T>(string filePath) where T : IPlugin
        {
            PluginPackAttribute attr = PluginUtil.GetAttribute <T>();
            string pluginDirPath     = String.Concat(PluginConfig.PLUGIN_DIRECTORY, attr.WorkIndent);

            string cacheID = String.Concat("plugin", "_tpl_", attr.WorkIndent, filePath);
            string html    = Cms.Cache.Get(cacheID) as string;

            if (html == null)
            {
                //模板文件放在/plugins/com.spdepository/pages/下
                string tplFilePath = String.Concat(
                    Cms.PyhicPath,
                    pluginDirPath, "/",
                    filePath);

                using (TextReader tr = new StreamReader(tplFilePath))
                {
                    html = tr.ReadToEnd();
                    tr.Dispose();
                }
                Cms.Cache.Insert(cacheID, html, tplFilePath);
            }


            TemplatePage tpl = new TemplatePage();

            tpl.TemplateContent = html;
            tpl.AddVariable("os", new
            {
                version = Cms.Version,
                ppath   = String.Format("/{0}", pluginDirPath),
                fpath   = String.Format("{0}{1}", Cms.Context.StaticDomain,
                                        CmsVariables.FRAMEWORK_ASSETS_PATH
                                        .Substring(0, CmsVariables.FRAMEWORK_ASSETS_PATH.Length - 1)
                                        )
            });
            return(tpl);
        }
Пример #20
0
        private static void initCfg(PluginPackAttribute attr)
        {
            //初始化配置
            bool isChanged = false;

            if (!attr.Settings.Contains("WeixinPay_PartnerId"))
            {
                attr.Settings.Set("WeixinPay_PartnerId", "");
                isChanged = true;
            }
            if (!attr.Settings.Contains("WeixinPay_Key"))
            {
                attr.Settings.Set("WeixinPay_Key", "");
                isChanged = true;
            }
            if (!attr.Settings.Contains("WeixinPay_AppId"))
            {
                attr.Settings.Set("WeixinPay_AppId", "");
                isChanged = true;
            }
            if (!attr.Settings.Contains("WeixinPay_AppKey"))
            {
                attr.Settings.Set("WeixinPay_AppKey", "");
                isChanged = true;
            }
            if (!attr.Settings.Contains("WeixinPay_TenpayNotify"))
            {
                attr.Settings.Set("WeixinPay_TenpayNotify", "");
                isChanged = true;
            }
            if (!attr.Settings.Contains("TenPayV3_MchId"))
            {
                attr.Settings.Set("TenPayV3_MchId", "");
                isChanged = true;
            }

            if (!attr.Settings.Contains("TenPayV3_Key"))
            {
                attr.Settings.Set("TenPayV3_Key", "");
                isChanged = true;
            }

            if (!attr.Settings.Contains("TenPayV3_AppId"))
            {
                attr.Settings.Set("TenPayV3_AppId", "");
                isChanged = true;
            }
            if (!attr.Settings.Contains("TenPayV3_AppSecret"))
            {
                attr.Settings.Set("TenPayV3_AppSecret", "");
                isChanged = true;
            }
            if (!attr.Settings.Contains("TenPayV3_TenpayNotify"))
            {
                attr.Settings.Set("TenPayV3_TenpayNotify", "");
                isChanged = true;
            }

            if (!attr.Settings.Contains("Weixin_AppId"))
            {
                attr.Settings.Set("Weixin_AppId", "填写微信AppId");
                isChanged = true;
            }

            if (!attr.Settings.Contains("Weixin_AppSecret"))
            {
                attr.Settings.Set("Weixin_AppSecret", "填写微信AppSecret");
                isChanged = true;
            }

            if (!attr.Settings.Contains("Weixin_AppEncodeString"))
            {
                attr.Settings.Set("Weixin_AppEncodeString", "填写微信App解密字符串");
                isChanged = true;
            }

            if (!attr.Settings.Contains("Weixin_Token"))
            {
                attr.Settings.Set("Weixin_Token", "填写微信token");
                isChanged = true;
            }

            if (!attr.Settings.Contains("Weixin_ApiDomain"))
            {
                attr.Settings.Set("Weixin_ApiDomain", "填写用于对接微信的域名:如http://www.ops.cc/weixin/。");
                isChanged = true;
            }

            if (!attr.Settings.Contains("Weixin_WelcomeMessage"))
            {
                attr.Settings.Set("Weixin_WelcomeMessage", "欢迎来到微信!");
                isChanged = true;
            }

            if (!attr.Settings.Contains("Weixin_EnterMessage"))
            {
                attr.Settings.Set("Weixin_EnterMessage", "");
                isChanged = true;
            }


            if (!attr.Settings.Contains("Weixin_MenuButtons"))
            {
                attr.Settings.Set("Weixin_MenuButtons", "填写微信自定义按钮");
                isChanged = true;
            }

            if (isChanged)
            {
                attr.Settings.Flush();
            }
        }
Пример #21
0
 public PluginPackAttribute GetAttribute()
 {
     return(this._attr ?? (this._attr = PluginUtil.GetAttribute(this)));
 }
Пример #22
0
 public static void Init(IPlugin plugin)
 {
     PluginAttr = PluginUtil.GetAttribute(plugin);
     InitCfg(PluginAttr);
 }