UNPKG

braspag-nodejs-sdk

Version:
305 lines (255 loc) 8.6 kB
# 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' }, }); ```