コード例 #1
0
        public Task <T> ExecuteAsync <T>(HttpRequest request) where T : AlipayNotifyResponse
        {
            var parameters = GetParameters(request);
            var parser     = new AlipayDictionaryParser <T>();
            var rsp        = parser.Parse(parameters);

            CheckNotifySign(parameters, RSAPublicParameters, Options.SignType);
            return(Task.FromResult(rsp));
        }
コード例 #2
0
        public T Execute <T>(HttpRequest request) where T : AlipayObject
        {
            var parameters = GetParameters(request);
            var parser     = new AlipayDictionaryParser <T>();
            var rsp        = parser.Parse(parameters);

            CheckNotifySign(parameters, Options.RsaPublicKey, Options.SignType);
            return(rsp);
        }
コード例 #3
0
        public Task <T> ExecuteAsync <T>(HttpRequest request) where T : AlipayNotifyResponse
        {
            var parameters = GetParameters(request);
            var parser     = new AlipayDictionaryParser <T>();
            var rsp        = parser.Parse(parameters);

            var query = HttpClientEx.BuildQuery(parameters);

            Logger.LogInformation(0, "Request Content:{query}", query);

            CheckNotifySign(parameters, RSAPublicParameters, Options.SignType);
            return(Task.FromResult(rsp));
        }
コード例 #4
0
        public async Task <T> ExecuteAsync <T>(HttpRequest request) where T : AlipayNotifyResponse
        {
            var parameters = await GetParametersAsync(request);

            var query = AlipayUtility.BuildQuery(parameters);

            Logger?.LogTrace(0, "Request:{query}", query);

            var parser = new AlipayDictionaryParser <T>();
            var rsp    = parser.Parse(parameters);

            CheckNotifySign(parameters, Options.PublicRSAParameters, Options.SignType);
            return(rsp);
        }
コード例 #5
0
        public async Task <T> ExecuteAsync <T>(HttpRequest request, string optionsName) where T : AlipayNotify
        {
            var options    = _optionsSnapshotAccessor.Get(optionsName);
            var parameters = await GetParametersAsync(request);

            var query = AlipayUtility.BuildQuery(parameters);

            _logger.Log(options.LogLevel, "Request:{query}", query);

            var parser = new AlipayDictionaryParser <T>();
            var rsp    = parser.Parse(parameters);

            CheckNotifySign(parameters, options);
            return(rsp);
        }
コード例 #6
0
        public Task <T> ExecuteAsync <T>(IDictionary <string, string> parameters, AlipayOptions options) where T : AlipayNotify
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            if (string.IsNullOrEmpty(options.SignType))
            {
                throw new AlipayException($"options.{nameof(AlipayOptions.SignType)} is Empty!");
            }

            if (string.IsNullOrEmpty(options.AlipayPublicKey))
            {
                throw new AlipayException($"options.{nameof(AlipayOptions.AlipayPublicKey)} is Empty!");
            }

            var notify = AlipayDictionaryParser.Parse <T>(parameters);

            CheckNotifySign(parameters, options);
            return(Task.FromResult(notify));
        }
コード例 #7
0
        public Task <T> ExecuteAsync <T>(HttpRequest request, AlipayOptions options) where T : AlipayNotify
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            if (string.IsNullOrEmpty(options.SignType))
            {
                throw new ArgumentNullException(nameof(options.SignType));
            }

            if (string.IsNullOrEmpty(options.AlipayPublicKey))
            {
                throw new ArgumentNullException(nameof(options.AlipayPublicKey));
            }

            var parameters = GetParameters(request);
            var rsp        = AlipayDictionaryParser.Parse <T>(parameters);

            CheckNotifySign(parameters, options);
            return(Task.FromResult(rsp));
        }
コード例 #8
0
        public async Task <T> ExecuteAsync <T>(HttpRequest request) where T : AlipayNotifyResponse
        {
            try
            {
                logger?.LogDebug($"{DateTime.Now} 支付宝回调ExecuteAsync");

                var parameters = await GetParametersAsync(request);

                var query = HttpClientEx.BuildQuery(parameters);

                logger?.LogDebug($"{DateTime.Now} 支付宝回调ExecuteAsync Request:{query}");

                var parser = new AlipayDictionaryParser <T>();
                var rsp    = parser.Parse(parameters);
                CheckNotifySign(parameters, PublicRSAParameters, Options.SignType);
                return(rsp);
            }
            catch (Exception ex)
            {
                logger?.LogError($"{DateTime.Now} 支付宝回调ExecuteAsync报错", ex.Message);
                return(null);
            }
        }