Exemplo n.º 1
0
 /// <summary>
 /// 初始化支付宝通知服务
 /// </summary>
 /// <param name="configProvider">配置提供器</param>
 protected AlipayNotifyServiceBase(IAlipayConfigProvider configProvider)
 {
     configProvider.CheckNull(nameof(configProvider));
     _configProvider = configProvider;
     _builder        = new UrlParameterBuilder();
     _isLoad         = false;
 }
Exemplo n.º 2
0
        /// <summary>
        /// 获取签名的参数生成器
        /// </summary>
        private UrlParameterBuilder GetSignBuilder()
        {
            var builder = new UrlParameterBuilder(_builder);

            builder.Add(AlipayConst.Sign, GetSign());
            return(builder);
        }
Exemplo n.º 3
0
 /// <summary>
 /// 初始化一个<see cref="AlipayParameterBuilder"/>类型的实例
 /// </summary>
 /// <param name="config">支付宝配置</param>
 public AlipayParameterBuilder(AlipayConfig config)
 {
     config.CheckNotNull(nameof(config));
     Config   = config;
     _builder = new UrlParameterBuilder();
     Content  = new AlipayContentBuilder();
 }
Exemplo n.º 4
0
 /// <summary>
 /// 初始化支付宝参数生成器
 /// </summary>
 /// <param name="config">配置</param>
 public AlipayParameterBuilder(AlipayConfig config)
 {
     config.CheckNull(nameof(config));
     Config          = config;
     _builder        = new UrlParameterBuilder();
     Content         = new AlipayContentBuilder();
     _jsonSerializer = IocManager.GetContainer().Resolve <IJsonSerializer>();
 }
Exemplo n.º 5
0
        /// <summary>
        /// 创建验签生成器
        /// </summary>
        private UrlParameterBuilder CreateVerifyBuilder()
        {
            var builder = new UrlParameterBuilder(_builder);

            builder.Remove(AlipayConst.Sign);
            builder.Remove(AlipayConst.SignType);
            return(builder);
        }
Exemplo n.º 6
0
 /// <summary>
 /// 初始化支付宝参数生成器
 /// </summary>
 /// <param name="config">配置</param>
 /// <param name="param">参数</param>
 public AlipayParameterBuilder(AlipayConfig config, PayParamBase param = null)
 {
     config.CheckNull(nameof(config));
     Config   = config;
     _builder = new UrlParameterBuilder();
     Content  = new AlipayContentBuilder();
     Init(param);
 }
 /// <summary>
 /// 初始化支付宝通知服务
 /// </summary>
 /// <param name="configProvider">配置提供器</param>
 protected AlipayNotifyServiceBase(IAlipayConfigProvider configProvider)
 {
     configProvider.CheckNull(nameof(configProvider));
     _configProvider = configProvider;
     _builder        = new UrlParameterBuilder();
     _isLoad         = false;
     Logger          = IocManager.GetContainer().Resolve <ILogger>();
 }
Exemplo n.º 8
0
 /// <summary>
 /// 初始化支付宝通知服务
 /// </summary>
 /// <param name="configProvider">配置提供器</param>
 protected AlipayNotifyServiceBase(IAliPayConfigProvider configProvider, ILoggerFactory loggerFactory)
 {
     configProvider.CheckNull(nameof(configProvider));
     _configProvider = configProvider;
     _builder        = new UrlParameterBuilder();
     _isLoad         = false;
     Logger          = loggerFactory.CreateLogger <AlipayNotifyServiceBase>();
 }
Exemplo n.º 9
0
        /// <summary>
        /// 获取签名的参数生成器
        /// </summary>
        private UrlParameterBuilder GetSignBuilder(bool isConvertToSingleQuotes = false)
        {
            var builder = new UrlParameterBuilder(_builder);

            if (Content.IsEmpty == false)
            {
                builder.Add(AlipayConst.BizContent, Content.ToJson(isConvertToSingleQuotes));
            }
            builder.Add(AlipayConst.Sign, GetSign(builder));
            return(builder);
        }
        /// <summary>
        /// 从Request加载查询参数
        /// </summary>
        /// <param name="builder">Url参数生成器</param>
        public static void LoadQuery(this UrlParameterBuilder builder)
        {
            var query = Web.Request?.Query;

            if (query == null)
            {
                return;
            }
            foreach (var key in query.Keys)
            {
                if (query.ContainsKey(key))
                {
                    builder.Add(key, query[key]);
                }
            }
        }
        /// <summary>
        /// 从Request加载表单参数
        /// </summary>
        /// <param name="builder">Url参数生成器</param>
        public static void LoadForm(this UrlParameterBuilder builder)
        {
            var form = Web.Request?.Form;

            if (form == null)
            {
                return;
            }
            foreach (var key in form.Keys)
            {
                if (form.ContainsKey(key))
                {
                    builder.Add(key, form[key]);
                }
            }
        }
Exemplo n.º 12
0
        public void TestBlueSky_Build()
        {
            // set-up
            Options.Query                  = "just a test";
            Options.UserName               = "******";
            Options.Subreddit              = "Test";
            Options.TotalResults           = "5";
            Options.IsPeriodSearchEnabled  = true;
            Options.ScoreGreaterThan       = "10";
            Options.ScoreLessThan          = "20";
            Options.StartDateUnixTimeStamp = 1603480418;
            Options.StopDateUnixTimeStamp  = 1603483346;
            Options.SortDirection          = "desc";
            Options.SortType               = "score";
            Builder = new UrlParameterBuilder(Options);

            // exercise
            string requestUri = Builder.Build("comment");

            // post-conditions
            string expectedUri = "comment?q=just+a+test&author=Author&subreddit=Test&size=5&after=1603480418&before=1603483346&score=>10&score=<20&sort_type=score&sort=desc";

            Assert.AreEqual(expectedUri, requestUri);
        }
Exemplo n.º 13
0
 public void Test_LoadUrl_1()
 {
     _builder = new UrlParameterBuilder("a");
     Assert.Equal(0, _builder.GetDictionary().Count);
 }
Exemplo n.º 14
0
 /// <summary>
 /// 加载参数
 /// </summary>
 /// <param name="builder">参数生成器</param>
 protected override void Load(UrlParameterBuilder builder)
 {
     builder.LoadQuery();
 }
Exemplo n.º 15
0
 /// <summary>
 /// 初始化微信支付HMACSha256签名服务
 /// </summary>
 /// <param name="key">签名密钥</param>
 /// <param name="builder">参数生成器</param>
 public HmacSha256SignManager(ISignKey key, HttpRequest httpRequest, ParameterBuilder builder = null)
 {
     key.CheckNull(nameof(key));
     _key     = key;
     _builder = builder == null ? new UrlParameterBuilder(httpRequest) : new UrlParameterBuilder(builder, httpRequest);
 }
Exemplo n.º 16
0
        /// <summary>
        /// 获取签名
        /// </summary>
        /// <param name="builder">Url参数生成器</param>
        /// <returns></returns>
        private string GetSign(UrlParameterBuilder builder)
        {
            var signManager = new SignManager(new SignKey(Config.PrivateKey), builder);

            return(signManager.Sign());
        }
 /// <summary>
 /// 测试初始化
 /// </summary>
 public UrlParameterBuilderTest()
 {
     _builder = new UrlParameterBuilder();
 }
Exemplo n.º 18
0
 /// <summary>
 /// 初始化一个<see cref="AuthorizationParameterBuilder"/>类型的实例
 /// </summary>
 public AuthorizationParameterBuilder()
 {
     _builder = new UrlParameterBuilder();
 }
Exemplo n.º 19
0
 /// <summary>
 /// 加载参数
 /// </summary>
 /// <param name="builder">参数生成器</param>
 protected abstract void Load(UrlParameterBuilder builder);
 public void TestLoadUrl_5()
 {
     _builder = new UrlParameterBuilder("a=1&b=");
     Assert.Equal(1, _builder.GetDictionary().Count);
 }
 public void TestLoadUrl_6()
 {
     _builder = new UrlParameterBuilder("http://test.com?b=2&c=3&a=1");
     Assert.Equal(3, _builder.GetDictionary().Count);
     Assert.Equal("a=1&b=2&c=3", _builder.Result(true));
 }
Exemplo n.º 22
0
 /// <summary>
 /// 初始化签名服务
 /// </summary>
 /// <param name="key">签名密钥</param>
 /// <param name="builder">Url参数生成器</param>
 public SignManager(ISignKey key, UrlParameterBuilder builder = null)
 {
     key.CheckNull(nameof(key));
     _key     = key;
     _builder = builder == null ? new UrlParameterBuilder() : new UrlParameterBuilder(builder);
 }
 public void TestLoadUrl_7()
 {
     _builder = new UrlParameterBuilder("http://test.com ? b = 2 & c & a = 1 ");
     Assert.Equal("a=1&b=2", _builder.Result(true));
 }