/// <summary> /// Create a capture for an existing paid order. /// </summary> /// <param name="request">The <see cref="ICreateCaptureOrderRequest"/> object</param> /// <returns><see cref="AcknowledgeOrderResponse"/></returns> public virtual CreateCaptureOrderResponse CreateCaptureOrder(ICreateCaptureOrderRequest request) { var url = UrlHelper.GetApiUrl(Session.BaseUrl, ResourceUrls.OrderManagement_CreateCapture); url = url.Replace("{order_id}", request.KlarnaOrderId); RestRequest req = CreateRestRequest(Method.POST, url, GetRequestBody(request.CaptureData)); var res = _client.Execute(req); var response = DeserializeOrDefault <CreateCaptureOrderResponse>(res); return(response); }
/// <summary> /// Create a capture for an existing paid order. /// </summary> /// <param name="request">The <see cref="ICreateCaptureOrderRequest"/> object</param> /// <returns><see cref="AcknowledgeOrderResponse"/></returns> public virtual async Task <CreateCaptureOrderResponse> CreateCaptureOrderAsync(ICreateCaptureOrderRequest request) { var url = UrlHelper.GetApiUrl(Session.BaseUrl, ResourceUrls.OrderManagement_CreateCapture); url = url.Replace("{order_id}", request.KlarnaOrderId); RestRequest req = CreateRestRequest(Method.POST, url, GetRequestBody(request.CaptureData)); var res = await _client.ExecutePostTaskAsync(req).ConfigureAwait(false); var response = DeserializeOrDefault <CreateCaptureOrderResponse>(res); if (response.IsSuccess && res.Headers.Any(t => t.Name == "Capture-Id")) { response.CaptureId = res.Headers.ToList() .Find(x => x.Name == "Capture-Id") .Value.ToString(); } return(response); }