Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }