From b8883393df2b8355f695d3ff012cb19ae95a47b1 Mon Sep 17 00:00:00 2001 From: Tiago M Date: Sun, 19 Jul 2020 22:50:57 -0300 Subject: [PATCH 1/5] =?UTF-8?q?Vers=C3=A3o=20inicial.=20Exemplo=20de=20uso?= =?UTF-8?q?=20e=20autentica=C3=A7=C3=A3o.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..d974bc9 --- /dev/null +++ b/README.md @@ -0,0 +1,95 @@ +## Sobre + +SDK PHP para facilitar o uso da [API de Assinaturas da Wirecard](https://dev.wirecard.com.br/v1.5). + +## Uso + +### Exemplo + +```php +plans->all(); + +# Criação de usuário +$api->customers->create([ ... ]); + +# Criação de assinatura +$api->subscriptions->create([ ... ]); + +# Consulta de assinatura +$api->subscriptions->get('code'); + +``` + +### Instalação +
composer require tmazza/wirecard-assinaturas-sdk-php
+ +### Credenciais + +Defina as variáveis de ambiente `WIRECARD_SUBSCRIPTIONS_ENV`, `WIRECARD_SUBSCRIPTIONS_TOKEN` e `WIRECARD_SUBSCRIPTIONS_KEY`, para especificar, respectivamente o ambiente o token e a chave da integração da Wirecard. O ambiente *default* utilizado será o de *sandbox*. + +Alternativamente o ambiente e as credenciais podem ser definidas na criação da classe da API, passando os parâmetros conforme: `new WirecardApi('sandbox', 'token', 'key')`. Esses parâmetros terão precedência sob as variáveis de ambiente. + + +--- +## API + +#### ASSINATURAS + +- **Planos** + - Criar plano + - Listar Planos + - Consultar Plano + - Ativar Plano + - Desativar Plano + - Alterar Plano + +- **Assinantes** + - Criar Assinante + - Listar Assinantes + - Consultar Assinante + - Alterar Assinante + - Atualizar Cartão do Assinante + +- **Assinaturas** + - Criar Assinaturas + - Listar Todas Assinaturas + - Consultar Detalhes de Uma Assinatura + - Suspender Assinatura + - Reativar Assinatura + - Cancelar Assinatura + - Alterar Assinatura + - Alterar o método de pagamento + +#### PAGAMENTOS +- **Faturas** + - get Listar Todas as Faturas de Uma Assinatura + - get Consultar Detalhes de Uma Fatura + +- **Pagamentos** + - get Listar Todos os Pagamentos de Uma Fatura + - get Consultar Detalhes de Um Pagamento da Assinatura + +- **Cupons** + - post Criar Cupom + - put Associar um Cupom a Assinatura Existente + - post Associar um Cupom a uma Nova Assinatura + - get Consultar Cupom + - get Listar Todos os Cupons + - put Ativar e Inativar Cupons + - delete Excluir Cupom de uma Assinatura + +- **Retentativas** + - post Retentativa de pagamento de uma fatura + - post Gerar um novo boleto para uma fatura + - post Criar Regras de Retentativas Automáticas + +#### NOTIFICAÇÕES +- **Preferências de notificação** + - post Criar Preferência de Notificação (webhook) From 2eb81d6fdc8eec73197ba40934a9d388564301ab Mon Sep 17 00:00:00 2001 From: Tiago M Date: Mon, 20 Jul 2020 22:21:28 -0300 Subject: [PATCH 2/5] =?UTF-8?q?Documenta=C3=A7=C3=A3o=20b=C3=A1sica.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 82 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d974bc9..0c025ea 100644 --- a/README.md +++ b/README.md @@ -8,22 +8,26 @@ SDK PHP para facilitar o uso da [API de Assinaturas da Wirecard](https://dev.wir ```php plans->all(); +$plans = $wirecardApi->plans->all(); + +foreach($plans as $plan) { + // $plan->code +} # Criação de usuário -$api->customers->create([ ... ]); +$wirecardApi->customers->create([ ... ]); # Criação de assinatura -$api->subscriptions->create([ ... ]); +$wirecardApi->subscriptions->create([ ... ]); # Consulta de assinatura -$api->subscriptions->get('code'); +$wirecardApi->subscriptions->get('code'); ``` @@ -40,6 +44,8 @@ Alternativamente o ambiente e as credenciais podem ser definidas na criação da --- ## API +Todos os recursos possuem os métodos `get()`, `all()`, `create()` e `update()` além de métodos específicos configurando cada um dos parâmetros disponíveis na API. + #### ASSINATURAS - **Planos** @@ -93,3 +99,73 @@ Alternativamente o ambiente e as credenciais podem ser definidas na criação da #### NOTIFICAÇÕES - **Preferências de notificação** - post Criar Preferência de Notificação (webhook) + + + +#### Planos + +##### Criar plano +```php +plans->create([ + "code" => "plan101", + "name" => "Plano Especial", + "description" => "Descrição do Plano Especial", + "amount" => 990, + "setup_fee" => 500, + "max_qty" => 1, + "interval" => [ + "length" => 1, + "unit" => "MONTH" + ], + "billing_cycles" => 12, + "trial" => [ + "days" => 30, + "enabled" => true, + "hold_setup_fee" => true + ], + "payment_method" => "CREDIT_CARD" +]); + +echo $plan->name; // Plano Especial +``` + +##### Listar Planos +```php +plans->all(); + +foreach($plans as $plan) { + echo $plan->name; // Plano Especial +} +``` + +##### Consultar Plano +```php +plans->get('plan101'); +echo $plan->name; // Plano Especial +``` + +##### Ativar Plano +```php +plans->activate('plan101'); +echo $plan->status; // ACTIVE +``` + +##### Desativar Plano +```php +plans->inactivate('plan101'); +echo $plan->status; // INACTIVE +``` + +##### Alterar Plano +```php +plans->update([ + 'name' => 'Plano Especial Atualizado', +]); +echo $plan->name; // Plano Especial Atualizado +``` \ No newline at end of file From 3423e6f4b7d41cc1f22fff39988ecd1d33c72b10 Mon Sep 17 00:00:00 2001 From: Tiago M Date: Mon, 20 Jul 2020 22:32:00 -0300 Subject: [PATCH 3/5] =?UTF-8?q?Documenta=C3=A7=C3=A3o=20planos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 0c025ea..a471717 100644 --- a/README.md +++ b/README.md @@ -49,12 +49,12 @@ Todos os recursos possuem os métodos `get()`, `all()`, `create()` e `update()` #### ASSINATURAS - **Planos** - - Criar plano - - Listar Planos - - Consultar Plano - - Ativar Plano - - Desativar Plano - - Alterar Plano + - [Criar plano](#criar-plano) + - [Listar Planos](#listar-planos) + - [Consultar Plano](#consultar-plano) + - [Ativar Plano](#ativar-plano) + - [Desativar Plano](#desativar-plano) + - [Alterar Plano](#alterar-plano) - **Assinantes** - Criar Assinante @@ -102,9 +102,9 @@ Todos os recursos possuem os métodos `get()`, `all()`, `create()` e `update()` -#### Planos +## Planos -##### Criar plano +#### Criar plano ```php plans->create([ @@ -130,7 +130,7 @@ $plan = $wirecardApi->plans->create([ echo $plan->name; // Plano Especial ``` -##### Listar Planos +#### Listar Planos ```php plans->all(); @@ -140,28 +140,28 @@ foreach($plans as $plan) { } ``` -##### Consultar Plano +#### Consultar Plano ```php plans->get('plan101'); echo $plan->name; // Plano Especial ``` -##### Ativar Plano +#### Ativar Plano ```php plans->activate('plan101'); echo $plan->status; // ACTIVE ``` -##### Desativar Plano +#### Desativar Plano ```php plans->inactivate('plan101'); echo $plan->status; // INACTIVE ``` -##### Alterar Plano +#### Alterar Plano ```php plans->update([ From 38058b10a29846ea0410c8a9d32233c44685a7b9 Mon Sep 17 00:00:00 2001 From: Tiago M Date: Mon, 20 Jul 2020 23:04:43 -0300 Subject: [PATCH 4/5] =?UTF-8?q?Documenta=C3=A7=C3=A3o=20Assinantes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 146 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a471717..5439656 100644 --- a/README.md +++ b/README.md @@ -57,11 +57,11 @@ Todos os recursos possuem os métodos `get()`, `all()`, `create()` e `update()` - [Alterar Plano](#alterar-plano) - **Assinantes** - - Criar Assinante - - Listar Assinantes - - Consultar Assinante - - Alterar Assinante - - Atualizar Cartão do Assinante + - [Criar Assinante](#criar-assinante) + - [Listar Assinantes](#listar-assinantes) + - [Consultar Assinante](#consultar-assinante) + - [Alterar Assinante](#alterar-assinante) + - [Atualizar Cartão do Assinante](#atualizar-cartão-do-assinante) - **Assinaturas** - Criar Assinaturas @@ -100,8 +100,6 @@ Todos os recursos possuem os métodos `get()`, `all()`, `create()` e `update()` - **Preferências de notificação** - post Criar Preferência de Notificação (webhook) - - ## Planos #### Criar plano @@ -168,4 +166,144 @@ $plan = $wirecardApi->plans->update([ 'name' => 'Plano Especial Atualizado', ]); echo $plan->name; // Plano Especial Atualizado -``` \ No newline at end of file +``` + + + +## Assinantes + +#### Criar Assinante +```php +customers->create([ + "code" => "cliente01", + "email" => "nome@exemplo.com.br", + "fullname" => "Nome Sobrenome", + "cpf" => "22222222222", + "phone_area_code" => "11", + "phone_number" => "934343434", + "birthdate_day" => "26", + "birthdate_month" => "04", + "birthdate_year" => "1980", + "address" => [ + "street" => "Rua Nome da Rua", + "number" => "100", + "complement" => "Casa", + "district" => "Nome do Bairro", + "city" => "São Paulo", + "state" => "SP", + "country" => "BRA", + "zipcode" => "05015010" + ] +]); + +// Cadastrar o cartão do assinante +$wirecardApi->customers->setCard( + $customer->code, + [ + "holder_name" => "Nome Completo", + "number" => "4111111111111111", + "expiration_month" => "06", + "expiration_year" => "22" + ] +); + +// Parâmetro new_vault pode ser habilitado utilizando +// enableNewVault() ao criar o assinante. +$customer = $wirecardApi->customers + ->enableNewVault() + ->create([/*...*/]) + +// Opcionalmente customer e billing_info podem ser +// criados em uma única requisição, conforme +// documentação da API Wirecard. +$customer = $wirecardApi->customers->create([ + "code" => "cliente02", + "email" => "nome@exemplo.com.br", + "fullname" => "Nome Sobrenome", + "cpf" => "22222222222", + "phone_area_code" => "11", + "phone_number" => "934343434", + "birthdate_day" => "26", + "birthdate_month" => "04", + "birthdate_year" => "1980", + "address" => [ + "street" => "Rua Nome da Rua", + "number" => "100", + "complement" => "Casa", + "district" => "Nome do Bairro", + "city" => "São Paulo", + "state" => "SP", + "country" => "BRA", + "zipcode" => "05015010" + ], + "billing_info" => [ + "credit_card" => [ + "holder_name" => "Nome Completo", + "number" => "4111111111111111", + "expiration_month" => "06", + "expiration_year" => "22" + ] + ] +]); + +echo $customer->code; // cliente02 +``` + +#### Listar Assinantes +```php +customers->all(); + +foreach($customers as $customer) { + echo $customer->code; // cliente01 +} +``` + +#### Consultar Assinante +```php +customers->get('client01'); +echo $customer->email; // nome@exemplo.com.br +``` + +#### Alterar Assinante +```php +customers->update([ + 'name' => 'Novo nome', +]); +echo $customer->name; // Novo nome +``` + +#### Atualizar Cartão do Assinante +```php +customers->setCard([ + "holder_name" => "Nome Completo", + "number" => "4222222222222222", + "expiration_month" => "06", + "expiration_year" => "22" +]); +echo $customer->billing_info->credit_card->number; // 4222222222222222 +``` + +## Assinaturas +#### Criar Assinaturas +... +#### Listar Todas Assinaturas +... +#### Consultar Detalhes de Uma Assinatura +... +#### Suspender Assinatura +... +#### Reativar Assinatura +... +#### Cancelar Assinatura +... +#### Alterar Assinatura +... +#### Alterar o método de pagamento +... From 33fe8aa8d8c059f68168f34b9cee071200f89fc7 Mon Sep 17 00:00:00 2001 From: Tiago M Date: Mon, 20 Jul 2020 23:11:51 -0300 Subject: [PATCH 5/5] =?UTF-8?q?Links=20document=C3=A7=C3=A3o=20Assinaturas?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 5439656..5e38295 100644 --- a/README.md +++ b/README.md @@ -64,41 +64,41 @@ Todos os recursos possuem os métodos `get()`, `all()`, `create()` e `update()` - [Atualizar Cartão do Assinante](#atualizar-cartão-do-assinante) - **Assinaturas** - - Criar Assinaturas - - Listar Todas Assinaturas - - Consultar Detalhes de Uma Assinatura - - Suspender Assinatura - - Reativar Assinatura - - Cancelar Assinatura - - Alterar Assinatura - - Alterar o método de pagamento + - [Criar Assinaturas](#criar-assinaturas) + - [Listar Todas Assinaturas](#listar-todas-assinaturas) + - [Consultar Detalhes de Uma Assinatura](#consultar-detalhes-de-uma-assinatura) + - [Suspender Assinatura](#suspender-assinatura) + - [Reativar Assinatura](#reativar-assinatura) + - [Cancelar Assinatura](#cancelar-assinatura) + - [Alterar Assinatura](#alterar-assinatura) + - [Alterar o método de pagamento](#alterar-o-método-de-pagamento) #### PAGAMENTOS - **Faturas** - - get Listar Todas as Faturas de Uma Assinatura - - get Consultar Detalhes de Uma Fatura + - Listar Todas as Faturas de Uma Assinatura + - Consultar Detalhes de Uma Fatura - **Pagamentos** - - get Listar Todos os Pagamentos de Uma Fatura - - get Consultar Detalhes de Um Pagamento da Assinatura + - Listar Todos os Pagamentos de Uma Fatura + - Consultar Detalhes de Um Pagamento da Assinatura - **Cupons** - - post Criar Cupom - - put Associar um Cupom a Assinatura Existente - - post Associar um Cupom a uma Nova Assinatura - - get Consultar Cupom - - get Listar Todos os Cupons - - put Ativar e Inativar Cupons + - Criar Cupom + - Associar um Cupom a Assinatura Existente + - Associar um Cupom a uma Nova Assinatura + - Consultar Cupom + - Listar Todos os Cupons + - Ativar e Inativar Cupons - delete Excluir Cupom de uma Assinatura - **Retentativas** - - post Retentativa de pagamento de uma fatura - - post Gerar um novo boleto para uma fatura - - post Criar Regras de Retentativas Automáticas + - Retentativa de pagamento de uma fatura + - Gerar um novo boleto para uma fatura + - Criar Regras de Retentativas Automáticas #### NOTIFICAÇÕES - **Preferências de notificação** - - post Criar Preferência de Notificação (webhook) + - Criar Preferência de Notificação (webhook) ## Planos