README
Braspag SDK para Node.js
SDK para integração simplificada nos serviços da plataforma Braspag
Para documentação completa das APIs e manuais, acesse http://braspag.github.io/
Índice
Features
- Instalação simplificada utilizando NPM, sem necessidade de arquivos de configuração
- Endpoints Braspag já configurados no pacote
- Seleção de ambientes Sandbox ou Production
- Client para a API Braspag Auth (Obtenção de tokens de acesso)
- Client para a API de pagamentos Recorrentes
- Client para a API do Pagador (Autorização, Captura, Cancelamento/Estorno, Consulta)
- Client para a API do Cartão Protegido (Salvar cartão, Recuperar cartão, Invalidar cartão)
- Client para a API de análises do Velocity
Dependências
- axios
Instalação
Caso já possua um arquivo package.json
, adicione a seguinte dependência ao seu projeto:
"dependencies": {
"braspag-nodejs-sdk": "*"
}
Com a dependência adicionada ao package.json
, execute o comando:
npm i
De forma alternativa, a instalação pode ser realizada executando o comando abaixo diretamente em seu terminal:
npm i braspag-nodejs-sdk --save
Exemplos de Uso
Pagador
Para criar uma transação utilizando cartão de crédito:
/* Criação do Cliente Pagador */
const PagadorClient = require('braspag-nodejs-sdk').PagadorClient;
const pagadorClient = new PagadorClient({
env: 'sandbox',
credentials: {
MerchantId: 'ID_DA_LOJA',
MerchantKey: 'CHAVE_DA_LOJA'
}});
/* Preenchimento dos dados da venda */
var request = {
MerchantOrderId: '123456789',
Customer: {
Name: 'Bjorn Ironside',
Identity: '762.502.520-96',
IdentityType: 'CPF',
Email: 'bjorn.ironside@vikings.com.br'
},
Payment: {
Provider: 'Simulado',
Type: 'CreditCard',
Currency: 'BRL',
Country: 'BRA',
Amount: 150000,
Installments: 1,
SoftDescriptor: 'Braspag SDK',
CreditCard: {
CardNumber: '4485623136297301',
Holder: 'BJORN IRONSIDE',
ExpirationDate: '12/2025',
SecurityCode: '123',
Brand: 'Visa'
}
}
};
/* Obtenção do resultado da operação */
var response = await pagadorClient.createSale(request);
Para criar uma transação utilizando cartão de débito:
/* Criação do Cliente Pagador */
const PagadorClient = require('braspag-nodejs-sdk').PagadorClient;
const pagadorClient = new PagadorClient({
env: 'sandbox',
credentials: {
MerchantId: 'ID_DA_LOJA',
MerchantKey: 'CHAVE_DA_LOJA'
}});
/* Preenchimento dos dados da venda */
var request = {
MerchantOrderId: '123456789',
Customer: {
Name: 'Bjorn Ironside',
Identity: '762.502.520-96',
IdentityType: 'CPF',
Email: 'bjorn.ironside@vikings.com.br'
},
Payment: {
Provider: 'Simulado',
Type: 'DebitCard',
Currency: 'BRL',
Country: 'BRA',
Amount: 150000,
Installments: 1,
SoftDescriptor: 'Braspag SDK',
ReturnUrl: 'http://www.sualoja.com/url-de-retorno',
Authenticate: true,
DebitCard: {
CardNumber: '4485623136297301',
Holder: 'BJORN IRONSIDE',
ExpirationDate: '12/2025',
SecurityCode: '123',
Brand: 'Visa'
}
}
};
/* Obtenção do resultado da operação */
var response = await pagadorClient.createSale(request);
Para criar uma transação utilizando boleto registrado:
/* Criação do Cliente Pagador */
const PagadorClient = require('braspag-nodejs-sdk').PagadorClient;
const pagadorClient = new PagadorClient({
env: 'sandbox',
credentials: {
MerchantId: 'ID_DA_LOJA',
MerchantKey: 'CHAVE_DA_LOJA'
}});
/* Preenchimento dos dados da venda */
var request = {
MerchantOrderId: '123456789',
Customer: {
Name: 'Bjorn Ironside',
Identity: '762.502.520-96',
IdentityType: 'CPF',
Email: 'bjorn.ironside@vikings.com.br'
},
Payment: {
Provider: 'Simulado',
Type: 'Boleto',
Currency: 'BRL',
Country: 'BRA',
Amount: 150000,
BoletoNumber: '2017091101',
Assignor: 'Braspag',
Demonstrative: 'Texto demonstrativo',
ExpirationDate: '2019-03-20',
Identification: '11017523000167',
Instructions: 'Aceitar somente até a data de vencimento.'
}
};
/* Obtenção do resultado da operação */
var response = await pagadorClient.createSale(request);
Cartão Protegido
Para salvar um cartão de crédito em um cofre PCI:
/* Criação do Cliente Cartão Protegido */
const CartaoProtegidoClient = require('braspag-nodejs-sdk').CartaoProtegidoClient;
const cartaoProtegidoClient = new CartaoProtegidoClient({
env: 'sandbox',
credentials: {
MerchantKey: 'CHAVE_DA_LOJA'
}
});
/* Preenchimento dos dados do cartão a ser salvo */
var request = {
CustomerName: 'Bjorn Ironside',
CustomerIdentification: '762.502.520-96',
CardHolder: "BJORN IRONSIDE",
CardExpiration: "10/2025",
CardNumber: "1000100010001000"
};
/* Obtenção do resultado da operação */
var response = await cartaoProtegidoClient.saveCreditCard(request);
Para obter os dados de um cartão de crédito previamente salvo em cofre PCI:
/* Criação do Cliente Cartão Protegido */
const CartaoProtegidoClient = require('braspag-nodejs-sdk').CartaoProtegidoClient;
const cartaoProtegidoClient = new CartaoProtegidoClient({
env: 'sandbox',
credentials: {
MerchantKey: 'CHAVE_DA_LOJA'
}
});
/* Preenchimento do objeto GetCreditCardRequest */
$request = new GetCreditCardRequest();
$request->JustClickKey = "CREDITCARD_TOKEN";
/* Obtenção do resultado da operação */
let response = await client.getCreditCard({
JustClickKey: 'CREDITCARD_TOKEN'
});
Velocity
Análise de uma transação com o Velocity:
/* Criação do Token de Acesso OAUTH via Braspag Auth */
const BraspagAuthClient = require('braspag-nodejs-sdk').BraspagAuthClient;
const authClient = new BraspagAuthClient({env: 'sandbox'});
let authResponse = await authClient.createAccessToken({
clientId: 'CLIENT_ID',
clientSecret: 'CLIENT_SECRET',
grantType: 'client_credentials',
scope: 'VelocityApp'
});
/* Criação do Cliente Velocity */
const VelocityClient = require('braspag-nodejs-sdk').VelocityClient;
const client = new VelocityClient({
env: 'sandbox',
credentials: {
MerchantId: '94E5EA52-79B0-7DBA-1867-BE7B081EDD97',
AccessToken: authResponse.access_token
}
});
/* Obtenção do resultado da operação */
let response = await client.performAnalysis({
Customer: {
Name: 'Bjorn Ironside',
Identity: '76250252096',
IpAddress: "127.0.0.1",
Email: "bjorn.ironside@vikings.com.br",
BirthDate: "1982-06-30",
Phones: [
{
Type: "Cellphone",
Number: "999999999",
DDI: "55",
DDD: "11"
},
],
Billing: {
Street: "Alameda Xingu",
Number: "512" ,
Neighborhood: "Alphaville",
City: "Barueri",
State: "SP",
Country: "BR",
ZipCode: "06455-030"
},
},
Transaction: {
OrderId: uuid(),
Date: 'YYYY-MM-DD hh:mm:ss',
Amount: 1000,
},
Card: {
Number: '1000100010001000',
Holder: 'BJORN IRONSIDE',
ExpirationDate: '10/2025',
Brand: 'Visa'
},
});