コード例 #1
0
        private static BaseTransactionResult ParseTransactionResult(BaseTransactionResult result, XElement root)
        {
            foreach (var node in root.Elements())
            {
                var value = node.Value;
                var name  = node.Name.LocalName.ToLower();
                int i;
                switch (name)
                {
                case "status":
                    ParseStatus(result, node);
                    break;

                case "transactionstatus":
                    int.TryParse(value, out i);
                    result.TransactionStatus = (Enumerations.TransactionStatusCode)i;
                    break;

                case "originaltransactionnumber":
                    result.OriginalTransactionNumber = value;
                    break;

                case "transactionnumber":
                    result.TransactionNumber = value;
                    break;
                }
            }

            return(result);
        }
コード例 #2
0
        private void UpdateOrderPaymentStatus(BaseTransactionResult result, Order order)
        {
            switch (result.TransactionStatus.Value)
            {
            case Enumerations.TransactionStatusCode.Sale:
            case Enumerations.TransactionStatusCode.Capture:     // Capture should not happen here
                order.CaptureTransactionId = result.TransactionNumber;
                _orderService.UpdateOrder(order);
                // Mark order as paid
                if (result.TransactionStatus == Enumerations.TransactionStatusCode.Sale &&
                    _orderProcessingService.CanMarkOrderAsPaid(order))
                {
                    _orderProcessingService.MarkOrderAsPaid(order);
                }
                break;

            case Enumerations.TransactionStatusCode.Authorize:
                order.AuthorizationTransactionId = result.TransactionNumber;
                _orderService.UpdateOrder(order);
                if (_orderProcessingService.CanMarkOrderAsAuthorized(order))
                {
                    _orderProcessingService.MarkAsAuthorized(order);
                }
                break;
            }
        }