コード例 #1
0
        /// <summary>
        /// Consultar Saldos  - Consult Balances
        /// </summary>
        /// <param name="accesstoken">AccessToken</param>
        /// <returns></returns>
        public async Task <List <BalanceResponse> > Consult(string accesstoken)
        {
            HttpClient httpClient = Http_Client.HttpClient;

            httpClient.DefaultRequestHeaders.Remove("Authorization");
            httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accesstoken);
            HttpResponseMessage response = await Http_Client.HttpClient.GetAsync("v2/balances");

            httpClient.DefaultRequestHeaders.Remove("Authorization");
            httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + Http_Client.Accesstoken);
            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <List <BalanceResponse> >(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #2
0
        /// <summary>
        /// Consultar conta bancária - consult bank account
        /// </summary>
        /// <param name="accesstoken">accesstoken da conta que receberá a conta bancária</param>
        /// <param name="bank_account_id">Identificador da conta bancária.</param>
        /// <returns></returns>
        public async Task <BankAccountResponse> Consult(string accesstoken, string bank_account_id)
        {
            HttpClient httpClient = ClientInstance;

            httpClient.DefaultRequestHeaders.Remove("Authorization");
            httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accesstoken);
            HttpResponseMessage response = await httpClient.GetAsync($"v2/bankaccounts/{bank_account_id}");

            httpClient.DefaultRequestHeaders.Remove("Authorization");
            httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + _HttpClient.accesstoken);
            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <BankAccountResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #3
0
        /// <summary>
        /// Criar Preferência de Notificação para App - Create Notification Preference for App
        /// </summary>
        /// <param name="body"></param>
        /// <param name="app_id">Código identificador do App. Exemplo: APP-3984HG73HE92</param>
        /// <returns></returns>
        public async Task <NotificationResponse> CreateApp(NotificationRequest body, string app_id)
        {
            Regex regex = new Regex(@"^APP-[a-zA-Z0-9]{12}$");
            Match match = regex.Match(app_id);

            if (!match.Success)
            {
                throw new ArgumentException("app_id invalid");
            }
            StringContent       stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await ClientInstance.PostAsync($"v2/preferences/{app_id}/notifications", stringContent);

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <NotificationResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #4
0
        /// <summary>
        /// Reverter Transferência - Revert Transfer
        /// </summary>
        /// <param name="transfer_id">Código identificador da transferência. Exemplo: TRA-28HRLYNLMUFH</param>
        /// <param name="accesstoken">accesstoken da conta Wirecard a qual foi destinatária da transferência</param>
        /// <returns></returns>
        public async Task <TransferResponse> Revert(string transfer_id, string accesstoken)
        {
            HttpClient httpClient = Http_Client.HttpClient;

            httpClient.DefaultRequestHeaders.Remove("Authorization");
            httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accesstoken);
            StringContent       stringContent = new StringContent(string.Empty, Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await httpClient.PostAsync($"v2/transfers/{transfer_id}/reverse", stringContent);

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <TransferResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #5
0
        /// <summary>
        /// Alterar Assinante - Change Subscriber
        /// </summary>
        /// <param name="body"></param>
        /// <param name="code"> Código do Assinante </param>
        /// <returns></returns>
        public async Task <HttpStatusCode> ChangeSubscriber(SubscriberRequest body, string code)
        {
            string json;

            try
            {
                json = JsonConvert.SerializeObject(body);
                JObject jObject = JObject.Parse(json);
                jObject["address"]["streetNumber"].Rename("number");
                jObject["address"]["zipCode"].Rename("zipcode");
                json = jObject.ToString();
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
            StringContent       stringContent = new StringContent(json, Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await Http_Client.HttpClient.PutAsync($"assinaturas/v1/customers/{code}", stringContent);

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            return(response.StatusCode);
        }
コード例 #6
0
        /// <summary>
        /// Atualizar Cartão do Assinante - Update Subscriber Card
        /// </summary>
        /// <param name="body"></param>
        /// <param name="code"> Código do Assinante </param>
        /// <returns></returns>
        public async Task <SubscriberResponse> UpdateSubscriberCard(SubscriberRequest body, string code)
        {
            string json;

            try
            {
                json = JsonConvert.SerializeObject(body);
                JObject jObject = JObject.Parse(json);
                json = jObject["billing_info"].ToString();
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
            StringContent       stringContent = new StringContent(json, Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await Http_Client.HttpClient.PutAsync($"assinaturas/v1/customers/{code}/billing_infos", stringContent);

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <SubscriberResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #7
0
        /// <summary>
        /// Consultar Assinante - Consult Subscriber
        /// </summary>
        /// <param name="code"> Código do Assinante </param>
        /// <returns></returns>
        public async Task <SubscriberResponse> ConsultSubscriber(string code)
        {
            HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"assinaturas/v1/customers/{code}");

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                string json = await response.Content.ReadAsStringAsync();

                JObject jObject = JObject.Parse(json);
                jObject["address"]["number"].Rename("streetNumber");
                jObject["address"]["zipcode"].Rename("ZipCode");
                json = jObject.ToString();
                return(JsonConvert.DeserializeObject <SubscriberResponse>(json));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #8
0
        /// <summary>
        /// Listar Todos os Clientes - List All Customers
        /// </summary>
        /// <returns></returns>
        public async Task <List <CustomerResponse> > List()
        {
            HttpResponseMessage response = await ClientInstance.GetAsync($"v2/customers/");

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                string json = await response.Content.ReadAsStringAsync();

                //remove: {'customers':
                json = json.Remove(0, 13);
                //remove: }
                json = json.Remove(json.Length - 1);
                return(JsonConvert.DeserializeObject <List <CustomerResponse> >(json));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #9
0
        /// <summary>
        /// Gera Access Token - Generate Access Token
        /// </summary>
        /// <param name="client_id">Código identificador do aplicativo que está realizando a solicitação. Exemplo: APP-M11STAPPOAU</param>
        /// <param name="client_secret">Chave privada do aplicativo. O atributo secret que foi enviado na criação do seu aplicativo</param>
        /// <param name="redirect_uri">URL de redirecionamento do cliente (deve ser a mesma utilizada na ação de solicitação de permissão).</param>
        /// <param name="grant_type">Tipo de solicitação desejada. Valores possíveis: authorization_code</param>
        /// <param name="code">Código de validação para recuperar o token de acesso. Esse é o code retornado para a URL cadastrada quando o usuário dá autorização de permissão.</param>
        /// <returns></returns>
        public async Task <AccessTokenResponse> GenerateAccessToken(string client_id, string client_secret, string redirect_uri, string grant_type, string code)
        {
            Dictionary <string, string> @params = new Dictionary <string, string>
            {
                { "client_id", client_id },
                { "client_secret", client_secret },
                { "redirect_uri", redirect_uri },
                { "grant_type", grant_type },
                { "code", code },
            };
            FormUrlEncodedContent encodedContent = new FormUrlEncodedContent(@params);
            HttpClient            httpClient     = Http_Client.HttpClient_Connect;
            HttpResponseMessage   response       = await httpClient.PostAsync($"oauth/token", encodedContent);

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <AccessTokenResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw new ArgumentException("Error message: " + ex.Message);
            }
        }
コード例 #10
0
        /// <summary>
        /// Criar conta bancária - create bank account
        /// </summary>
        /// <param name="body"></param>
        /// <param name="accesstoken">accesstoken da conta que receberá a conta bancária</param>
        /// <param name="account_id">Código identificador da conta Wirecard. Exemplo: MPA-3C5358FF2296</param>
        /// <returns></returns>
        public async Task <BankAccountResponse> Create(BankAccountRequest body, string accesstoken, string account_id)
        {
            HttpClient httpClient = Http_Client.HttpClient;

            httpClient.DefaultRequestHeaders.Remove("Authorization");
            httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accesstoken);
            StringContent       stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await httpClient.PostAsync($"v2/accounts/{account_id}/bankaccounts", stringContent);

            httpClient.DefaultRequestHeaders.Remove("Authorization");
            httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + Http_Client.Accesstoken);
            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <BankAccountResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #11
0
        /// <summary>
        /// Atualiza access token - Update accessToken
        /// </summary>
        /// <param name="grant_type">Tipo de solicitação desejada. Valores possíveis: refresh_token</param>
        /// <param name="refresh_token">Token para atualizar o token de autenticação</param>
        /// <returns></returns>
        public async Task <AccessTokenResponse> UpdateAccessToken(string grant_type, string refresh_token)
        {
            Dictionary <string, string> @params = new Dictionary <string, string>
            {
                { "grant_type", grant_type },
                { "refresh_token", refresh_token }
            };
            FormUrlEncodedContent encodedContent = new FormUrlEncodedContent(@params);
            HttpClient            httpClient     = ConnectClientInstance;
            HttpResponseMessage   response       = await httpClient.PostAsync($"oauth/token", encodedContent);

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <AccessTokenResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #12
0
        /// <summary>
        /// Simular pagamentos - Simulate Payments
        /// </summary>
        /// <param name="payment_id">Código identificador do pagamento que deseja autorizar. Exemplo: PAY-0UBH5IAJ8KHX</param>
        /// <param name="valor">Valor a ser autorizado no pagamento. O formato deve incluir centavos e não deve incluir vírgula. Exemplo: Para autorizar pagamento no valor de R$265 você deve setar o valor 26500</param>
        /// <returns></returns>
        public async Task <HttpStatusCode> Simulate(string payment_id, int valor)
        {
            HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"simulador/authorize?payment_id={payment_id}&amount={valor}");

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            return(response.StatusCode);
        }
コード例 #13
0
        /// <summary>
        /// Remover Preferência de Notificação - Remove Notification Preference
        /// </summary>
        /// <param name="notification_id">Código identificador da preferência (NPR-98G940NT23JO)</param>
        /// <returns></returns>
        public async Task <HttpStatusCode> Remove(string notification_id)
        {
            HttpResponseMessage response = await ClientInstance.DeleteAsync($"v2/preferences/notifications/{notification_id}");

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            return(response.StatusCode);
        }
コード例 #14
0
        /// <summary>
        /// Obter Arquivo Financeiro - Get Financial File
        /// </summary>
        /// <param name="eventsCreatedAt">Data referente à liquidação dos lançamentos financeiros. Formato: YYYY-MM-DD</param>
        /// <returns></returns>
        public async Task <string> GetFinancialFile(string eventsCreatedAt)
        {
            HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"v2/reconciliations/financials?eventsCreatedAt={eventsCreatedAt}");

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            return(await response.Content.ReadAsStringAsync());
        }
コード例 #15
0
        /// <summary>
        /// Alterar método de pagamento - Change Payment Method
        /// </summary>
        /// <param name="body"></param>
        /// <param name="code"> Código do Assinante </param>
        /// <returns></returns>
        public async Task <HttpStatusCode> ChangePaymentMethod(SubscriptionRequest body, string code)
        {
            StringContent       stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await Http_Client.HttpClient.PutAsync($"assinaturas/v1/subscriptions/{code}/change_payment_method", stringContent);

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            return(response.StatusCode);
        }
コード例 #16
0
        /// <summary>
        /// Retentativa pagamento de fatura - Retentive invoice payment
        /// </summary>
        /// <param name="id">ID da fatura</param>
        /// <returns></returns>
        public async Task <HttpStatusCode> RetentiveInvoicePayment(string id)
        {
            StringContent       stringContent = new StringContent(null, Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await Http_Client.HttpClient.PostAsync($"assinaturas/v1/invoices/{id}/retry", stringContent);

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            return(response.StatusCode);
        }
コード例 #17
0
        /// <summary>
        /// Criar Preferência de Notificação - Create Notification Preference
        /// </summary>
        /// <param name="body"></param>
        /// <returns></returns>
        public async Task <HttpStatusCode> CreateNotificationPreference(NotificationRequest body)
        {
            StringContent       stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await Http_Client.HttpClient.PostAsync("assinaturas/v1/users/preferences", stringContent);

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            return(response.StatusCode);
        }
コード例 #18
0
        /// <summary>
        /// Ativar Plano - Enable Plan
        /// </summary>
        /// <param name="code"> Código do plano </param>
        /// <returns></returns>
        public async Task <HttpStatusCode> EnablePlan(string code)
        {
            StringContent       stringContent = new StringContent(JsonConvert.SerializeObject(null), Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await Http_Client.HttpClient.PutAsync($"assinaturas/v1/plans/{code}/activate", stringContent);

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            return(response.StatusCode);
        }
コード例 #19
0
        /// <summary>
        /// Deletar conta bancária - delete bank account
        /// </summary>
        /// <param name="accesstoken">accesstoken da conta que receberá a conta bancária</param>
        /// <param name="bankaccount_id">Identificador da conta bancária(BKA-XXXXXXXXXX)</param>
        /// <returns></returns>
        public async Task <HttpStatusCode> Delete(string accesstoken, string bankaccount_id)
        {
            HttpClient httpClient = Http_Client.HttpClient;

            httpClient.DefaultRequestHeaders.Remove("Authorization");
            httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accesstoken);
            HttpResponseMessage response = await httpClient.DeleteAsync($"v2/bankaccounts/{bankaccount_id}");

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            return(response.StatusCode);
        }
コード例 #20
0
 /// <summary>
 /// Capturar Multi Pagamento Pré-Autorizado - Capture Multi-Payment Pre-authorized
 /// </summary>
 /// <param name="multipayment_id">Id identificador do multipagamento.</param>
 /// <returns></returns>
 public async Task<MultiPaymentResponse> CaptureAuthorized(string multipayment_id)
 {
     HttpResponseMessage response = await ClientInstance.PostAsync($"v2/multipayments/{multipayment_id}/capture", null);
     if (!response.IsSuccessStatusCode)
     {
         string content = await response.Content.ReadAsStringAsync();
         WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
         throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
     }
     try
     {
         return JsonConvert.DeserializeObject<MultiPaymentResponse>(await response.Content.ReadAsStringAsync());
     }
     catch (System.Exception ex)
     {
         throw ex;
     }
 }
コード例 #21
0
        /// <summary>
        /// Associar Cupom para Nova Assinatura - Associate Coupon For New Signature
        /// </summary>
        /// <param name="body"></param>
        /// <param name="true_or_false">Caso queira criar um novo Assinante o valor desse ser "true", caso contrário "false".</param>
        /// <returns></returns>
        public async Task <CouponResponse> AssociateCouponForNewSignature(CouponRequest body, string true_or_false)
        {
            string json;

            try
            {
                json = JsonConvert.SerializeObject(body);
                JObject jObject = JObject.Parse(json);
                if (jObject["customer"]["address"] != null)
                {
                    if (jObject["customer"]["address"]["streetNumber"] != null)
                    {
                        jObject["customer"]["address"]["streetNumber"].Rename("number");
                    }
                    if (jObject["customer"]["address"]["zipCode"] != null)
                    {
                        jObject["customer"]["address"]["zipCode"].Rename("zipcode");
                    }
                }
                json = jObject.ToString();
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
            StringContent       stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await Http_Client.HttpClient.PostAsync($"assinaturas/v1/subscriptions?new_customer={true_or_false}", stringContent);

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <CouponResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #22
0
 /// <summary>
 /// Criar Multi Pagamento - Create multi payment
 /// </summary>
 /// <param name="body"></param>
 /// <param name="multiorder_id">Código identificador do multipedido. Exemplo: MOR-XXXXXXXX</param>
 /// <returns></returns>
 public async Task<MultiPaymentResponse> Create(MultiPaymentRequest body, string multiorder_id)
 {
     StringContent stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
     HttpResponseMessage response = await ClientInstance.PostAsync($"v2/multiorders/{multiorder_id}/multipayments", stringContent);
     if (!response.IsSuccessStatusCode)
     {
         string content = await response.Content.ReadAsStringAsync();
         WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
         throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
     }
     try
     {
         return JsonConvert.DeserializeObject<MultiPaymentResponse>(await response.Content.ReadAsStringAsync());
     }
     catch (System.Exception ex)
     {
         throw ex;
     }
 }
コード例 #23
0
        /// <summary>
        /// Obter Arquivo de Vendas - Get Sales File
        /// </summary>
        /// <param name="date">Data no formato YYYYMMDD</param>
        /// <returns></returns>
        public async Task <SalesFileResponse> GetSalesFile(string date)
        {
            HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"v2/reconciliations/sales/{date}");

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <SalesFileResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #24
0
        /// <summary>
        /// Consultar Multi pedido - Consult Multi order
        /// </summary>
        /// <param name="multiorder_id">Id identificador do multipagamento. Exemplo: MOR-9241K3EFW5DV</param>
        /// <returns></returns>
        public async Task <MultiOrderResponse> Consult(string multiorder_id)
        {
            HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"v2/multiorders/{multiorder_id}");

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <MultiOrderResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #25
0
        /// <summary>
        /// Listar Todos os Webhooks Enviados - List All Sent Webhooks
        /// </summary>
        /// <returns></returns>
        public async Task <WebhooksResponse> ListWebhooks()
        {
            HttpResponseMessage response = await ClientInstance.GetAsync("v2/webhooks");

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <WebhooksResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #26
0
        /// <summary>
        /// Liberação de Custódia - Release of Custody
        /// </summary>
        /// <param name="escrow_id">Código identificador da custódia. Exemplo: ECW-87E7UUF9N2EK</param>
        /// <returns></returns>
        public async Task <MultiPaymentResponse> ReleaseCustody(string escrow_id)
        {
            HttpResponseMessage response = await Http_Client.HttpClient.PostAsync($"v2/escrows/{escrow_id}/release", null);

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <MultiPaymentResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #27
0
        /// <summary>
        /// Listar Todas Transferências com filtro - List All Transfers with filter
        /// </summary>
        /// <returns></returns>
        public async Task <TransfersResponse> ListFilter(string filter)
        {
            HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"v2/transfers?{filter}");

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <TransfersResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #28
0
        /// <summary>
        /// Obtem a chave pública - Get public key
        /// </summary>
        /// <returns></returns>
        public async Task <PublicKeyAccountWirecardResponse> GetPublickey()
        {
            HttpResponseMessage response = await ClientInstance.GetAsync("v2/keys");

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <PublicKeyAccountWirecardResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw new ArgumentException("Error message: " + ex.Message);
            }
        }
コード例 #29
0
        /// <summary>
        /// Consulta a conta clássica - Consult Classic Account
        /// </summary>
        /// <param name="account_id">ID da Conta Wirecard. Exemplo: MPA-3C5358FF2296</param>
        /// <returns></returns>
        public async Task <ClassAccountResponse> Consult(string account_id)
        {
            HttpResponseMessage response = await ClientInstance.GetAsync($"v2/accounts/{account_id}");

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <ClassAccountResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
コード例 #30
0
        /// <summary>
        /// Listar Todas as Preferências de Notificação - List All Notification Preferences
        /// </summary>
        /// <returns></returns>
        public async Task <List <NotificationResponse> > List()
        {
            HttpResponseMessage response = await Http_Client.HttpClient.GetAsync("v2/preferences/notifications");

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                WirecardException.WirecardError wirecardException = WirecardException.DeserializeObject(content);
                throw new WirecardException(wirecardException, "HTTP Response Not Success", content, (int)response.StatusCode);
            }
            try
            {
                return(JsonConvert.DeserializeObject <List <NotificationResponse> >(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }