diff --git a/README.md b/README.md new file mode 100644 index 0000000..5e38295 --- /dev/null +++ b/README.md @@ -0,0 +1,309 @@ +## 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(); + +foreach($plans as $plan) { + // $plan->code +} + +# Criação de usuário +$wirecardApi->customers->create([ ... ]); + +# Criação de assinatura +$wirecardApi->subscriptions->create([ ... ]); + +# Consulta de assinatura +$wirecardApi->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 + +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** + - [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](#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](#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** + - Listar Todas as Faturas de Uma Assinatura + - Consultar Detalhes de Uma Fatura + +- **Pagamentos** + - Listar Todos os Pagamentos de Uma Fatura + - Consultar Detalhes de Um Pagamento da Assinatura + +- **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** + - 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** + - 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 +``` + + + +## 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 +...