Exemplos de Código
Exemplos completos de integração com a API ActivePayments em várias linguagens de programação. Copie e adapte para seu projeto.
Configuração
Antes de usar os exemplos, configure suas credenciais como variáveis de ambiente:
# .env ou variáveis de ambiente
ActivePayments_PUBLIC_KEY=ActivePayments_pk_xxx
ActivePayments_SECRET_KEY=ActivePayments_sk_xxxCliente da API
Abaixo está um cliente completo da API com todas as operações disponíveis:
1// ActivePayments.js - Cliente da API ActivePayments
2class ActivePaymentsClient {
3 constructor(publicKey, secretKey) {
4 this.baseUrl = 'https://api.ActivePayments.com.br/api/v1';
5 this.auth = `ApiKey ${publicKey}:${secretKey}`;
6 }
7
8 async request(method, endpoint, body = null) {
9 const options = {
10 method,
11 headers: {
12 'Authorization': this.auth,
13 'Content-Type': 'application/json',
14 },
15 };
16
17 if (body) {
18 options.body = JSON.stringify(body);
19 }
20
21 const response = await fetch(`${this.baseUrl}${endpoint}`, options);
22 const data = await response.json();
23
24 if (!response.ok) {
25 throw new Error(data.message || 'API Error');
26 }
27
28 return data;
29 }
30
31 // Criar cobrança PIX
32 async createCharge(params) {
33 return this.request('POST', '/charges', params);
34 }
35
36 // Consultar status
37 async getChargeStatus(chargeId) {
38 return this.request('GET', `/charges/${chargeId}`);
39 }
40
41 // Listar transações
42 async listTransactions(params = {}) {
43 const query = new URLSearchParams(params).toString();
44 return this.request('GET', `/transactions?${query}`);
45 }
46
47 // Consultar saldo
48 async getBalance() {
49 return this.request('GET', '/balance');
50 }
51}
52
53// Uso:
54const client = new ActivePaymentsClient(
55 process.env.ActivePayments_PUBLIC_KEY,
56 process.env.ActivePayments_SECRET_KEY
57);
58
59// Criar cobrança
60const charge = await client.createCharge({
61 amount: 150.50,
62 customerName: 'João da Silva',
63 customerCpf: '12345678901',
64 customerEmail: 'joao@email.com',
65});
66
67console.log('QR Code:', charge.data.pix.qrCode);
68
69// Verificar status
70const status = await client.getChargeStatus(charge.data.chargeId);
71console.log('Status:', status.data.status);
72
73// Consultar saldo
74const balance = await client.getBalance();
75console.log('Saldo disponível:', balance.data.available);Quick Start
Para começar rapidamente, você precisa apenas de 3 passos:
Instale a dependência HTTP
Node.js: fetch já está incluído (Node 18+) ou use npm install node-fetch
Python: pip install requests
PHP: cURL já está incluído na maioria das instalações
Configure as credenciais
Defina suas API Keys como variáveis de ambiente e inicialize o cliente.
Faça sua primeira cobrança
Use o método createCharge para gerar um QR Code PIX.
Padrões Comuns
Tratamento de Erros
try {
const charge = await client.createCharge({
amount: 100,
customerName: 'João',
customerCpf: '12345678901',
});
console.log('Sucesso:', charge);
} catch (error) {
if (error.message.includes('401')) {
console.error('Credenciais inválidas');
} else if (error.message.includes('400')) {
console.error('Dados inválidos:', error.message);
} else {
console.error('Erro inesperado:', error.message);
}
}Polling de Status
async function waitForPayment(chargeId, maxAttempts = 60) {
for (let i = 0; i < maxAttempts; i++) {
const { data } = await client.getChargeStatus(chargeId);
if (data.status === 'paid') {
return data;
}
if (data.status === 'cancelled' || data.status === 'failed') {
throw new Error(`Pagamento ${data.status}`);
}
// Aguardar 5 segundos antes da próxima verificação
await new Promise(resolve => setTimeout(resolve, 5000));
}
throw new Error('Timeout aguardando pagamento');
}
// Uso
const charge = await client.createCharge({ /* ... */ });
const paid = await waitForPayment(charge.data.chargeId);
console.log('Pagamento confirmado!', paid);SDKs Oficiais
Em breve disponibilizaremos SDKs oficiais para as principais linguagens. Por enquanto, use os exemplos acima como base para sua integração.
@ActivePayments/node (em breve)
SDK oficial para Node.js com TypeScript
ActivePayments-python (em breve)
SDK oficial para Python 3.8+