Utilizando a SDK-PHP

🚧

Para utilizar a SDK-PHP é necessário compreender a nossa API.

Link para baixar o SDK-PHP

Dentro da SDK a lista de classes relativas a cada endpoint da API fica em path/vendor/vindi/vindi-php/src.

Na classe Resource estão listados os métodos disponíveis para usar com cada endpoint da API, os métodos estão baseados nos verbos HTTP de cada um deles.

Para melhor compreensão da utilização dos verbos HTTP em APIs Rest recomendamos a leitura desse artigo.

Exemplos

Pesquisar

Para iniciar uma busca você precisa usar o verbo HTTP GET. Na SDK ele é representado pelos métodos all e get, que são usados para uma pesquisa geral ou específica pelo ID, respectivamente.

O exemplo abaixo está baseado no endpoint Customers (clientes) da API:

Instancia o serviço Customer:

$customerService = new Vindi\Customer;

Depois executa a busca usando o método all para pesquisar em todos os clientes ou get para um cliente específico usando o ID:

all

$customers = $customerService->all([
    'sort_by' => 'created_at',
    'sort_order' => 'desc'
]);

get

$customer = $customerService->get($customer_id);

Os parâmetros para busca usando o método all estão na documentação da API, como no exemplo abaixo:

O mesmo padrão pode ser usado para os outros endpoints da API, segue abaixo um exemplo de pesquisa em produtos:

Produtos

Instancia o serviço Product:

$productService = new Vindi\Product;

all

$products = $productService->all([
    'query' => 'name: Teste'
]);

get

$product = $productService->get($id);

Criar

Para criação de um objeto será utilizado o verbo HTTP POST. Na SDK ele é representado pelo método create. A lista com os parâmetros para cada endpoint está na documentação da API, vamos usar como exemplo o cadastro de clientes:

Clientes

Instancia o serviço Customer:

$customerService = new Vindi\Customer;

Cria um novo cliente:

$customer = $customerService->create([
    'name' => 'Teste da Silva',
    'email' => 'contato@vindi.com.br',
]);

Outro exemplo, agora usando o endpoint Subscriptions:

Assinaturas

Instancia o serviço Subscription:

$subscriptionService = new Vindi\Subscription;

Cria uma nova assinatura:

$subscription = $subscriptionService->create([
    'plan_id' => 12,
    'customer_id' => 142,
    'payment_method_code' => "credit_card",
    'product_items' => [
        ['product_id' => 14]
    ]
]);

Editar

Para edição será utilizado o verbo HTTP PUT. Na SDK ele é representado pelo método update. Vamos buscar os parâmetros na documentação da API, tendo como base o endpoint Customers:

Clientes

Instancia o serviço Customer:

$customerService = new Vindi\Customer;

Edita o cadastro do cliente, nesse caso adicionando um comentário no cadastro do cliente:

$customer = $customerService->update($customer_id, [
    'notes' => 'Adicionando comentário no cadastro do cliente',
]);

Outro exemplo, agora usando o endpoint Subscriptions:

Assinaturas

Instancia o serviço Subscription:

$subscriptionService = new Vindi\Subscription;

Edita uma assinatura existente:

$subscription = $subscriptionService->update($subscription_id, [
    'payment_method_code' => 'credit_card',
    'billing_trigger_type' => 'day_of_month',
    'billing_trigger_day' => 10
]);

Cancelar

Para fazer o cancelamento será usado o verbo HTTP DELETE. Na SDK ele é representado pelo método delete. Vamos buscar os parâmetros na documentação da API, tendo como base o endpoint Subscriptions:

Assinaturas

Instancia o serviço Subscription:

$subscriptionService = new Vindi\Subscription;

Cancela assinatura:

$subscription = $subscriptionService->delete($subscription_id, [
    'cancel_bills' => 'true',
    'comments' => 'Cancelamento solicitado via Telefone.'
]);

Outro exemplo, agora usando o endpoint Bills:

Faturas

Instancia o serviço Bill:

$billService = new Vindi\Bill;

Cancela Bill:

$bill = $billService->delete($bill_id, [
    'comments' => 'Cancelamento solicitado via Telefone.'
]);

Tratamento de Erros

Uma das opções para o tratamento de erros é a utilização do Try Catch, esse é um exemplo de exception causada pelo vencimento do cartão de crédito:

$data = [
    'holder_name' => "José da Silva",
    'card_expiration' => "06/2017",
    'card_number' => "5167454851671773",
    'card_cvv' => "123",
    'payment_method_code' => "credit_card",
    'payment_company_code' => "mastercard",
    'customer_id' => 16
];

try {
    $paymentProfile = $paymentProfileService->create($data);
} catch(Vindi\Exceptions\ValidationException $e) {
    var_dump($e->getErrors());
}