/// <summary> /// Voids a payment /// </summary> /// <param name="voidPaymentRequest">Request</param> /// <returns>Result</returns> public VoidPaymentResult Void(VoidPaymentRequest voidPaymentRequest) { VoidPaymentResult result = new VoidPaymentResult(); if (ePayPaymentSettings.UseRemoteInterface) { int epayresponse = -1; try { dk.ditonlinebetalingssystem.ssl.Payment payment = new dk.ditonlinebetalingssystem.ssl.Payment(); payment.delete(Convert.ToInt32(ePayPaymentSettings.MerchantId), Convert.ToInt32(voidPaymentRequest.Order.AuthorizationTransactionId), "", ePayPaymentSettings.RemotePassword, ref epayresponse); if (epayresponse == -1) { result.NewPaymentStatus = PaymentStatus.Voided; } else { result.AddError("Could not void: epayresponse:" + epayresponse); } } catch (Exception error) { result.AddError("Could not void: " + error.Message); } } else { result.AddError("Remote interface is not activated."); } return(result); }
/// <summary> /// Refunds a payment /// </summary> /// <param name="refundPaymentRequest">Request</param> /// <returns>Result</returns> public RefundPaymentResult Refund(RefundPaymentRequest refundPaymentRequest) { RefundPaymentResult result = new RefundPaymentResult(); if (ePayPaymentSettings.UseRemoteInterface) { int pbsresponse = -1; int epayresponse = -1; try { var orderTotal = Math.Round(refundPaymentRequest.AmountToRefund, 2); string amount = (orderTotal * 100).ToString("0", CultureInfo.InvariantCulture); dk.ditonlinebetalingssystem.ssl.Payment payment = new dk.ditonlinebetalingssystem.ssl.Payment(); payment.credit(Convert.ToInt32(ePayPaymentSettings.MerchantId), Convert.ToInt32(refundPaymentRequest.Order.AuthorizationTransactionId), Convert.ToInt32(amount), "", ePayPaymentSettings.RemotePassword, ref pbsresponse, ref epayresponse); if (epayresponse == -1) { result.NewPaymentStatus = refundPaymentRequest.Order.OrderTotal == refundPaymentRequest.Order.RefundedAmount + refundPaymentRequest.AmountToRefund ? PaymentStatus.Refunded : PaymentStatus.PartiallyRefunded; } else { result.AddError("Could not refund: pbsResponse:" + pbsresponse + " epayresponse: " + epayresponse); } } catch (Exception error) { result.AddError("Could not refund: " + error.Message); } } else { result.AddError("Remote interface is not activated."); } return(result); }
/// <summary> /// Captures payment /// </summary> /// <param name="capturePaymentRequest">Capture payment request</param> /// <returns>Capture payment result</returns> public CapturePaymentResult Capture(CapturePaymentRequest capturePaymentRequest) { CapturePaymentResult result = new CapturePaymentResult(); if (ePayPaymentSettings.UseRemoteInterface) { int pbsResponse = -1; int epayresponse = -1; try { decimal orderTotal = Math.Round(capturePaymentRequest.Order.OrderTotal, 2); string amount = (orderTotal * 100).ToString("0", CultureInfo.InvariantCulture); dk.ditonlinebetalingssystem.ssl.Payment payment = new dk.ditonlinebetalingssystem.ssl.Payment(); payment.capture(Convert.ToInt32(ePayPaymentSettings.MerchantId), Convert.ToInt32(capturePaymentRequest.Order.AuthorizationTransactionId), Convert.ToInt32(amount), "", ePayPaymentSettings.RemotePassword, ref pbsResponse, ref epayresponse); if (epayresponse == -1) { result.NewPaymentStatus = PaymentStatus.Paid; } else { result.AddError("Could not capture: pbsResponse:" + pbsResponse + " epayresponse: " + epayresponse); } } catch (Exception error) { result.AddError("Could not capture: " + error.Message); } } else { result.AddError("Remote interface is not activated."); } return(result); }