betalabs / vindi-php
PHP的Vindi SDK。
3.0.0
2021-07-20 12:23 UTC
Requires
- php: ^7.2.5|^8.0
- guzzlehttp/guzzle: ^7.0.1
Requires (Dev)
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
- squizlabs/php_codesniffer: 3.*
README
Vindi - SDK PHP
描述
本包包含一个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。请参阅许可证文件以获取更多信息。