Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Anton 135 posts 186 karma points
    Feb 26, 2016 @ 12:57
    Anton
    0

    Capture funds on backend

    I want to create payment in backend, it becaume Paid but not capture funds, invoice Authorize

    var cashProvider = MerchelloContext.Current.Gateways.Payment.GetProviderByKey(Merchello.Core.Constants.ProviderKeys.Payment.CashPaymentProviderKey);
                var gatewayProviderService = MerchelloContext.Current.Services.GatewayProviderService;
                var payment = gatewayProviderService.GetPaymentsForInvoice(invoice.Key).First();
                var paymentContext = MerchelloContext.Current.Gateways.Payment;
                var paymentMethod = paymentContext.GetPaymentGatewayMethodByKey(new Guid("101bf1d2-45c0-45ff-986e-3b67fe8b5177"));
    
                if (cashProvider != null)
                {
                    var cash = cashProvider.PaymentMethods.FirstOrDefault();
                    var attempt = invoice.CapturePayment(payment, paymentMethod, invoice.Total);
    
                    if (!attempt.Payment.Success)
                    {
                        // handle the error
                    }
    
                    var approved = attempt.ApproveOrderCreation;
    
                    if (approved)
                    {
                        var order = invoice.PrepareOrder();
                        MerchelloContext.Current.Services.OrderService.Save(order);
                    }
                }
    
Please Sign in or register to post replies

Write your reply to:

Draft