SDK Javascript para a criptografia de cartões de crédito.
SDK Javascript que possibilita a criptografia de dados sensíveis de cartão no browser do cliente assim como identificação e validação de números de cartão de crédito. Para Web / React Native / Ionic 1 / Ionic 3 / NodeJS.
Veja um exemplo funcional utilizando o JavaScript de criptografia de cartão clicando aqui.
Para todas as plataformar, é necessário passar a sua public key como parâmetro para gerar o hash dos dados do cartão de crédito. Essa informação você pode obter pelo painel da Wirecard, na seção de Chave de acesso https://conta.wirecard.com.br/configurations/api_credentials
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoBttaXwRoI1Fbcond5mS
7QOb7X2lykY5hvvDeLJelvFhpeLnS4YDwkrnziM3W00UNH1yiSDU+3JhfHu5G387
O6uN9rIHXvL+TRzkVfa5iIjG+ap2N0/toPzy5ekpgxBicjtyPHEgoU6dRzdszEF4
ItimGk5ACx/lMOvctncS5j3uWBaTPwyn0hshmtDwClf6dEZgQvm/dNaIkxHKV+9j
Mn3ZfK/liT8A3xwaVvRzzuxf09xJTXrAd9v5VQbeWGxwFcW05oJulSFjmJA9Hcmb
DYHJT+sG2mlZDEruCGAzCVubJwGY1aRlcs9AQc1jIm/l8JwH7le2kpk3QoX+gz0w
WwIDAQAB
-----END PUBLIC KEY-----
Neste cenário, a lib de criptografia já está compilada junto com o código do SDK, sem ter necessidade de importar outro script.
<script src="moip-sdk-js.js"></script>
<script>
MoipSdkJs.MoipCreditCard
.setPubKey(pubKey)
.setCreditCard({
number: '4012001037141112',
cvc: '123',
expirationMonth: '05',
expirationYear: '22'
})
.hash()
.then(hash => console.log('hash', hash));
</script>
Neste cenário, é necessário instalar e importar uma lib de criptografia de terceiro, para gerar o hash do cartão de crédito. Após importar, lembrar de passar o contexto dele atravéz do método setEncrypter, como mostrado abaixo no exemplo.
yarn add moip-sdk-js jsencrypt
// or
npm i moip-sdk-js jsencrypt --save
import jsencrypt from 'jsencrypt';
import { MoipCreditCard } from 'moip-sdk-js';
const pubKey = `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoBttaXwRoI1Fbcond5mS
7QOb7X2lykY5hvvDeLJelvFhpeLnS4YDwkrnziM3W00UNH1yiSDU+3JhfHu5G387
O6uN9rIHXvL+TRzkVfa5iIjG+ap2N0/toPzy5ekpgxBicjtyPHEgoU6dRzdszEF4
ItimGk5ACx/lMOvctncS5j3uWBaTPwyn0hshmtDwClf6dEZgQvm/dNaIkxHKV+9j
Mn3ZfK/liT8A3xwaVvRzzuxf09xJTXrAd9v5VQbeWGxwFcW05oJulSFjmJA9Hcmb
DYHJT+sG2mlZDEruCGAzCVubJwGY1aRlcs9AQc1jIm/l8JwH7le2kpk3QoX+gz0w
WwIDAQAB
-----END PUBLIC KEY-----`;
MoipCreditCard
.setEncrypter(jsencrypt, 'ionic')
.setPubKey(pubKey)
.setCreditCard({
number: '4012001037141112',
cvc: '123',
expirationMonth: '05',
expirationYear: '22'
})
.hash()
.then(hash => console.log('hash', hash));
Veja aqui um exemplo de app utilizando Ionic 3 e a SDK de criptografia: link
Neste cenário, é necessário instalar e importar uma lib de criptografia de terceiro para gerar o hash do cartão de crédito. Após importar, lembrar de passar o contexto dele atravéz do método setEncrypter, como mostrado abaixo no exemplo.
yarn add moip-sdk-js react-native-rsa-native
// or
npm i moip-sdk-js react-native-rsa-native --save
// A biblioteca react-native-rsa-native requere instalação e configuração automática
// Consultar repositório da biblioteca para particularidades no iOS
react-native link react-native-rsa-native
import { RSA } from 'react-native-rsa-native';
import { MoipCreditCard } from 'moip-sdk-js';
const pubKey = `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoBttaXwRoI1Fbcond5mS
7QOb7X2lykY5hvvDeLJelvFhpeLnS4YDwkrnziM3W00UNH1yiSDU+3JhfHu5G387
O6uN9rIHXvL+TRzkVfa5iIjG+ap2N0/toPzy5ekpgxBicjtyPHEgoU6dRzdszEF4
ItimGk5ACx/lMOvctncS5j3uWBaTPwyn0hshmtDwClf6dEZgQvm/dNaIkxHKV+9j
Mn3ZfK/liT8A3xwaVvRzzuxf09xJTXrAd9v5VQbeWGxwFcW05oJulSFjmJA9Hcmb
DYHJT+sG2mlZDEruCGAzCVubJwGY1aRlcs9AQc1jIm/l8JwH7le2kpk3QoX+gz0w
WwIDAQAB
-----END PUBLIC KEY-----`;
MoipCreditCard
.setEncrypter(RSA, 'react-native')
.setPubKey(pubKey)
.setCreditCard({
number: '4012001037141112',
cvc: '123',
expirationMonth: '05',
expirationYear: '22'
})
.hash()
.then(hash => console.log('hash', hash));
Neste cenário, é necessário instalar e importar uma lib de criptografia de terceiro para gerar o hash do cartão de crédito. Após importar, lembrar de passar o contexto dele atravéz do método setEncrypter, como mostrado abaixo no exemplo.
yarn add moip-sdk-js node-jsencrypt
// or
npm i moip-sdk-js node-jsencrypt --save
const JSEncrypt = require('node-jsencrypt');
const MoipCreditCard = require('moip-sdk-js').MoipCreditCard;
// or if you are using the import syntax (which is always the case for React Web) you can do the following:
//
// import { MoipCreditCard } from 'moip-sdk-js'
// import JSEncrypt from 'node-jsencrypt'
const pubKey = `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoBttaXwRoI1Fbcond5mS
7QOb7X2lykY5hvvDeLJelvFhpeLnS4YDwkrnziM3W00UNH1yiSDU+3JhfHu5G387
O6uN9rIHXvL+TRzkVfa5iIjG+ap2N0/toPzy5ekpgxBicjtyPHEgoU6dRzdszEF4
ItimGk5ACx/lMOvctncS5j3uWBaTPwyn0hshmtDwClf6dEZgQvm/dNaIkxHKV+9j
Mn3ZfK/liT8A3xwaVvRzzuxf09xJTXrAd9v5VQbeWGxwFcW05oJulSFjmJA9Hcmb
DYHJT+sG2mlZDEruCGAzCVubJwGY1aRlcs9AQc1jIm/l8JwH7le2kpk3QoX+gz0w
WwIDAQAB
-----END PUBLIC KEY-----`;
MoipCreditCard
.setEncrypter(JSEncrypt, 'node')
.setPubKey(pubKey)
.setCreditCard({
number: '4012001037141112',
cvc: '123',
expirationMonth: '05',
expirationYear: '22'
})
.hash()
.then(hash => console.log('hash', hash));
Também é disponibilizado uma class com alguns métodos que faz as validações dos dados do cartão de crédito.
Para o uso Web ou Ionic 1, deve usar a classe da seguinte forma:
MoipSdkJs.MoipValidator.isValidNumber(12345); // return true/false
Para o uso React Native, Ionic 3 ou NodeJS, deve usar a classe da seguinte forma:
import { MoipValidator } from 'moip-sdk-js';
MoipValidator.isValidNumber(12345); // return true/false
const creditCardNumber = '4111111111111111';
MoipValidator.isValidNumber(creditCardNumber); //return true/false
const creditCardNumber = '4111111111111111';
const cvc = '123';
MoipValidator.isSecurityCodeValid(creditCardNumber, cvc); //return true/false
const month = '10';
const year = '2022';
MoipValidator.isExpiryDateValid(month, year); //return true/false
MoipValidator.cardType('5105105105105100'); //return [Object]MASTERCARD
MoipValidator.cardType('4111111111111111'); //return [Object]VISA
MoipValidator.cardType('341111111111111'); //return [Object]AMEX
MoipValidator.cardType('30569309025904'); //return [Object]DINERS
MoipValidator.cardType('3841001111222233334'); //return [Object]HIPERCARD
MoipValidator.cardType('4514160123456789'); //return [Object]ELO
MoipValidator.cardType('6370950000000005'); //return [Object]HIPER
MoipValidator.cardType('9191919191919191'); //return [Object]null