Esempio n. 1
0
        public void RefundTransaction_FullRefund_Success()
        {
            var response = transactionService.CreateTransaction(createTransactionRequest);

            CaptureTransactionRequest captureRequest = new CaptureTransactionRequest()
            {
                Amount        = createTransactionRequest.Amount,
                Currency      = createTransactionRequest.Currency,
                TransactionId = response.Content.Id
            };

            var captureResponse = transactionService.CaptureTransaction(captureRequest);

            var refundRequest = new RefundTransactionRequest()
            {
                TransactionId = captureResponse.Content.Id,
                Amount        = captureResponse.Content.Amount
            };

            var refundResponse = transactionService.RefundTransaction(refundRequest);

            var transaction = refundResponse.Content;

            Assert.IsFalse(refundResponse.IsError);
            Assert.AreEqual(201, refundResponse.ResponseCode);
            Assert.IsNotNull(transaction.Id);
            Assert.AreEqual(createTransactionRequest.Amount, transaction.RefundedAmount);
            Assert.AreEqual(createTransactionRequest.Amount, transaction.CapturedAmount);
        }
Esempio n. 2
0
        public RefundPaymentResult Refund(RefundPaymentRequest refundPaymentRequest)
        {
            var result = new RefundPaymentResult();

            var refundRequest = new RefundTransactionRequest()
            {
                Amount        = (int)(Math.Round(refundPaymentRequest.AmountToRefund, 2) * 100),
                Descriptor    = _paylikePaymentSettings.RefundDescriptor,
                TransactionId = refundPaymentRequest.Order.CaptureTransactionId
            };

            var refundResponse = _paylikeTransactionService.RefundTransaction(refundRequest);

            if (refundResponse.IsError)
            {
                result.AddError(refundResponse.ErrorMessage);
                result.AddError(refundResponse.ErrorContent);
            }
            else
            {
                if (refundPaymentRequest.IsPartialRefund)
                {
                    result.NewPaymentStatus = PaymentStatus.PartiallyRefunded;
                }
                else
                {
                    result.NewPaymentStatus = PaymentStatus.Refunded;
                }
            }

            return(result);
        }