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); }
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 }); }
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)); }