예제 #1
0
        public virtual async Task <Result <DisputeEvidence> > AddFileEvidenceAsync(string disputeId, string documentUploadId)
        {
            NotFoundException notFoundException = new NotFoundException(String.Format("dispute with id '{0}' not found", disputeId));

            if (disputeId == null || disputeId.Trim().Equals(""))
            {
                throw notFoundException;
            }

            if (documentUploadId == null || documentUploadId.Trim().Equals(""))
            {
                throw new NotFoundException(String.Format("document with id '{0}' not found", documentUploadId));
            }

            DisputeAddEvidenceRequest request = new DisputeAddEvidenceRequest();

            request.DocumentUploadId = documentUploadId;

            try {
                XmlNode disputeEvidenceXML = await Service.PostAsync(Service.MerchantPath() + "/disputes/" + disputeId + "/evidence", request).ConfigureAwait(false);

                return(new ResultImpl <DisputeEvidence>(new NodeWrapper(disputeEvidenceXML), Gateway));
            } catch (NotFoundException) {
                throw notFoundException;
            }
        }
        public virtual async Task <Result <Transaction> > CreditAsync(TransactionRequest request)
        {
            request.Type = TransactionType.CREDIT;
            XmlNode response = await service.PostAsync(service.MerchantPath() + "/transactions", request);

            return(new ResultImpl <Transaction>(new NodeWrapper(response), gateway));
        }
예제 #3
0
        public virtual async Task <ResourceCollection <CreditCardVerification> > SearchAsync(CreditCardVerificationSearchRequest query)
        {
            var response = new NodeWrapper(await service.PostAsync(service.MerchantPath() + "/verifications/advanced_search_ids", query).ConfigureAwait(false));

            return(new ResourceCollection <CreditCardVerification>(response,
                                                                   ids => FetchCreditCardVerifications(query, ids)));
        }
예제 #4
0
        public virtual async Task <ResourceCollection <CreditCardVerification> > SearchAsync(CreditCardVerificationSearchRequest query)
        {
            var response = new NodeWrapper(await service.PostAsync(service.MerchantPath() + "/verifications/advanced_search_ids", query));

            return(new ResourceCollection <CreditCardVerification>(response, delegate(string[] ids) {
                return FetchCreditCardVerifications(query, ids);
            }));
        }
예제 #5
0
        public virtual async Task <ResourceCollection <UsBankAccountVerification> > SearchAsync(UsBankAccountVerificationSearchRequest query)
        {
            var response = new NodeWrapper(await service.PostAsync(service.MerchantPath() + "/us_bank_account_verifications/advanced_search_ids", query).ConfigureAwait(false));

            return(new ResourceCollection <UsBankAccountVerification>(response, delegate(string[] ids) {
                return FetchUsBankAccountVerifications(query, ids);
            }));
        }
        public virtual async Task <string> GenerateAsync(ClientTokenRequest request = null)
        {
            if (request == null)
            {
                request = new ClientTokenRequest();
            }
            VerifyOptions(request);
            XmlNode response = await Service.PostAsync(Service.MerchantPath() + "/client_token", request).ConfigureAwait(false);

            if (response.Name.Equals("client-token"))
            {
                return(Regex.Unescape(response.InnerText));
            }
            else
            {
                throw new ArgumentException(response.SelectSingleNode("message").InnerText);
            }
        }
예제 #7
0
        public virtual async Task <Result <CreditCard> > CreateAsync(CreditCardRequest request)
        {
            XmlNode creditCardXML = await service.PostAsync(service.MerchantPath() + "/payment_methods", request).ConfigureAwait(false);

            return(new ResultImpl <CreditCard>(new NodeWrapper(creditCardXML), gateway));
        }
예제 #8
0
        public virtual async Task <Result <Customer> > CreateAsync(CustomerRequest request)
        {
            XmlNode customerXML = await service.PostAsync(service.MerchantPath() + "/customers", request);

            return(new ResultImpl <Customer>(new NodeWrapper(customerXML), gateway));
        }
        public virtual async Task <Result <MerchantAccount> > CreateAsync(MerchantAccountRequest request)
        {
            XmlNode merchantAccountXML = await service.PostAsync(service.MerchantPath() + "/merchant_accounts/create_via_api", request).ConfigureAwait(false);

            return(new ResultImpl <MerchantAccount>(new NodeWrapper(merchantAccountXML), gateway));
        }
        public async Task <Result <PaymentMethod> > CreateAsync(PaymentMethodRequest request)
        {
            var response = new NodeWrapper(await service.PostAsync(service.MerchantPath() + "/payment_methods", request).ConfigureAwait(false));

            return(ExtractResultFromResponse(response));
        }
예제 #11
0
        private async Task <Result <SettlementBatchSummary> > GetSummaryAsync(SettlementBatchSummaryRequest request)
        {
            var response = new NodeWrapper(await service.PostAsync(service.MerchantPath() + "/settlement_batch_summary", request).ConfigureAwait(false));

            return(new ResultImpl <SettlementBatchSummary>(response, gateway));
        }
        public virtual async Task <Result <Subscription> > CreateAsync(SubscriptionRequest request)
        {
            XmlNode subscriptionXML = await service.PostAsync(service.MerchantPath() + "/subscriptions", request).ConfigureAwait(false);

            return(new ResultImpl <Subscription>(new NodeWrapper(subscriptionXML), gateway));
        }
예제 #13
0
        public async Task <Result <PaymentMethodNonce> > CreateAsync(string token)
        {
            var response = new NodeWrapper(await service.PostAsync(service.MerchantPath() + "/payment_methods/" + token + "/nonces"));

            return(new ResultImpl <PaymentMethodNonce>(response, gateway));
        }
예제 #14
0
        public virtual async Task <Result <Address> > CreateAsync(string customerId, AddressRequest request)
        {
            XmlNode addressXML = await Service.PostAsync(Service.MerchantPath() + "/customers/" + customerId + "/addresses", request).ConfigureAwait(false);

            return(new ResultImpl <Address>(new NodeWrapper(addressXML), Gateway));
        }
        public async Task <Result <PaymentMethodNonce> > CreateAsync(string token, PaymentMethodNonceRequest request = null)
        {
            var response = new NodeWrapper(await service.PostAsync(service.MerchantPath() + "/payment_methods/" + token + "/nonces", request).ConfigureAwait(false));

            return(new ResultImpl <PaymentMethodNonce>(response, gateway));
        }