Example #1
0
        /// <summary>
        /// Listar todos os pagamentos de fatura - List all invoice payments
        /// </summary>
        /// <param name="id"> Id da Cobrança </param>
        /// <returns></returns>
        public async Task <PaymentsSignatureResponse> ListAllInvoicePayments(string id)
        {
            HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"assinaturas/v1/invoices/{id}/payments");

            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 <PaymentsSignatureResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
Example #2
0
        /// <summary>
        /// Listar Planos - List Plans
        /// </summary>
        /// <returns></returns>
        public async Task <PlansResponse> ListPlans()
        {
            HttpResponseMessage response = await ClientInstance.GetAsync("assinaturas/v1/plans");

            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 <PlansResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// Obtem a chave pública - Get public key
        /// </summary>
        /// <returns></returns>
        public async Task <PublicKeyAccountWirecardResponse> GetPublickey()
        {
            HttpResponseMessage response = await Http_Client.HttpClient.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);
            }
        }
        /// <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 ClientInstance.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;
            }
        }
        /// <summary>
        /// Consultar Webhook Enviado - Consult Webhook Submitted
        /// </summary>
        /// <param name="payment_id">Identificador do pagamento</param>
        /// <returns></returns>
        public async Task <WebhooksResponse> ConsultWebhook(string payment_id)
        {
            HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"v2/webhooks?resourceId={payment_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 <WebhooksResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
Example #6
0
        /// <summary>
        /// Consultar Cupom - Consult Coupon
        /// </summary>
        /// <param name="code"> Código do Cupom. </param>
        /// <returns></returns>
        public async Task <CouponResponse> ConsultCoupon(string code)
        {
            HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"assinaturas/v1/coupons/{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
            {
                return(JsonConvert.DeserializeObject <CouponResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
        /// <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;
            }
        }
        /// <summary>
        /// Listar Reembolsos do Pedido - List Order Reimbursements
        /// </summary>
        /// <param name="orders_id">Id do pedido em formato de hash. string(16).</param>
        /// <returns></returns>
        public async Task <List <RefundResponse> > ListOrders(string orders_id)
        {
            HttpResponseMessage response = await ClientInstance.GetAsync($"v2/orders/{orders_id}/refunds");

            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 <RefundResponse> >(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
Example #9
0
        /// <summary>
        /// Listar Extrato - List Extract
        /// </summary>
        /// <param name="begin">Data de início de exibição no formato YYYY-MM-DD.</param>
        /// <param name="end">Data de fim de exibição no formato YYYY-MM-DD.</param>
        /// <returns></returns>
        public async Task <ExtractResponse> List(string begin, string end)
        {
            HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"v2/statements?begin={begin}&end={end}");

            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 <ExtractResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// Consultar Pagamento - Consult Payment
        /// </summary>
        /// <param name="payment_id">Código identificador do pagamento que deseja consultar. Exemplo: PAY-HL7QRKFEQNHV</param>
        /// <returns></returns>
        public async Task <PaymentResponse> Consult(string payment_id)
        {
            HttpResponseMessage response = await ClientInstance.GetAsync($"v2/payments/{payment_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 <PaymentResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw new ArgumentException("Error message: " + ex.Message);
            }
        }
Example #11
0
        /// <summary>
        /// Liberação de Custódia - Release of Custody
        /// </summary>
        /// <param name="escrow_id">Código identificador da custódia. Exemplo ECW-9OS6FAPR3FD5</param>
        /// <returns></returns>
        public async Task <PaymentResponse> ReleaseCustody(string escrow_id)
        {
            HttpResponseMessage response = await Http_Client.HttpClient.PostAsync($"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 <PaymentResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw new ArgumentException("Error message: " + ex.Message);
            }
        }
Example #12
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 Http_Client.HttpClient.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;
            }
        }
        /// <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;
            }
        }
Example #14
0
        /// <summary>
        /// Listar Extrato Futuro - List Future Extract
        /// </summary>
        /// <param name="type">Tipo do extrato.</param>
        /// <param name="date">Data para visualizar os detalhes no formato YYYY-MM-DD.</param>
        /// <returns></returns>
        public async Task <ExtractResponse> DetailFuture(string type, string date)
        {
            HttpResponseMessage response = await Http_Client.HttpClient.GetAsync($"v2/futurestatements/details?type={type}&date={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 <ExtractResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// Reenviar webhook - Resend WebHook
        /// </summary>
        /// <returns></returns>
        public async Task <NotificationResponse> ResendWebhook(NotificationRequest body)
        {
            StringContent       stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await Http_Client.HttpClient.PostAsync("v2/webhooks", 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;
            }
        }
Example #16
0
        /// <summary>
        /// Criar novo boleto de fatura - Create New Invoice Boleto
        /// </summary>
        /// <param name="body"></param>
        /// <param name="id">ID da fatura</param>
        /// <returns></returns>
        public async Task <RetentativeResponse> CreateNewInvoiceBoleto(RetentativeRequest body, string id)
        {
            StringContent       stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await Http_Client.HttpClient.PostAsync($"assinaturas/v1/invoices/{id}/boletos", 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 <RetentativeResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
Example #17
0
        /// <summary>
        /// Ativar ou Inativar Cupon - Enable or Disable Coupon
        /// </summary>
        /// <param name="code">Código do Cupom</param>
        /// <param name="active_or_inactive">Escolha active para Ativar um Cupom e inactive para desativar</param>
        /// <returns></returns>
        public async Task <CouponResponse> EnableOrDisableCoupon(string code, string active_or_inactive)
        {
            StringContent       stringContent = new StringContent(JsonConvert.SerializeObject(null), Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await Http_Client.HttpClient.PutAsync($"assinaturas/v1/coupons/{code}/{active_or_inactive}", 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;
            }
        }
        /// <summary>
        /// Cria a conta clássica - Create the classic account
        /// </summary>
        /// <param name="body"></param>
        /// <returns></returns>
        public async Task <ClassAccountResponse> Create(ClassicAccountRequest body)
        {
            StringContent       stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await ClientInstance.PostAsync("v2/accounts", 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 <ClassAccountResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
Example #19
0
        /// <summary>
        /// Associar Cupom para Assinatura Existente - Associate Coupon For Existing Signature
        /// </summary>
        /// <returns></returns>
        public async Task <CouponResponse> AssociateCouponForExistingSignature(CouponRequest 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}", 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;
            }
        }
        /// <summary>
        /// Adicionar cartão de crédito - Add Credit Card
        /// </summary>
        /// <param name="body"></param>
        /// <param name="customer_id">Código identificador do cliente (exemplo: CUS-8563056295)</param>
        /// <returns></returns>
        public async Task <CustomerResponse> AddCreditCard(CustomerRequest body, string customer_id)
        {
            StringContent       stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await ClientInstance.PostAsync($"v2/customers/{customer_id}/fundinginstruments", 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 <CustomerResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
Example #21
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 Http_Client.HttpClient.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;
            }
        }
Example #22
0
        /// <summary>
        /// Excluir Cupom de Assinatura - Delete Signature Coupon
        /// </summary>
        /// <param name="code">Código da Assinatura</param>
        /// <returns></returns>
        public async Task <CouponResponse> DeleteSignatureCoupon(string code)
        {
            HttpRequestMessage httpRequest = new HttpRequestMessage(HttpMethod.Delete, Http_Client.HttpClient.BaseAddress + $"assinaturas/v1/subscriptions/{code}/coupon")
            {
                Content = new StringContent(string.Empty, Encoding.UTF8, "application/json")
            };
            HttpResponseMessage response = await Http_Client.HttpClient.SendAsync(httpRequest);

            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;
            }
        }
        /// <summary>
        /// Consultar Transferência - Consult Transfer
        /// </summary>
        /// <param name="transfer_id">Código identificador da transferência. Exemplo: TRA-28HRLYNLMUFH</param>
        /// <param name="accesstoken">accesstoken da conta Wirecard</param>
        /// <returns></returns>
        public async Task <TransferResponse> Consult(string transfer_id, string accesstoken)
        {
            HttpClient httpClient = Http_Client.HttpClient;

            httpClient.DefaultRequestHeaders.Remove("Authorization");
            httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accesstoken);
            HttpResponseMessage response = await httpClient.GetAsync($"v2/transfers/{transfer_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 <TransferResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }