@webpag/card-tokenizer
v1.0.3
Published
Pacote para tokenização de cartões de crédito para uso na Webpag.
Readme
@webpag/card-tokenizer
Gera um card_token no navegador ou em Node.js para envio às APIs da Webpag. Os dados do cartão são criptografados no cliente e nunca trafegam em texto puro.
Instalação
npm install @webpag/card-tokenizerComo funciona
A chave pública usada para tokenizar o cartão é obtida na API Webpag, no endpoint:
GET /card-token/public-key(requer autenticação com o token de API da sua empresa)
Importante: esse endpoint deve ser chamado no seu backend. Seu backend autentica com o token de API da Webpag, obtém a public_key e a envia para o frontend (por exemplo, ao renderizar a página de pagamento ou via um endpoint seu). O frontend não deve ter o token de API; ele só recebe a chave pública e usa este pacote para gerar o token de cartão no navegador.
Fluxo recomendado:
- Backend (seu servidor): chama
GET /card-token/public-keycom o header de autenticação (token de API Webpag) e obtémpublic_key. - Backend → Frontend: envia a
public_keypara a página (inline no HTML, via API própria, etc.). - Frontend: usa esta biblioteca com a
public_keyrecebida para tokenizar os dados do cartão digitados pelo usuário. - Frontend → Backend: envia o
card_tokengerado (por exemplo, emPOST /payments/processouPOST /payers/{id}/creditcard).
Uso
No frontend, após ter a chave pública (entregue pelo seu backend):
import { createCardToken } from '@webpag/card-tokenizer';
// A publicKey deve vir do seu backend (que a obteve em GET /card-token/public-key da Webpag).
// Nunca use o token de API da Webpag no frontend.
const publicKey = 'INSIRA PUBLIC KEY DA WEBPAG'; // substituir pela chave recebida do seu backend
const cardToken = await createCardToken(
{
number: '4111111111111111',
name: 'JOAO DA SILVA',
expiration_month: '12',
expiration_year: '2028',
security_code: '123',
},
publicKey
);
// Enviar cardToken no campo card_token para /payments/process, /payers/{id}/creditcard, etc.Com a classe CardTokenizer (útil quando você gera vários tokens com a mesma chave):
import { CardTokenizer } from '@webpag/card-tokenizer';
const publicKey = 'INSIRA PUBLIC KEY DA WEBPAG'; // obtida do seu backend
const tokenizer = new CardTokenizer(publicKey);
const token = await tokenizer.createToken({
number: '4111111111111111',
name: 'JOAO DA SILVA',
expiration_month: '12',
expiration_year: '2028',
security_code: '123',
});Formato dos dados do cartão
| Campo | Descrição |
|---------------------|------------------------------------|
| number | Número do cartão (apenas dígitos) |
| name | Nome como no cartão |
| expiration_month | Mês de validade (01–12) |
| expiration_year | Ano (4 dígitos ou 2, ex.: 2028) |
| security_code | CVV |
Observações
- O token gerado é um payload RSA codificado em base64url.
- A chave pública está vinculada ao token de API usado na requisição a
/card-token/public-key. - A chave pode ser retornada sem os delimitadores PEM (
-----BEGIN/END PUBLIC KEY-----); a biblioteca aceita os dois formatos. - Quando gerado a public-key, ela é associado ao auth-token utilizado na Webpag. Ou seja, ao gerar um auth-token novo, o public_key também muda.
