npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

brpix-api-node

v0.1.6-alpha.2

Published

Essa é uma lib para fluxo de pagamento com o PIX. Utiliza para os testes o (PSP) endpoint da [GERENCIANET.COM.BR](https://gerencianet.com.br/pix/)

Downloads

20

Readme

brpix-api-node

Essa é uma lib para fluxo de pagamento com o PIX. Utiliza para os testes o (PSP) endpoint da GERENCIANET.COM.BR

standard-image Coverage Status NPM ci License: MIT

Como utilizar?

  1. Crie uma conta de desenvolvedor na GERENCIANET.COM.BR
  2. Crie uma aplicação no menu Minhas aplicações e adquira o Client_Id, Client_Secret
  3. Em seguida adquira um certificado .p12 de homologação no menu Meus certificados
  4. Configure no .env do seu repositório as respectivas informações conforme o .env.example

Instalação

yarn add brpix-api-node

ou

npm -i brpix-api-node

Exemplo de implementação

import { ApiPix } from 'brpix-api-node'

/** @type {IApiPixConfig} */
const apiConfig = {
  clientId: process.env.CLIENT_ID,
  clientSecret: process.env.CLIENT_SECRET,
  baseURL: 'https://api-pix-h.gerencianet.com.br',
  // debug: true,
  certificate: {
    path: './certificates/certificate.p12',
    passphrase: '' // senha do certificado (vazio para homologação)
  }
}

// nova instância 
const pix = new ApiPix(apiConfig)

// inicia acesso no PSP
pix.init().then(() => {
  console.log('token de acesso adquirido', api.token)
})

// ou também pode iniciar acesso assim
const response = await api.getAccessToken()
console.log(response.accessToken)

Criar uma cobrança PIX dinâmica

/** @type {IRequestCreateImmediateCharge} */
const request = {
  calendario: {
    expiracao: 3600 // 1 hora
  },
  chave: '12345678900', // chave pix do cobrador
  devedor: {
    cpf: '98765432100',
    nome: 'Fulano de Tal'
  },
  solicitacaoPagador: 'Pagamento do pedido 123',
  valor: {
    original: '10.20'
  }
}


// levando um txid
const txid = 'GERE_O_SEU_TXID_123'
const cob = await pix.createCob(request, txid)

//ou  gerando txtid automaticamente
const cob = await pix.createCob(request)

//ou  pode adquirir um txid da classe antes da requisição
const myTxid = pix.txidGenerate()
const cob = await pix.createCob(request, myTxid)

// seguindo para gerar QRCode
if(response && response.location) {
  /** @type {IQRCodePayload} */
  const payload = {
      amount: cob.valor.original,
      merchantCity: 'Cidade do cobrador',
      merchantName: 'Nome do cobrador', 
      pixKey: request.chave,
      txid: cob.txid,
      uniquePayment: true,
      url: cob.location // importante para pix dinâmico
    }
    const codePayload = new QRCodePayload(payload)

    // pode adquirir a string do QRCode
    console.log('string payload', codePayload.getPayload()) 

    // adquirir string base64 para imagem QRCode
    const strBase64 =  await codePayload.getQRCode()

    /** 
     * Use no frontend
     * <img src={strBase64} />
     */
}

Criar um pix QRCode stático

import { QRCodePayload } from 'brpix-api-node'

// instanciando QRCode
const codePayload = new QRCodePayload({
  isStatic: true, // importante sinalizar que é pix estático
  txid: 'GERE_SEU_TXID_123456', // no pix estático será preenchido com '***' automaticamente
  pixKey: 'CHAVE_PIX_DO_COBRADOR',
  amount: '1.50',
  merchantCity: 'Cidade_do_cobrador',
  merchantName: 'Nome_do_cobrador',
  uniquePayment: false, // true se deve ser usado apenas uma vez
  description: 'Descricao do pagamento'
})

// ou assim 
const codePayload = new QRCodePayload()
  .set('txid', 'GERE_SEU_TXID_123456')
  .set('isStatic', true)
  .set('pixKey', 'CHAVE_PIX_DO_COBRADOR')
  .set('amount', '1.50')
  .set('merchantCity', 'Cidade_do_cobrador')
  .set('merchantName', 'Nome_do_cobrador')
  .set('uniquePayment', false)
  .set('description', 'Descricao do pagamento')

 // pode adquirir a string do QRCode
 console.log('string payload', codePayload.getPayload()) 

 // adquirir string base64 para imagem QRCode
 const strBase64 = await codePayload.getQRCode({ width: 400 })
 /** 
  * Use no frontend
  * <img src={strBase64} />
  */

  // ou 
  await codePayload.save(`./qrcode-${txid}.png`, { width: 400, type: 'png' })

Contribuindo

Solicitações pull são bem-vindas! Se você vir algo que gostaria de adicionar, faça. Para mudanças drásticas, abra uma issue primeiro.

MIT License

Copyright (c) 2021 Leandro Sbrissa