Giter VIP home page Giter VIP logo

node-psp's Introduction

node-psp

Payment Service Provider feito com NodeJs

Installation

git clone [email protected]:CamposBruno/node-psp.git
cd node-psp
yarn

Copie o arquivo .env.example para .env e subistitua as variaveis de ambiente conforme necessidade.

Dependências

Neste repositório, incluí um arquivo docker-compose.yml que é o que eu uso para subir 2 contaires. redis postgresql

Após instalar as dependências é necessário criar um banco de dados com nome pagarme e configurar as informações de conexão no arquivo .env.

Testing

yarn test

Migration

Para que sejam criadas as tabelas no banco de dados é necessário rodar um comando de migração.

Esse comando executará também a população de um usuário na base de dados:

email : '[email protected]' password : 'pagarme'

Para rodar a migration e o seed execute :

yarn migration

Para remover as tabelas do banco de dados execute:

yarn migration:undo

Running Service

Existem dois serviços a serem executados, api e payables

Para executar a API :

 yarn api

Para executar a fila de payables :

yarn payables

API

Para que os clientes processem transações cash-in eu criei uma mini api com autenticação por JWT

Para facilitar eu incluí o arquivo node-psp-api-request.json para ser importado no Imsomnia.

Sessions

O cliente necessita de um token para interagir com a API. Para adiquiri-lo faça um POST em /sessions passando o email e a senha como parâmetros. Essa requisição retornará as informações do usuário juntamente com o token

curl -X POST http://localhost:3000/sessions \
  -H 'Content-Type: application/json' \
  -d '{
	"email" : "[email protected]",
	"password" : "pagarme"
}'

Transaction

Para criar uma transação o cliente enviará um POST para /transaction passando as informações por parametro:

curl -X POST http://localhost:3000/transaction \
  -H 'Authorization: Bearer {{TOKEN}}' \
  -H 'Content-Type: application/json' \
  -d '{
	"amount": 100,
	"description": "Smartband XYZ 4.0",
	"payment_method": "credit_card",
	"card_number": "4356786656469876",
	"card_holder": "John Doe",
	"expires_at": "2029-12-01",
	"cvv": "657"
}'

Transactions List

Para listar as transações feitas por esse usuário é só executar um GET em /transactions

curl -X GET  http://localhost:3000/transactions \
  -H 'Authorization: Bearer {{TOKEN}}' 

Balances

Para visualizar os fundos do usuário é só executar um GET em /balances

curl -X GET http://localhost:3000/balances \
  -H 'Authorization: Bearer {{TOKEN}}' \

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.