Skip to content

Repository files navigation

Vindi - SDK PHP

Licença do SoftwareÚltima Versão no PackagistStatus de BuildStatus de CoverageNota de QualidadeDownloads no Total

Descrição

Este pacote consiste em um SDK em PHP para a API de Recorrência da Vindi.

Requisitos

  • PHP versão 7.2.x ou superior.
  • cURL habilitado para o PHP.
  • Certificado SSL.
  • Conta ativa na Vindi.

Instalação

Via Composer

composer require vindi/vindi-php

Métodos de Autenticação

Variável de ambiente

Esse método de autenticação utiliza-se de inserção de variáveis de ambiente.

require__DIR__.'/vendor/autoload.php';
// Coloca a chave da Vindi (VINDI_API_KEY) na variável de ambiente do PHP.putenv('VINDI_API_KEY=SUA_CHAVE_DA_API');
// Coloca a chave da Vindi (VINDI_API_URI) na variável de ambiente do PHP.putenv('VINDI_API_URI=https://sandbox-app.vindi.com.br/api/v1/');
// Instancia o serviço de Customers (Clientes)$customerService = newVindi\Customer;

Argumento de instância

Esse método de autenticação utiliza-se de inserção de um array como argumento na primeira instância de uma classe filha de Resource, sendo ignorada uma nova tentativa de inserir o argumento em uma outra instância.

require__DIR__.'/vendor/autoload.php';
// Declara em um array os valores de VINDI_API_KEY e VINDI_API_URI$arguments = array(
'VINDI_API_KEY' => 'SUA_CHAVE_DA_API',
'VINDI_API_URI' => 'https://sandbox-app.vindi.com.br/api/v1/'
);
// Instancia o serviço de Customers (Clientes) com o array contendo VINDI_API_KEY e VINDI_API_URI$customerService = newVindi\Customer($arguments);

Exemplo de implementação

Exemplo de código após autenticação (uma das duas formas existentes descritas acima), seguindo a sequência de instanciação de Customer.

// Cria um novo cliente:$customer = $customerService->create([
'name' => 'Teste da Silva',
'email' => 'contato@vindi.com.br',
]);
echo"Novo cliente criado com o id '{$customer->id}'.<br />";
// Busca todos os clientes, ordenando pelo campo 'created_at' descendente.$customers = $customerService->all([
'sort_by' => 'created_at',
'sort_order' => 'desc'
]);
// Para cada cliente da array de clientesforeach ($customersas$customer) {
$customerService->update($customer->id, [
'notes' => 'Este cliente foi atualizado pelo SDK PHP.',
]);
echo"O cliente '{$customer->name}' foi atualizado!<br />";
}
// Instancia o serviço de Product que não requer argumentos, pois já foi configurado em Customer ou foi configurado nas variáveis de ambiente.$productService = newVindi\Product;
// Cria um novo produto:$product = $productService->create([
'name' => 'Teste de Produto',
'pricing_schema' => [
'price' => 150,
'schema_type' => 'flat',
]
]);
echo"Novo produto criado com o id '{$product->id}'.<br />";

Para mais detalhes sobre quais serviços existem, quais campos enviar e demais informações, verifique nossa página interativa de uso da API.

Response: Caso precise de mais detalhes sobre a resposta de cada request, utilize o método getLastResponse. Se nenhum request foi efetuado anteriormente, este método retornará NULL.

// Retorna os dados da última resposta recebida dos servidores da Vindi$lastResponse = $customerService->getLastResponse();
// Retorna o corpo da requisição$body = (string) $customerService->getLastResponse()->getBody();
// Retorna o HTTP Status Code$lastResponse->getStatusCode();
// Retorna o todos os headers$lastResponse->getHeaders();
// Retorna um único header$lastResponse->getHeader('Header-Name');

Webhooks

Este pacote torna possível a interpretação dos webhooks enviados pela Vindi. Para tal, disponibilize uma URL/rota que será acessível pela web e nela utilize a classe Vindi\WebhookHandler para a interpretação dos eventos:

require__DIR__.'/vendor/autoload.php';
// Instancia o objeto que irá lidar com os Webhooks.$webhookHandler = newVindi\WebhookHandler();
// Pega o evento interpretado pelo objeto.$event = $webhookHandler->handle();
// Decide a ação com base no eventoswitch ($event->type) {
case'subscription_canceled':
// Lidar com o evento de Assinatura cancelada.break;
case'subscription_created':
// Lidar com o evento de Assinatura efetuadabreak;
case'charge_rejected':
// Lidar com o evento de Cobrança rejeitadabreak;
case'bill_created':
// Lidar com o evento de Fatura emitidabreak;
case'bill_paid':
// Lidar com o evento de Fatura pagabreak;
case'period_created':
// Lidar com o evento de Período criadobreak;
case'test':
// Lidar com o evento de Teste da URLbreak;
default:
// Lidar com falhas e eventos novos ou desconhecidosbreak;
}

Dúvidas

Caso necessite de informações sobre a plataforma ou API, por favor acesse o Atendimento Vindi.

Contribuindo

Por favor, leia o arquivo CONTRIBUTING.md. Caso tenha alguma sugestão ou bug para reportar, por favor nos comunique através das issues.

Segurança

Se você descobrir qualquer questão relacionada a segurança, por favor, envie um e-mail para seguranca@vindi.com.br ao invés de utilizar os issues.

Changelog

Todas as informações sobre cada release podem ser consultadas em CHANGELOG.md.

Créditos

Licença

GNU GPLv3. Por favor, veja o Arquivo de Licença para mais informações.

About

SDK PHP para a API de Recorrência da Vindi

Resources

Code of conduct

Contributing

Stars

58 stars

Watchers

49 watching

Forks

Releases

Packages

Used by

Contributors

Languages