Skip to content
This repository has been archived by the owner on Dec 10, 2022. It is now read-only.

SDK em Node JS para integração com os serviços da plataforma Braspag

Notifications You must be signed in to change notification settings

ricardoabdalla/BraspagNodeJsSdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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'
    },
});

About

SDK em Node JS para integração com os serviços da plataforma Braspag

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published