Selecione sua linguagem:

PHP
Python
JavaScript
Java
C#
Ruby

Classe de Integração PHP

Classe completa para integração com a API Dr. DIM Sistema usando cURL

baseUrl = rtrim($baseUrl, "/");
        $this->publicKey = $publicKey;
        $this->secretKey = $secretKey;
    }
    
    public function listarProdutos($page = 1, $perPage = 15) {
        return $this->makeRequest("GET", "/produtos?page={$page}&per_page={$perPage}");
    }
    
    public function criarProduto($produto) {
        return $this->makeRequest("POST", "/produtos", $produto);
    }
    
    public function emitirNFe($dados) {
        return $this->makeRequest("POST", "/nfe/emitir", $dados);
    }
    
    private function makeRequest($method, $endpoint, $data = null) {
        $url = $this->baseUrl . $endpoint;
        
        $headers = [
            "X-Public-Key: " . $this->publicKey,
            "X-Secret-Key: " . $this->secretKey,
            "Content-Type: application/json",
            "Accept: application/json"
        ];
        
        $ch = curl_init();
        curl_setopt_array($ch, [
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_CUSTOMREQUEST => $method,
            CURLOPT_POSTFIELDS => $data ? json_encode($data) : null,
            CURLOPT_TIMEOUT => 30,
        ]);
        
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $error = curl_error($ch);
        curl_close($ch);
        
        if ($error) {
            throw new Exception("cURL Error: " . $error);
        }
        
        return [
            "status_code" => $httpCode,
            "success" => $httpCode >= 200 && $httpCode < 300,
            "data" => json_decode($response, true)
        ];
    }
}

// Exemplo de uso
$api = new DrDimAPI(
    "https://api.drdim.com.br/api/v1",
    "pk_live_abc123def456",
    "sk_live_xyz789uvw012"
);

try {
    // Listar produtos
    $produtos = $api->listarProdutos(1, 20);
    if ($produtos["success"]) {
        foreach ($produtos["data"]["data"] as $produto) {
            echo "Produto: {$produto["nome"]} - R$ {$produto["preco"]}\n";
        }
    }
    
    // Criar produto
    $novoProduto = [
        "nome" => "Produto Teste",
        "descricao" => "Descrição do produto de teste",
        "preco" => 99.90,
        "codigo_referencia" => "REF001",
        "categoria_id" => 1
    ];
    
    $resultado = $api->criarProduto($novoProduto);
    if ($resultado["success"]) {
        echo "Produto criado com ID: " . $resultado["data"]["data"]["id"];
    }
    
} catch (Exception $e) {
    echo "Erro: " . $e->getMessage();
}
?>

Dicas Importantes

Segurança
  • Nunca exponha a Secret Key no frontend
  • Armazene as chaves em variáveis de ambiente
  • Use HTTPS em todas as requisições
  • Implemente rate limiting no seu lado
Boas Práticas
  • Sempre trate erros e exceções
  • Implemente retry com backoff exponencial
  • Use logs para debug e monitoramento
  • Valide dados antes de enviar

Links Úteis