private ProcessOrderResponse HandleSuccess(ICart cart, IPayment payment, IVippsPaymentDetails paymentDetails, IVippsUserDetails userDetails, string orderId) { if (payment == null) { OrderNoteHelper.AddNoteAndSaveChanges(cart, "Cancel", $"No vipps payment found for vipps order id {orderId}. Canceling payment"); PaymentHelper.CancelPayment(cart, paymentDetails.Amount, orderId); return(new ProcessOrderResponse { ErrorMessage = $"No vipps payment found for vipps order id {orderId}.", ProcessResponseErrorType = ProcessResponseErrorType.NOVIPPSPAYMENTINCART }); } EnsureExpressPaymentAndShipping(cart, payment, paymentDetails, userDetails); payment.Status = PaymentStatus.Processed.ToString(); AddNote(cart, payment, orderId, paymentDetails); var loadOrCreatePurchaseOrderResponse = CreatePurchaseOrder(cart); if (loadOrCreatePurchaseOrderResponse.PurchaseOrder != null) { return(loadOrCreatePurchaseOrderResponse); } PaymentHelper.CancelPayment(cart, payment); return(loadOrCreatePurchaseOrderResponse); }
public void Handle(OrderCancelledEvent ev) { _order = ev.PurchaseOrder; _orderForm = _order.GetFirstForm(); if (AlreadyVoided()) { return; } var previousPayment = _orderForm.Payments.FirstOrDefault(x => x.IsVippsPayment() && x.Status == PaymentStatus.Processed.ToString()); if (previousPayment == null) { return; } PaymentHelper.CancelPayment(_order, previousPayment); }