예제 #1
0
        public Result <PaymentMethod> Update(string token, PaymentMethodRequest request)
        {
            var response = new NodeWrapper(service.Put(service.MerchantPath() + "/payment_methods/any/" + token, request));

            if (response.GetName() == "paypal-account")
            {
                return(new ResultImpl <PayPalAccount>(response, gateway));
            }
            else if (response.GetName() == "credit-card")
            {
                return(new ResultImpl <CreditCard>(response, gateway));
            }
            else if (response.GetName() == "apple-pay-card")
            {
                return(new ResultImpl <ApplePayCard>(response, gateway));
            }
            else if (response.GetName() == "android-pay-card")
            {
                return(new ResultImpl <AndroidPayCard>(response, gateway));
            }
            else
            {
                return(new ResultImpl <UnknownPaymentMethod>(response, gateway));
            }
        }
        public Result<PaymentMethod> Update(string token, PaymentMethodRequest request)
        {
            var response = new NodeWrapper(service.Put(service.MerchantPath() + "/payment_methods/any/" + token, request));

            if (response.GetName() == "paypal-account")
            {
                return new ResultImpl<PayPalAccount>(response, gateway);
            }
            else if (response.GetName() == "credit-card")
            {
                return new ResultImpl<CreditCard>(response, gateway);
            }
            else if (response.GetName() == "apple-pay-card")
            {
                return new ResultImpl<ApplePayCard>(response, gateway);
            }
            else if (response.GetName() == "android-pay-card")
            {
                return new ResultImpl<AndroidPayCard>(response, gateway);
            }
            else
            {
                return new ResultImpl<UnknownPaymentMethod>(response, gateway);
            }
        }
예제 #3
0
        public PaymentMethod Find(string token)
        {
            if (token == null || token.Trim().Equals(""))
            {
                throw new NotFoundException();
            }

            var response = new NodeWrapper(service.Get(service.MerchantPath() + "/payment_methods/any/" + token));

            if (response.GetName() == "paypal-account")
            {
                return(new PayPalAccount(response, gateway));
            }
            else if (response.GetName() == "credit-card")
            {
                return(new CreditCard(response, gateway));
            }
            else if (response.GetName() == "apple-pay-card")
            {
                return(new ApplePayCard(response, gateway));
            }
            else if (response.GetName() == "android-pay-card")
            {
                return(new AndroidPayCard(response, gateway));
            }
            else if (response.GetName() == "coinbase-account")
            {
                return(new CoinbaseAccount(response, gateway));
            }
            else
            {
                return(new UnknownPaymentMethod(response));
            }
        }
예제 #4
0
        public Result<PaymentMethod> Create(PaymentMethodRequest request)
        {
            NodeWrapper response = new NodeWrapper(service.Post("/payment_methods", request));

            if (response.GetName() == "paypal-account")
            {
                return new ResultImpl<PayPalAccount>(response, service);
            }
            else if (response.GetName() == "credit-card")
            {
                return new ResultImpl<CreditCard>(response, service);
            }
            else if (response.GetName() == "apple-pay-card")
            {
                return new ResultImpl<ApplePayCard>(response, service);
            }
            else if (response.GetName() == "android-pay-card")
            {
                return new ResultImpl<AndroidPayCard>(response, service);
            }
            else if (response.GetName() == "coinbase-account")
            {
                return new ResultImpl<CoinbaseAccount>(response, service);
            }
            else
            {
                return new ResultImpl<UnknownPaymentMethod>(response, service);
            }
        }
예제 #5
0
        public Result <PaymentMethod> Create(PaymentMethodRequest request)
        {
            NodeWrapper response = new NodeWrapper(service.Post("/payment_methods", request));

            if (response.GetName() == "paypal-account")
            {
                return(new ResultImpl <PayPalAccount>(response, service));
            }
            else if (response.GetName() == "credit-card")
            {
                return(new ResultImpl <CreditCard>(response, service));
            }
            else if (response.GetName() == "apple-pay-card")
            {
                return(new ResultImpl <ApplePayCard>(response, service));
            }
            else if (response.GetName() == "android-pay-card")
            {
                return(new ResultImpl <AndroidPayCard>(response, service));
            }
            else if (response.GetName() == "coinbase-account")
            {
                return(new ResultImpl <CoinbaseAccount>(response, service));
            }
            else
            {
                return(new ResultImpl <UnknownPaymentMethod>(response, service));
            }
        }
        public PaymentMethod Find(string token)
        {
            if(token == null || token.Trim().Equals(""))
                throw new NotFoundException();

            var response = new NodeWrapper(service.Get(service.MerchantPath() + "/payment_methods/any/" + token));

            if (response.GetName() == "paypal-account")
            {
                return new PayPalAccount(response, gateway);
            }
            else if (response.GetName() == "credit-card")
            {
                return new CreditCard(response, gateway);
            }
            else if (response.GetName() == "apple-pay-card")
            {
                return new ApplePayCard(response, gateway);
            }
            else if (response.GetName() == "android-pay-card")
            {
                return new AndroidPayCard(response, gateway);
            }
            else if (response.GetName() == "coinbase-account")
            {
                return new CoinbaseAccount(response, gateway);
            }
            else
            {
                return new UnknownPaymentMethod(response);
            }
        }
 private Result <PaymentMethod> ExtractResultFromResponse(NodeWrapper response)
 {
     if (response.GetName() == "paypal-account")
     {
         return(new ResultImpl <PayPalAccount>(response, gateway));
     }
     else if (response.GetName() == "us-bank-account")
     {
         return(new ResultImpl <UsBankAccount>(response, gateway));
     }
     else if (response.GetName() == "credit-card")
     {
         return(new ResultImpl <CreditCard>(response, gateway));
     }
     else if (response.GetName() == "apple-pay-card")
     {
         return(new ResultImpl <ApplePayCard>(response, gateway));
     }
     else if (response.GetName() == "android-pay-card")
     {
         return(new ResultImpl <AndroidPayCard>(response, gateway));
     }
     else if (response.GetName() == "amex-express-checkout-card")
     {
         return(new ResultImpl <AmexExpressCheckoutCard>(response, gateway));
     }
     else if (response.GetName() == "coinbase-account")
     {
         return(new ResultImpl <CoinbaseAccount>(response, gateway));
     }
     else if (response.GetName() == "venmo-account")
     {
         return(new ResultImpl <VenmoAccount>(response, gateway));
     }
     else if (response.GetName() == "visa-checkout-card")
     {
         return(new ResultImpl <VisaCheckoutCard>(response, gateway));
     }
     else if (response.GetName() == "masterpass-card")
     {
         return(new ResultImpl <MasterpassCard>(response, gateway));
     }
     else
     {
         return(new ResultImpl <UnknownPaymentMethod>(response, gateway));
     }
 }
 public static PaymentMethod ParsePaymentMethod(NodeWrapper response, IBraintreeGateway gateway)
 {
     if (response.GetName() == "paypal-account")
     {
         return(new PayPalAccount(response, gateway));
     }
     else if (response.GetName() == "us-bank-account")
     {
         return(new UsBankAccount(response));
     }
     else if (response.GetName() == "credit-card")
     {
         return(new CreditCard(response, gateway));
     }
     else if (response.GetName() == "apple-pay-card")
     {
         return(new ApplePayCard(response, gateway));
     }
     else if (response.GetName() == "android-pay-card")
     {
         return(new AndroidPayCard(response, gateway));
     }
     else if (response.GetName() == "coinbase-account")
     {
         return(new CoinbaseAccount(response, gateway));
     }
     else if (response.GetName() == "venmo-account")
     {
         return(new VenmoAccount(response, gateway));
     }
     else if (response.GetName() == "visa-checkout-card")
     {
         return(new VisaCheckoutCard(response, gateway));
     }
     else if (response.GetName() == "masterpass-card")
     {
         return(new MasterpassCard(response, gateway));
     }
     else if (response.GetName() == "samsung-pay-card")
     {
         return(new SamsungPayCard(response, gateway));
     }
     else
     {
         return(new UnknownPaymentMethod(response));
     }
 }
 private PaymentMethod ExtractPaymentMethodFromResponse(NodeWrapper response)
 {
     if (response.GetName() == "paypal-account")
     {
         return(new PayPalAccount(response, gateway));
     }
     else if (response.GetName() == "us-bank-account")
     {
         return(new UsBankAccount(response));
     }
     else if (response.GetName() == "credit-card")
     {
         return(new CreditCard(response, gateway));
     }
     else if (response.GetName() == "apple-pay-card")
     {
         return(new ApplePayCard(response, gateway));
     }
     else if (response.GetName() == "android-pay-card")
     {
         return(new AndroidPayCard(response, gateway));
     }
     else if (response.GetName() == "coinbase-account")
     {
         return(new CoinbaseAccount(response, gateway));
     }
     else if (response.GetName() == "venmo-account")
     {
         return(new VenmoAccount(response, gateway));
     }
     else
     {
         return(new UnknownPaymentMethod(response));
     }
 }
예제 #10
0
        private string XPathToNode(NodeWrapper node)
        {
            if (this.IsSameNode(node))
            {
                return("");
            }

            return(XPathToNode(node.GetParent()) + "/" + node.GetName());
        }
예제 #11
0
        public virtual ResourceCollection<Transaction> Search(TransactionSearchRequest query)
        {
            NodeWrapper response = new NodeWrapper(Service.Post("/transactions/advanced_search_ids", query));

            if (response.GetName() == "search-results") {
                return new ResourceCollection<Transaction>(response, delegate(String[] ids) {
                    return FetchTransactions(query, ids);
                });
            } else {
                throw new DownForMaintenanceException();
            }
        }
예제 #12
0
        public virtual async Task <ResourceCollection <Transaction> > SearchAsync(TransactionSearchRequest query)
        {
            var response = new NodeWrapper(await service.PostAsync(service.MerchantPath() + "/transactions/advanced_search_ids", query).ConfigureAwait(false));

            if (response.GetName() == "search-results")
            {
                return(new ResourceCollection <Transaction>(response, ids => FetchTransactions(query, ids)));
            }
            else
            {
                throw new UnexpectedException();
            }
        }
예제 #13
0
        public virtual async Task <ResourceCollection <Transaction> > SearchAsync(TransactionSearchRequest query)
        {
            var response = new NodeWrapper(await service.PostAsync(service.MerchantPath() + "/transactions/advanced_search_ids", query));

            if (response.GetName() == "search-results")
            {
                return(new ResourceCollection <Transaction>(response, delegate(string[] ids) {
                    return FetchTransactions(query, ids);
                }));
            }
            else
            {
                throw new DownForMaintenanceException();
            }
        }
예제 #14
0
        public virtual ResourceCollection <Transaction> Search(TransactionSearchRequest query)
        {
            var response = new NodeWrapper(service.Post(service.MerchantPath() + "/transactions/advanced_search_ids", query));

            if (response.GetName() == "search-results")
            {
                return(new ResourceCollection <Transaction>(response, delegate(string[] ids) {
                    return FetchTransactions(query, ids);
                }));
            }
            else
            {
                throw new UnexpectedException();
            }
        }
예제 #15
0
        public Result <PaymentMethod> Create(PaymentMethodRequest request)
        {
            var response = new NodeWrapper(service.Post(service.MerchantPath() + "/payment_methods", request));

            if (response.GetName() == "paypal-account")
            {
                return(new ResultImpl <PayPalAccount>(response, gateway));
            }
            else if (response.GetName() == "us-bank-account")
            {
                return(new ResultImpl <UsBankAccount>(response, gateway));
            }
            else if (response.GetName() == "credit-card")
            {
                return(new ResultImpl <CreditCard>(response, gateway));
            }
            else if (response.GetName() == "apple-pay-card")
            {
                return(new ResultImpl <ApplePayCard>(response, gateway));
            }
            else if (response.GetName() == "android-pay-card")
            {
                return(new ResultImpl <AndroidPayCard>(response, gateway));
            }
            else if (response.GetName() == "amex-express-checkout-card")
            {
                return(new ResultImpl <AmexExpressCheckoutCard>(response, gateway));
            }
            else if (response.GetName() == "coinbase-account")
            {
                return(new ResultImpl <CoinbaseAccount>(response, gateway));
            }
            else if (response.GetName() == "venmo-account")
            {
                return(new ResultImpl <VenmoAccount>(response, gateway));
            }
            else
            {
                return(new ResultImpl <UnknownPaymentMethod>(response, gateway));
            }
        }
예제 #16
0
        private List <Transaction> FetchTransactions(TransactionSearchRequest query, string[] ids)
        {
            query.Ids.IncludedIn(ids);

            var response = new NodeWrapper(service.Post(service.MerchantPath() + "/transactions/advanced_search", query));

            if (response.GetName() == "credit-card-transactions")
            {
                var transactions = new List <Transaction>();
                foreach (var node in response.GetList("transaction"))
                {
                    transactions.Add(new Transaction(node, gateway));
                }
                return(transactions);
            }
            else
            {
                throw new DownForMaintenanceException();
            }
        }
예제 #17
0
        private void PopulateErrors(NodeWrapper node)
        {
            if (node.GetName() == "api-error-response")
            {
                node = node.GetNode("errors");
            }

            List <NodeWrapper> errorResponses = node.GetChildren();

            foreach (var errorResponse in errorResponses)
            {
                if (errorResponse.GetName() != "errors")
                {
                    nestedErrors[errorResponse.GetName()] = new ValidationErrors(errorResponse);
                }
                else
                {
                    PopulateTopLevelErrors(errorResponse.GetList("error"));
                }
            }
        }
예제 #18
0
        public virtual List <TransactionLineItem> FindAll(string id)
        {
            if (id == null || id.Trim().Equals(""))
            {
                throw new NotFoundException();
            }

            var response = new NodeWrapper(service.Get(service.MerchantPath() + "/transactions/" + id + "/line_items"));

            if (response.GetName() == "line-items")
            {
                var transactionLineItems = new List <TransactionLineItem>();
                foreach (var node in response.GetList("line-item"))
                {
                    transactionLineItems.Add(new TransactionLineItem(node));
                }
                return(transactionLineItems);
            }
            else
            {
                throw new UnexpectedException();
            }
        }
        public Result<PaymentMethod> Create(PaymentMethodRequest request)
        {
            var response = new NodeWrapper(service.Post(service.MerchantPath() + "/payment_methods", request));

            if (response.GetName() == "paypal-account")
            {
                return new ResultImpl<PayPalAccount>(response, gateway);
            }
            else if (response.GetName() == "credit-card")
            {
                return new ResultImpl<CreditCard>(response, gateway);
            }
            else if (response.GetName() == "apple-pay-card")
            {
                return new ResultImpl<ApplePayCard>(response, gateway);
            }
            else if (response.GetName() == "android-pay-card")
            {
                return new ResultImpl<AndroidPayCard>(response, gateway);
            }
            else if (response.GetName() == "amex-express-checkout-card")
            {
                return new ResultImpl<AmexExpressCheckoutCard>(response, gateway);
            }
            else if (response.GetName() == "coinbase-account")
            {
                return new ResultImpl<CoinbaseAccount>(response, gateway);
            }
            else if (response.GetName() == "venmo-account")
            {
                return new ResultImpl<VenmoAccount>(response, gateway);
            }
            else
            {
                return new ResultImpl<UnknownPaymentMethod>(response, gateway);
            }
        }
        private void PopulateErrors(NodeWrapper node)
        {
            if (node.GetName() == "api-error-response")
            {
                node = node.GetNode("errors");
            }

            List<NodeWrapper> errorResponses = node.GetChildren();
            foreach (var errorResponse in errorResponses)
            {
                if (errorResponse.GetName() != "errors")
                {
                    nestedErrors[errorResponse.GetName()] = new ValidationErrors(errorResponse);
                }
                else
                {
                    PopulateTopLevelErrors(errorResponse.GetList("error"));
                }
            }
        }
예제 #21
0
        public virtual ResourceCollection<Transaction> Search(TransactionSearchRequest query)
        {
            var response = new NodeWrapper(service.Post(service.MerchantPath() + "/transactions/advanced_search_ids", query));

            if (response.GetName() == "search-results") {
                return new ResourceCollection<Transaction>(response, delegate(string[] ids) {
                    return FetchTransactions(query, ids);
                });
            } else {
                throw new DownForMaintenanceException();
            }
        }
예제 #22
0
        private String XPathToNode(NodeWrapper node)
        {
            if (this.IsSameNode(node))
                return "";

            return XPathToNode(node.GetParent()) + "/" + node.GetName();
        }