api_key = $api_key; } /** * Adicionar um novo pedido * * @param array $data Dados do pedido * @return object|null O resultado da API como objeto ou nulo em caso de erro */ public function addOrder(array $data): ?object { return $this->sendRequest(array_merge(['action' => 'add'], $data)); } /** * Obter o status de um pedido * * @param int $orderId ID do pedido * @return object|null O resultado da API como objeto ou nulo em caso de erro */ public function getStatus(int $orderId): ?object { return $this->sendRequest(['action' => 'status', 'order' => $orderId]); } /** * Obter o status de múltiplos pedidos * * @param array $orderIds IDs dos pedidos * @return object|null O resultado da API como objeto ou nulo em caso de erro */ public function getMultiStatus(array $orderIds): ?object { return $this->sendRequest(['action' => 'status', 'orders' => implode(',', $orderIds)]); } /** * Obter todos os serviços disponíveis * * @return object|null O resultado da API como objeto ou nulo em caso de erro */ public function getServices(): ?object { return $this->sendRequest(['action' => 'services']); } /** * Obter o saldo disponível * * @return object|null O resultado da API como objeto ou nulo em caso de erro */ public function getBalance(): ?object { return $this->sendRequest(['action' => 'balance']); } /** * Método interno para enviar a solicitação à API * * @param array $params Parâmetros da solicitação * @return object|null O resultado da API como objeto ou nulo em caso de erro */ private function sendRequest(array $params): ?object { $params['key'] = $this->api_key; $url = $this->api_url . '?' . http_build_query($params); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $result = curl_exec($ch); if (curl_errno($ch) != 0 && empty($result)) { return null; } curl_close($ch); return json_decode($result); } } // Exemplo de Uso $api = new Api('SuaChaveAPIAqui'); // Retorna todos os serviços $services = $api->getServices(); // Retorna o saldo disponível $balance = $api->getBalance(); // Adiciona um novo pedido $order = $api->addOrder(['service' => 1, 'link' => 'http://example.com/teste', 'quantity' => 100]); // Obtém o status de um pedido $status = $api->getStatus(23); // Obtém o status de múltiplos pedidos $statuses = $api->getMultiStatus([12, 2, 13]);