/// <summary> /// 初始化支付宝通知服务 /// </summary> /// <param name="configProvider">配置提供器</param> protected AlipayNotifyServiceBase(IAlipayConfigProvider configProvider) { configProvider.CheckNull(nameof(configProvider)); _configProvider = configProvider; _builder = new UrlParameterBuilder(); _isLoad = false; }
/// <summary> /// 获取签名的参数生成器 /// </summary> private UrlParameterBuilder GetSignBuilder() { var builder = new UrlParameterBuilder(_builder); builder.Add(AlipayConst.Sign, GetSign()); return(builder); }
/// <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(); }
/// <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>(); }
/// <summary> /// 创建验签生成器 /// </summary> private UrlParameterBuilder CreateVerifyBuilder() { var builder = new UrlParameterBuilder(_builder); builder.Remove(AlipayConst.Sign); builder.Remove(AlipayConst.SignType); return(builder); }
/// <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>(); }
/// <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>(); }
/// <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]); } } }
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); }
public void Test_LoadUrl_1() { _builder = new UrlParameterBuilder("a"); Assert.Equal(0, _builder.GetDictionary().Count); }
/// <summary> /// 加载参数 /// </summary> /// <param name="builder">参数生成器</param> protected override void Load(UrlParameterBuilder builder) { builder.LoadQuery(); }
/// <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); }
/// <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(); }
/// <summary> /// 初始化一个<see cref="AuthorizationParameterBuilder"/>类型的实例 /// </summary> public AuthorizationParameterBuilder() { _builder = new UrlParameterBuilder(); }
/// <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)); }
/// <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)); }