Exemple #1
0
        public async Task <T> ExecuteAsync <T>(HttpRequest request, KdniaoOptions options) where T : KdniaoNotify
        {
            OptionsValidate.Confirm(options);
            var body = await new StreamReader(request.Body, Encoding.UTF8).ReadToEndAsync();

            T notify = JsonUtil.Deserialize <T>(body);

            return(notify);
        }
Exemple #2
0
        public IActionResult Success(KdniaoOptions options, DateTime?updateTime = null)
        {
            var updateTimeString = updateTime.HasValue ? updateTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

            return(new ContentResult
            {
                Content = JsonSerializer.Serialize(new KdniaoNotifyResult
                {
                    EBusinessID = _options.Value.EBusinessID,
                    UpdateTime = updateTimeString,
                    Success = true,
                }),
                ContentType = "application/json",
                StatusCode = 200
            });
        }
Exemple #3
0
        public async Task <T> ExecuteAsync <T>(IKdniaoRequest <T> request, KdniaoOptions options) where T : KdniaoResponse
        {
            OptionsValidate.Confirm(options);

            var dataSign = Encrypt.Compute(request.GetRequestData(), options.AppKey, "UTF-8");
            var param    = new KdniaoDictionary(request.GetParameters())
            {
                { "EBusinessID", options.EBusinessID },
                { "DataSign", HttpUtility.UrlEncode(dataSign, Encoding.UTF8) },
            };
            var reqUrl = options.IsSandBox == false?request.GetNotifyUrl() : request.GetSandBoxNotifyUrl();

            var form     = new FormUrlEncodedContent(param);
            var client   = _httpClientFactory.CreateClient(nameof(KdniaoClient));
            var response = await client.PostAsync(reqUrl, form);

            var result = await response.Content.ReadAsStringAsync();

            return(JsonUtil.Deserialize <T>(result));
        }