/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public virtual CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { var paymentMethod = LoadPaymentMethodBySystemName(capturePaymentRequest.Order.PaymentMethodSystemName); if (paymentMethod == null) { throw new SmartException(T("Payment.CouldNotLoadMethod")); } try { return(paymentMethod.Value.Capture(capturePaymentRequest)); } catch (NotSupportedException) { var result = new CapturePaymentResult(); result.AddError(T("Common.Payment.NoCaptureSupport")); return(result); } catch { throw; } }