Para utilizar a SDK-PHP é necessário compreender a nossa API, nela você encontra a lista de endpoints e os parâmetros para cada um deles, como na imagem abaixo:
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 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());
}
Qualquer dúvida, por favor entre em contato com o suporte técnico através do canal de suporte.
Comentários
0 comentário
Artigo fechado para comentários.