enviar($nome, $chave_pix, $valor); * * Documentação: https://trustpaybot.site/docs-integration */ class TrustPayBot { private $api_key; private $api_url; private $timeout; public function __construct(string $api_key, string $api_url = 'https://trustpaybot.site/api/v1/receipt', int $timeout = 15) { $this->api_key = $api_key; $this->api_url = $api_url; $this->timeout = $timeout; } /** * Envia comprovante de saque para Telegram/WhatsApp. * * @param string $nome Nome completo do beneficiário (será censurado automaticamente) * @param string $chave_pix Chave PIX (será censurada automaticamente) * @param float $valor Valor líquido do saque * @param string $metodo 'pix' ou 'usdt' * @return array ['success' => bool, 'receipt_id' => int|null, 'error' => string|null] */ public function enviar(string $nome, string $chave_pix, float $valor, string $metodo = 'pix'): array { $payload = json_encode([ 'name' => $nome, 'pix_key' => $chave_pix, 'amount' => $valor, 'date' => date('Y-m-d H:i:s'), 'method' => $metodo, ]); $ch = curl_init($this->api_url); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_POSTFIELDS => $payload, CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'Authorization: Bearer ' . $this->api_key, ], CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => $this->timeout, CURLOPT_SSL_VERIFYPEER => true, ]); $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); $curl_error = curl_error($ch); curl_close($ch); if ($curl_error) { return ['success' => false, 'receipt_id' => null, 'error' => "cURL: $curl_error"]; } $data = json_decode($response, true); if ($http_code === 200 && !empty($data['success'])) { return [ 'success' => true, 'receipt_id' => $data['receipt_id'] ?? null, 'channels' => $data['channels'] ?? [], 'error' => null, ]; } return [ 'success' => false, 'receipt_id' => null, 'error' => $data['detail'] ?? $data['message'] ?? "HTTP $http_code", ]; } }