carecapay/sdk-php
Composer 安装命令:
composer require carecapay/sdk-php
包简介
SDK oficial PHP da CarecaPay — cobranças Pix, saldo e verificação de webhooks.
README 文档
README
SDK oficial da CarecaPay para PHP: cobranças Pix,
saldo e webhooks. Sem dependências além de ext-curl/ext-json
(PHP 8.1+).
Instalação
composer require carecapay/sdk-php
Beta: enquanto o pacote não está no Packagist, aponte um repositório
path/vcsdo Composer paracarecapay-sdk-php.
Pré-requisito: a chave privada (obrigatória)
Toda chamada é autenticada pela sua chave secreta (ccp_secret_...),
gerada no painel em Chaves de API — ela aparece uma única vez. O construtor
exige uma chave privada válida e falha na hora com chave pública, vazia ou de
outro formato:
use CarecaPay\CarecaPay; $carecapay = new CarecaPay($_ENV['CARECAPAY_SECRET_KEY']);
O ambiente vem embutido na chave (ccp_secret_sandbox_... → sandbox,
ccp_secret_live_... → produção). Para desenvolvimento local:
$carecapay = new CarecaPay($key, ['base_url' => 'http://localhost:8080']);
Uso
$charge = $carecapay->charges->create([ 'amount_cents' => 1990, // R$ 19,90 — sempre em centavos, obrigatório 'description' => 'Assinatura', // opcional ]); echo $charge['qr_code']; // copia e cola do Pix $carecapay->charges->get('txn_...'); $carecapay->charges->list(['status' => 'paid', 'limit' => 10]); $carecapay->balance->get(); // ['available_cents' => ..., 'pending_cents' => ...] // só no sandbox: baixa fake (dispara o webhook também) $carecapay->charges->simulatePayment($charge['id']);
Os arrays devolvidos têm exatamente os shapes da API REST (snake_case).
Webhooks (recomendado)
Configure sua URL e um segredo no painel (Webhooks). Cada entrega vem com dois mecanismos de verificação.
Com o SDK (recomendado): assinatura verificada em 1 chamada
Webhooks::constructEvent valida o HMAC (rejeita corpo adulterado e entregas
antigas) usando o corpo CRU da requisição (php://input):
use CarecaPay\Webhooks; use CarecaPay\CarecaPayWebhookException; try { $event = Webhooks::constructEvent( payload: file_get_contents('php://input'), // corpo cru! header: $_SERVER['HTTP_X_CARECAPAY_SIGNATURE'] ?? '', secret: $_ENV['CARECAPAY_WEBHOOK_SECRET'], // ccp_whsec_... ); } catch (CarecaPayWebhookException) { http_response_code(400); exit; } if ($event['type'] === 'charge.paid') { liberarPedido($event['data']['id']); // deduplique pelo $event['id'] } http_response_code(200);
Webhooks::verifySignature($payload, $header, $secret) devolve só o booleano.
Entregas com mais de 5 minutos são rejeitadas ($toleranceSeconds ajusta).
Sem SDK / mais simples: comparar o token
Todo POST também traz o segredo cru no header X-CarecaPay-Token. É mais
simples, mas não detecta corpo adulterado nem repetição de entrega, então
exige HTTPS na sua URL:
if (($_SERVER['HTTP_X_CARECAPAY_TOKEN'] ?? '') !== $_ENV['CARECAPAY_WEBHOOK_SECRET']) { http_response_code(401); // não veio da CarecaPay exit; }
Erros
use CarecaPay\CarecaPayException; try { $carecapay->charges->create(['amount_cents' => 0]); } catch (CarecaPayException $err) { $err->code; // "invalid_amount" (estável — programe contra ele) $err->status; // 400 (0 em falha de rede, code "network_error") }
Desenvolvimento
composer install && composer test
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-07-15