betalabs/vindi-php

PHP的Vindi SDK。

3.0.0 2021-07-20 12:23 UTC

This package is auto-updated.

Last update: 2024-09-20 19:25:00 UTC


README

Vindi - SDK PHP

Licença do Software Última Versão no Packagist Status de Build Status de Coverage Nota de Qualidade Downloads no Total

描述

本包包含一个PHP SDK,用于Vindi的API

要求

  • PHP版本5.6.x或更高。
  • PHP启用cURL。
  • SSL证书。
  • Vindi上有活跃账户。

安装

通过Composer安装

composer require vindi/vindi-php

认证方法

环境变量

此认证方法使用环境变量。

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 = new Vindi\Customer;

实例参数

此认证方法在Resource类的第一个子类实例中插入一个数组作为参数,如果在新实例中尝试插入参数将被忽略。

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 = new Vindi\Customer($arguments);

实现示例

以下是一个认证后的代码示例(上述两种方式之一),按照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 clientes
foreach ($customers as $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 = new Vindi\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 />";

有关可用服务、要发送的字段等更多详细信息,请查看我们的API交互页面

响应:如需获取每个请求的详细信息,请使用getLastResponse方法。如果之前没有执行任何请求,此方法将返回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

此包允许解析Vindi发送的webhooks。为此,提供一个可供Web访问的URL/路由,并在其中使用Vindi\WebhookHandler类来解析事件。

require __DIR__.'/vendor/autoload.php';

// Instancia o objeto que irá lidar com os Webhooks.
$webhookHandler = new Vindi\WebhookHandler();

// Pega o evento interpretado pelo objeto.
$event = $webhookHandler->handle();

// Decide a ação com base no evento
switch ($event->type) {
    case 'subscription_canceled':
        // Lidar com o evento de Assinatura cancelada.
        break;
    case 'subscription_created':
        // Lidar com o evento de Assinatura efetuada
        break;
    case 'charge_rejected':
        // Lidar com o evento de Cobrança rejeitada
        break;
    case 'bill_created':
        // Lidar com o evento de Fatura emitida
        break;
    case 'bill_paid':
        // Lidar com o evento de Fatura paga
        break;
    case 'period_created':
        // Lidar com o evento de Período criado
        break;
    case 'test':
        // Lidar com o evento de Teste da URL
        break;
    default:
        // Lidar com falhas e eventos novos ou desconhecidos
        break;
}

疑问

如需有关平台或API的信息,请访问Vindi客服

贡献

请阅读CONTRIBUTING.md文件。如果您有任何建议或需要报告错误,请通过issues与我们联系。

安全

如果您发现任何与安全相关的问题,请通过seguranca@vindi.com.br发送电子邮件,而不是使用issues。

更新日志

有关每个版本的详细信息可以在CHANGELOG.md中找到。

致谢

许可证

GNU GPLv3。请参阅许可证文件以获取更多信息。