Пример #1
0
        public PaymentResultDisplay AuthorizeCapturePayment(PaymentRequest request)
        {
            var processor = new PaymentProcessor(MerchelloContext, request);

            var authorizeCapture = processor.AuthorizeCapture();

            var result = new PaymentResultDisplay()
            {
                Success = authorizeCapture.Payment.Success,
                Invoice = authorizeCapture.Invoice.ToInvoiceDisplay(),
                Payment = authorizeCapture.Payment.Result.ToPaymentDisplay(),
                ApproveOrderCreation = authorizeCapture.ApproveOrderCreation
            };

            if (!authorizeCapture.Payment.Success)
            {
                authorizeCapture.Payment.Result.AuditPaymentDeclined();
            }
            else
            {
                authorizeCapture.Payment.Result.AuditPaymentAuthorize(authorizeCapture.Invoice);
                authorizeCapture.Payment.Result.AuditPaymentCaptured(request.Amount);
            }

            return(result);
        }
        public PaymentResultDisplay CapturePayment(PaymentRequestDisplay request)
        {
            var processor = new PaymentProcessor(MerchelloContext, request);

            var capture = processor.Capture();

            var result = new PaymentResultDisplay()
            {
                Success = capture.Payment.Success,
                Invoice = capture.Invoice.ToInvoiceDisplay(),
                Payment = capture.Payment.Result.ToPaymentDisplay(),
                ApproveOrderCreation = capture.ApproveOrderCreation
            };

            if (!capture.Payment.Success)
            {
                capture.Payment.Result.AuditPaymentDeclined();
            }
            else
            {
                capture.Payment.Result.AuditPaymentCaptured(request.Amount);
            }

            return(result);
        }
        public PaymentResultDisplay VoidPayment(PaymentRequestDisplay request)
        {
            var processor = new PaymentProcessor(MerchelloContext, request);

            var voided = processor.Void();

            var result = new PaymentResultDisplay()
            {
                Success = voided.Payment.Success,
                Invoice = voided.Invoice.ToInvoiceDisplay(),
                Payment = voided.Payment.Result.ToPaymentDisplay(),
                ApproveOrderCreation = voided.ApproveOrderCreation
            };

            if (voided.Payment.Success)
            {
                voided.Payment.Result.AuditPaymentVoided();
            }

            return(result);
        }
Пример #4
0
        /// <summary>
        /// Returns a payment for an CapturePayment for a PaymentRequest
        ///
        /// GET /umbraco/Merchello/PaymentApi/RefundPayment/
        /// </summary>
        /// <param name="request">
        /// The request.
        /// </param>
        /// <returns>
        /// The <see cref="PaymentDisplay"/>.
        /// </returns>
        public PaymentResultDisplay RefundPayment(PaymentRequest request)
        {
            var processor = new PaymentProcessor(MerchelloContext, request);

            var refund = processor.Refund();

            var result = new PaymentResultDisplay()
            {
                Success = refund.Payment.Success,
                Invoice = refund.Invoice.ToInvoiceDisplay(),
                Payment = refund.Payment.Result.ToPaymentDisplay(),
                ApproveOrderCreation = refund.ApproveOrderCreation
            };

            if (refund.Payment.Success)
            {
                refund.Payment.Result.AuditPaymentRefunded(request.Amount);
            }


            return(result);
        }
        public PaymentResultDisplay AuthorizePayment(PaymentRequestDisplay request)
        {
            // Add the amount to the args, this is for the Authorize from the backoffice new payments
            // for some reason Authorize does not take in the amount and only uses the full invoice amount
            // which is incorrect when adding adjustments via the back office.
            var requestArgs = request.ProcessorArgs.ToList();

            requestArgs.Add(new KeyValuePair <string, string>("authorizePaymentAmount", request.Amount.ToString(CultureInfo.InvariantCulture)));
            request.ProcessorArgs = requestArgs;

            var processor = new PaymentProcessor(MerchelloContext, request);
            var authorize = processor.Authorize();

            var result = new PaymentResultDisplay
            {
                Success = authorize.Payment.Success,
                Invoice = authorize.Invoice.ToInvoiceDisplay(),
                Payment = authorize.Payment.Result.ToPaymentDisplay(),
                ApproveOrderCreation = authorize.ApproveOrderCreation
            };

            if (!authorize.Payment.Success)
            {
                authorize.Payment.Result.AuditPaymentDeclined();
            }
            else
            {
                if (request.Amount > 0)
                {
                    authorize.Payment.Result.AuditPaymentAuthorize(authorize.Invoice, request.Amount);
                }
                else
                {
                    authorize.Payment.Result.AuditPaymentAuthorize(authorize.Invoice);
                }
            }

            return(result);
        }
Пример #6
0
        /// <summary>
        /// Returns a payment for an CapturePayment for a PaymentRequest
        /// 
        /// GET /umbraco/Merchello/PaymentApi/RefundPayment/
        /// </summary>
        /// <param name="request">
        /// The request.
        /// </param>
        /// <returns>
        /// The <see cref="PaymentDisplay"/>.
        /// </returns>
        public PaymentResultDisplay RefundPayment(PaymentRequest request)
        {
            var processor = new PaymentProcessor(MerchelloContext, request);

            var refund = processor.Refund();

            var result = new PaymentResultDisplay()
            {
                Success = refund.Payment.Success,
                Invoice = refund.Invoice.ToInvoiceDisplay(),
                Payment = refund.Payment.Result.ToPaymentDisplay(),
                ApproveOrderCreation = refund.ApproveOrderCreation
            };

            if (refund.Payment.Success)            
            {
               refund.Payment.Result.AuditPaymentRefunded(request.Amount);
            }
            

            return result;
        }       
Пример #7
0
        public PaymentResultDisplay AuthorizeCapturePayment(PaymentRequest request)
        {
            var processor = new PaymentProcessor(MerchelloContext, request);

            var authorizeCapture = processor.AuthorizeCapture();

            var result = new PaymentResultDisplay()
            {
                Success = authorizeCapture.Payment.Success,
                Invoice = authorizeCapture.Invoice.ToInvoiceDisplay(),
                Payment = authorizeCapture.Payment.Result.ToPaymentDisplay(),
                ApproveOrderCreation = authorizeCapture.ApproveOrderCreation
            };

            if (!authorizeCapture.Payment.Success)
            {
                authorizeCapture.Payment.Result.AuditPaymentDeclined();
            }
            else
            {
                authorizeCapture.Payment.Result.AuditPaymentAuthorize(authorizeCapture.Invoice);
                authorizeCapture.Payment.Result.AuditPaymentCaptured(request.Amount);
            }
            
            return result;
        }