Coder Social home page Coder Social logo

paynow's Introduction

Hello welcome to my profile, i'm Vinicius Santos!


Vinicius Santos Linkedin Vinicius Santos Twitter


About me:

Developer Full Stack 🚀

I love technologies, i like help other peoples, and never stop learning...

Subjects that interest me: 🤖 Technology, 🎸 Electric guitar, 🏍️ Drive Motorcycles, 📊 Personal Finances, 📉📈 Trades in equities


💻 I am currently studying and creating applications, with the following technologies

Front-End => HTML, CSS, Javascript, Typescript, ReactJS

Back-End => Node JS, Typescript, Ruby on Rails, Ruby

Mobile => React Native


Other concepts and technologies that I have a knowledge base

Linux, Python 3, Git, TDD, DDD, REST API's, Docker e PostgresSQL.


Vinicius's github stats Top Langs

Readme Card Readme Card Readme Card Readme Card Readme Card Readme Card Readme Card Readme Card Readme Card Readme Card Readme Card

paynow's People

Contributors

vinicius-vph avatar

Watchers

 avatar

paynow's Issues

Relatório de cobranças (bônus)

As empresas cadastradas na plataforma de pagamentos podem acessar um relatório com todas as cobranças de um determinado intervalo de tempo. Este relatório deve conter, ao final, o montante total das cobranças realizadas, o total de taxas pagas(de acordo com o meio de pagamento de cada cobrança), o valor total a receber(descontando as taxas) e o total dos descontos concedidos aos clientes.

API para emissão de cobrança

A plataforma de pagamento pode receber uma solicitação para emitir uma nova cobrança avulsa via API. Essa solicitação deve incluir o token da empresa, o token do produto envolvido na transação, o meio de pagamento escolhido e os dados do cliente final para emissão da cobrança. Cada transação deve conter somente 1 token de produto, ou seja, a plataforma não suporta contratações de múltiplos produtos simultaneamente.
De acordo com o meio de pagamento escolhido para emissão da cobrança devem ser
recebidos parâmetros adicionais conforme a tabela abaixo:

attrs

Os parâmetros adicionais, caso existam, são sempre obrigatórios
Durante a emissão da cobrança, deve ser aplicado o desconto de acordo com o meio de pagamento escolhido, caso tenha sido configurado no cadastro do produto. A cobrança deve registrar o valor original do pedido e o valor com desconto. Cada cobrança emitida deve possuir um token de identificação alfanumérico único de 20 caracteres e o status inicial da cobrança é pendente.

Acesso de Clientes

Um usuário pode criar sua conta como cliente usando um e-mail de sua empresa. Contas de e-mails públicos como Gmail, Hotmail e Yahoo não podem ser utilizadas nesta plataforma. No nosso contexto, um funcionário da CodePlay deve criar sua conta usando um e-mail com domínio “@codeplay.com.br”. Ao criar sua conta, o cliente deve configurar os dados de sua empresa informando: CNPJ, razão social, endereço de faturamento e e-mail para faturamento. Um cliente não deve conseguir prosseguir com o acesso à plataforma enquanto não concluir o cadastro de todos os dados de sua empresa. Após a conclusão do cadastro da empresa, outras pessoas da mesma empresa podem criar contas com o mesmo domínio de e-mail e ter acesso aos dados da empresa. O primeiro usuário, no entanto, deve ser identificado como administrador da empresa dentro da plataforma, com permissão para bloquear o acesso de outras pessoas da empresa.

Confirmação Manual de Pagamentos

Na plataforma de pagamentos, um usuário administrador pode consultar todas cobranças com status pendente e modificar este status para “aprovada” ou “rejeitada”. No caso de aprovada deve ser informada a data efetiva do pagamento. No caso de rejeitada, devem ser informados: a data da tentativa do pagamento, o código de retorno informado pela operadora/banco(tabela disponível ao final do documento). Uma cobrança rejeitada deve seguir no status “pendente”, para que novas tentativas de cobranças e jam realizadas, mas mesmo assim devem ser armazenadas as informações da tentativa de cobrança e todas estas tentativas devem ser visíveis ao consultar uma cobrança no sistema.

Acesso de Administradores

Usuários de e-mail com domínio“@paynow.com.br” devem ser reconhecidos automaticamente como usuários com perfil administrativo. Os demais usuários devem ser considerados clientes e, com isto, devem possuir sempre um perfil da sua empresa configurado.

Emissão de um arquivo de cobrança (bônus)

Os administradores da plataforma de pagamentos devem ser capazes de efetivar a cobrança com os bancos e operadoras. Para isto é preciso gerar um arquivo com todas as cobranças pendentes de cada banco ou operadora. O arquivo deve conter todas cobranças pendentes de um determinado meio de pagamento e deve conter cobranças de todos clientes, sem necessidade de separar estas cobranças em arquivos diferentes. Para cada forma de pagamento diferente(boleto, cartão de crédito ou PIX) deve ser gerado um arquivo com os dados para cobrança. Os arquivos devem seguir a nomenclatura: TIMESTAMP_MEIO_PAGAMENTO_EMISSAO.TXT. Exemplo: 20210310_PIX_EMISSAO.TXT. Todos arquivos gerados devem ser armazenados em um diretório a seu critério.
Deve ser lançado no sistema que uma determinada cobrança foi registrada em um arquivo. Devem ser armazenados ao menos o token referente à cobrança, o nome do arquivo gerado e a data da emissão do arquivo. A mesma cobrança pode ser registrada em mais de um arquivo, no caso de ser rejeitada e acontecer uma nova tentativa de cobrança, por exemplo. Quando a cobrança é lançada em um arquivo, o status da cobrança deve mudar de “pendente” para “pendente de processamento”. Todos os arquivos devem conter 3 blocos: cabeçalho, corpo e rodapé. Cada linha do arquivo começa sempre comum caracter que indica se aquela linha faz parte do cabeçalho, do corpo ou do rodapé. A linha do cabeçalho do arquivo deve sempre começar com o caracter H, as linhas com as cobranças devem começar com a letra B e a linha do rodapé deve começar com a letra F. A linha do cabeçalho é única e deve conter a seguinte sequência de informações:
onteudo

As linhas do corpo do arquivo são múltiplas, uma para cada cobrança, e devem conter a seguinte sequência de informações:
conteudo2

A linha do rodapé é única e deve conter a seguinte sequência de informações:
conteudo3

Tabela Adicional - Status de Cobrança
conteudo4

Gestão de Meios de Pagamento (Cliente)

Um usuário de uma empresa na plataforma deve configurar os meios de pagamento que deseja disponibilizar para os seus clientes. Exemplo: uma empresa de e-commerce de sapatos pode criar sua conta na plataforma e habilitar somente pagamentos via cartão de crédito, enquanto nossa empresa de cursos de programação pode habilitar pagamentos via PIX e boleto bancário, excluindo a opção de cartão de crédito. Para cada meio de pagamento escolhido, a empresa deve ter dados de configuração próprios conforme a tabela abaixo:

gestao de pagamentos
Febraban

Então, caso a CodePlay deseje receber pagamentos via cartão de crédito PISA, ao ativar este meio de pagamento deverá informar o código de 20 caracteres. Para habilitar outro tipo de cartão, por exemplo o MESTRECARD, deverá informar outro código de 20 caracteres. Estes códigos representam identificadores únicos dos contratos da CodePlay com as operadoras PISA e MESTRECARD, estes contratos não estão dentro do escopo deste projeto.

Criptografia de dados de cartão (bônus)

Utilizando alguma estratégia de criptografia, a aplicação deve armazenar os dados de cartão de crédito dos clientes finais no banco de dados de forma mais segura. Cada cartão de crédito deve possuir um token de identificação e este token deve ser utilizado para referência nas cobranças emitidas para ele.

Token de Integração

Ao cadastrar uma empresa, os usuários desta empresa terão acesso a um token único alfanumérico de 20 caracteres que será utilizado para integração com a API de pagamentos. Este token deve ser disponibilizado no perfil da empresa, mas não deve ser passível de edição. O administrador da empresa pode solicitar um novo token que deve ser gerado automaticamente.

API para consulta de cobranças

O sistema de pagamento deve possuir uma API para consulta de cobranças permitindo filtrar por data de vencimento e por forma de pagamento. A API deve permitir também a atualização de status de uma determinada cobrança. Esta API será utilizada pelo sistema de execução de cobranças e todas as requisições devem ser autorizadas por um token único de autenticação.

Cadastro de Produtos (Cliente)

Um usuário de uma empresa pode cadastrar produtos informando seus valores para venda. Os produtos devem possuir um nome, seu valor e possíveis descontos de acordo com o meio de pagamento escolhido. Em caso de mudança nos valores, deve ser armazenado um histórico com os preços anteriores para e feito de auditoria. Cada produto terá um token gerado automaticamente após o cadastro. Este token deve ser utilizado para efetivar contratações através da API.

Suspensão de Contas de Clientes

Um usuário administrador da PayNow autenticado na plataforma deve ser capaz de solicitar a suspensão de uma conta de cliente, impossibilitando tanto o acesso à plataforma como a emissão de novas cobranças para este cliente. A suspensão deve ser confirmada por outro usuário administrador da PayNow antes de entrar em vigor.

Emissão de Recibos

Toda cobrança deve emitir um recibo quando seu status for alterado para “aprovada”. O recibo deve ser acessível mesmo por usuários externos não autenticados no sistema. O recibo deve conter a data de vencimento da cobrança, a data efetiva do pagamento e um código de autorização enviado pela empresa/banco responsável pela confirmação de pagamento.

Cliente consulta cobranças

As empresas cadastradas na plataforma de pagamentos podem acessar suas contas e verificar o status das cobranças relacionadas à sua empresa. A tela ‘inicial’ desta funcionalidade deve trazer as cobranças referentes aos últimos 30 dias e devem existir opções para visualizar os últimos 90 dias e o histórico completo.

Administração de Clientes

Um usuário administrador da PayNow autenticado na plataforma deve ser capaz de visualizar e alterar dados de clientes (as empresas), inclusive solicitar a renovação do token. Todas alterações de dados devem ser registradas na plataforma criando um histórico de modificações para fins de auditoria.

API de Criação de Token de Cliente Final (Cliente do cliente)

A plataforma de pagamento deve armazenar os dados dos clientes finais de seus clientes.
Exemplo: Eu, João, ao criar minha conta na plataforma de cursos online devo ter um token
único criado pela plataforma de meios de pagamentos PayNow. Este token será utilizado para
referenciar todas as cobranças emitidas para este cliente.
O token do cliente final deve ser vinculado ao nome completo e CPF de cada cliente e seu
formato é alfanumérico com 20 caracteres e único. Caso a mesma pessoa crie contas em
diversos clientes da PayNow, seu token deve ser sempre o mesmo, mas deve ser registrado
que este token foi vinculado com uma nova empresa para efeito de auditoria.
A criação deste token deve ser feita através de uma API e o token da empresa cliente deve ser
utilizado para identificar a qual empresa pertencem os dados do cliente final.

Cadastro de Meios de Pagamento

Um usuário administrador autenticado pode gerenciar os meios de pagamento disponíveis na plataforma. Os meios de pagamento devem ser do tipo boleto bancário, PIX ou cartão de crédito. Cada meio de pagamento deve ter um nome, um ícone, uma taxa por cobrança em % e uma taxa máxima em reais. Exemplos de meio de pagamentos: boleto bancário do banco laranja, com taxa de 5%; PIX do banco roxinho com taxa de 4,5%; cartão de crédito PISA com taxa de 6%. Um meio de pagamento pode ser desativado por um administrador. Meios de pagamento desativados não devem ser disponibilizados para novas compras realizadas por qualquer cliente da plataforma.

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.