braspag-nodejs-sdk
Version:
SDK para integração com plataforma Braspag
305 lines (255 loc) • 8.6 kB
Markdown
# Braspag SDK para Node.js
SDK para integração simplificada nos serviços da plataforma [Braspag](http://www.braspag.com.br/#solucoes)
> Para documentação completa das APIs e manuais, acesse [http://braspag.github.io/](http://braspag.github.io/)
## Índice
- [Features](#features)
- [Dependências](#dependências)
- [Instalação](#instalação)
- [Exemplos de Uso](#exemplos-de-uso)
- [Pagador](#pagador)
- [Cartão Protegido](#cartao-protegido)
- [Velocity](#velocity)
## Features
* Instalação simplificada utilizando [NPM](https://www.npmjs.com//), 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:
```javascript
/* 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:
```javascript
/* 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:
```javascript
/* 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:
```javascript
/* 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:
```javascript
/* 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:
```javascript
/* 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'
},
});
```