xuxu / vindi-php
PHP 的 Vindi SDK。
v1.0.0
2024-04-03 18:48 UTC
Requires
- php: >=7.2.5
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- phpunit/phpunit: 8.*
- scrutinizer/ocular: ~1.1
- squizlabs/php_codesniffer: 3.*
This package is auto-updated.
Last update: 2024-09-03 19:48:07 UTC
README
Vindi - SDK PHP
描述
此包包含一个用于 Vindi API 的 PHP SDK。
要求
- PHP 版本 7.2.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;
实例参数
此认证方法使用一个 array 作为 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。请参阅 许可证文件 获取更多信息。