Biblioteca JavaScript para criptografia RSA e inserção de anti-fraude em aplicações web. Zero dependências, leve (~5KB minificado) e compatível com todos os navegadores modernos.
Funcionalidades
- Criptografia RSA-OAEP com SHA-256
- Biblioteca anti-fraude integrada
- Zero dependências
- Compatível com todos os navegadores modernos
Instalação via CDN
LTS (recomendado)
<script src="https://cdn.sopague.com.br/JS/GATEWAY/sopague-integration-library.min.js"></script>Versão específica
<script src="https://cdn.sopague.com.br/JS/GATEWAY/sopague-integration-library-1.5.2.min.js"></script>Download local
<script src="/libs/sopague-integration-library-1.0.0.min.js"></script>Uso Rápido
Criptografia RSA
// Configurar chave pública
const publicKey = `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
-----END PUBLIC KEY-----`;
Sopague.setEncryptPublicKey(publicKey);
// Criptografar número do cartão
const encrypted = await Sopague.encryptCard('0000000000000000');
console.log(encrypted); // string encriptadaO token criptografado expira em 5 minutos. Criptografe apenas no momento de processar o pagamento. Não armazene tokens criptografados por longos períodos.
Anti-Fraude
// Inicializar detecção de fraude
const sessionId = Sopague.initAntiFraud('bc5a19ab-4dec-4ce2-b489-6b7ada73b88c');
// Obter session ID atual
const currentSession = Sopague.getAntiFraudSessionId();
// Remover quando não for mais necessário
Sopague.removeAntiFraud();API Completa
Criptografia
setEncryptPublicKey(publicKeyPem: string): void
Configura a chave pública RSA em formato PEM.
encryptCard(plainText: string): Promise<string>
Criptografa um número de cartão. O código gerado é válido por 5 minutos.
Anti-Fraude
initAntiFraud(antiFraudId: string, options?: Object): string
Inicializa o módulo de anti-fraude e retorna o session ID completo.
Parâmetros:
antiFraudId(string): GUID gerado pela sua aplicaçãooptions(opcional):orgId(string): ID da organizaçãosessionPrefix(string): Prefixo da sessão
removeAntiFraud(): void
Remove o iframe de anti-fraude.
getAntiFraudSessionId(): string | null
Retorna o session ID atual do anti-fraude.
setAntiFraudOrgId(orgId: string): void
Configura o ID da organização para anti-fraude.
setAntiFraudSessionPrefix(prefix: string): void
Configura o prefixo da sessão para anti-fraude.
Utilitários
getVersion(): string
Retorna a versão da biblioteca.
getInfo(): Object
Retorna informações detalhadas sobre a biblioteca e módulos ativos.
Exemplo: Integração JavaScript Vanilla
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.sopague.com.br/JS/GATEWAY/sopague-integration-library.min.js"></script>
</head>
<body>
<input type="text" id="inputData" placeholder="Número do cartão">
<button id="btnEncrypt">Criptografar</button>
<div id="output"></div>
<script>
const publicKey = `-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC...
-----END PUBLIC KEY-----`;
document.getElementById('btnEncrypt').addEventListener('click', async () => {
const data = document.getElementById('inputData').value.replace(/\s/g, '');
if (!data) return alert('Informe o número do cartão!');
Sopague.initAntiFraud('b12d3b7a-2f8b-4281-84ee-b4e99e029aa1');
Sopague.setEncryptPublicKey(publicKey);
const encrypted = await Sopague.encryptCard(data);
document.getElementById('output').textContent = encrypted;
});
</script>
</body>
</html>Tipagens TypeScript (NextJS)
declare global {
interface Window {
Sopague: {
setEncryptPublicKey: (key: string) => void;
encryptCard: (text: string) => Promise<string>;
initAntiFraud: (antiFraudId: string, options?: { orgId: string; sessionPrefix: string }) => string;
removeAntiFraud: () => void;
getAntiFraudSessionId: () => string | null;
getVersion: () => string;
getInfo: () => object;
};
}
}Compatibilidade
- Chrome 37+, Firefox 34+, Safari 11+, Edge 79+
- Requer HTTPS (Web Crypto API)
- Compatível com React, Next.js, Vue.js, Angular e JavaScript Vanilla
