GithubHelp home page GithubHelp logo

hudsonbrendon / pypicpay Goto Github PK

View Code? Open in Web Editor NEW
17.0 5.0 3.0 215 KB

Aceite PicPay e faça parte do movimento que está revolucionando a relação com o dinheiro no Brasil.

Home Page: https://www.picpay.com/

License: MIT License

Python 100.00%
picpay python python3 payment pagamento dinheiro movimento brasil

pypicpay's Introduction

Pypicpay

Aceite PicPay e faça parte do movimento que está revolucionando a relação com o dinheiro no Brasil.

Python package Github Issues MIT licensed Bugs Vulnerabilities Duplicated Lines (%) Reliability Rating Quality Gate Status Technical Debt Coverage Lines of Code Code Smells Maintainability Rating Security Rating

PicPay

Recursos Disponíveis

  • Requisição de Pagamento
  • Cancelamento
  • Status
  • Notificação

Instalação

$ pip install pypicpay

Modo de usar

Todas as APIs do PicPay Developers foram desenvolvidas baseadas na tecnologia REST, seguindo os atuais padrões técnicos de mercado. Tudo isso para que a experiência na hora da integração seja a mais fácil possível. Todas as URLs são amigáveis e orientadas a recursos e utilizam os padrões do protocolo HTTP como autenticação, verbos e códigos de retorno. Isso permite que APIs possam ser utilizadas por clientes HTTP já existentes. Todas as respostas são retornadas no formato JSON.

Como pode ser visto abaixo, as APIs foram cuidadosamente trabalhadas para que os termos de negócios contidos sejam facilmente entendidos por desenvolvedores que não tenham conhecimento prévio do sistema. Elas foram meticulosamente estudadas para que um nome de campo em um endpoint tenha rigorosamente o mesmo significado em outros recursos.

Atenção: Todos os testes devem ser realizados em produção sem ônus ao desenvolvedor: todos os pagamentos realizados podem ser imediatamente estornados (tanto pela API quanto pelo painel do lojista).

Saiba mais em: https://ecommerce.picpay.com/doc/#tag/Introducao

Requisição de Pagamento

Seu e-commerce irá solicitar o pagamento de um pedido através do PicPay na finalização do carrinho de compras. Após a requisição http, o cliente deverá ser redirecionado para o endereço informada no campo paymentUrl para que o mesmo possa finalizar o pagamento.

Assim que o pagamento for concluído o cliente será redirecionado para o endereço informada no campo returnUrl do json enviado pelo seu e-commerce no momento da requisição. Se não informado, nada acontecerá (o cliente permanecerá em nossa página de checkout).

Caso seja identificado que seu cliente também é cliente PicPay, iremos enviar um push notification e uma notificação dentro do aplicativo PicPay avisando sobre o pagamento pendente. Para todos os casos iremos enviar um e-mail de pagamento pendente contendo o link de nossa página de checkout.

Saiba mais em: https://ecommerce.picpay.com/doc/#tag/Requisicao-de-Pagamento

from pypicpay import PicPay

picpay = PicPay(
    x_picpay_token="X_PICPAY_TOKEN", x_seller_token="X_SELLER_TOKEN"
)

payment = picpay.payment(
    reference_id=102030,
    callback_url="https://picpay.com/site",
    return_url="https://www.sualoja.com.br/cliente/pedido/102030",
    value=20.50,
    expires_at="2022-05-01T16:00:00-03:00",
    buyer={
        "firstName": "João",
        "lastName": "Da Silva",
        "document": "123.456.789-10",
        "email": "[email protected]",
        "phone": "+55 27 12345-6789",
    },
)

Cancelamento

Utilize este método para solicitar o cancelamento/estorno de um pedido. Valem as seguintes regras:

a) Se já foi pago, o cliente PicPay será estornado caso sua conta de Lojista no PicPay tenha saldo para realizar o estorno e caso o cliente PicPay tenha recebido algum cashback nesta transação, este valor será estornado do cliente (para isto o mesmo deve possuir saldo). Todas esses requisitos devem ser cumpridos para que o estorno da transação ocorra com sucesso.

b) Se ainda não foi pago, a transação será cancelada em nosso servidor e não permitirá pagamento por parte do cliente PicPay;

Saiba mais em: https://ecommerce.picpay.com/doc/#tag/Cancelamento

from pypicpay import PicPay


picpay = PicPay(
    x_picpay_token="X_PICPAY_TOKEN", x_seller_token="X_SELLER_TOKEN"
)

cancellation = picpay.cancellation(reference_id=102030)

Status

Utilize este método para solicitar o status de um pedido.

Saiba mais em: https://ecommerce.picpay.com/doc/#operation/getStatus

from pypicpay import PicPay


picpay = PicPay(
    x_picpay_token="X_PICPAY_TOKEN", x_seller_token="X_SELLER_TOKEN"
)

status = picpay.status(reference_id=102030)

Notificação

Iremos enviar uma notificação para sua loja nas seguintes trocas de status:

  • Pedido expirado: não é mais possível paga-lo usando PicPay;
  • Pagamento em análise: usuário pagou porém o pagamento está sob análise;
  • Pedido pago;
  • Pedido completado: saldo disponível para saque;
  • Pagamento devolvido: foi pago e estornado para o cliente;
  • Pagamento com chargeback: cliente solicitou à operadora o cancelamento do pagamento;

Saiba mais em: https://ecommerce.picpay.com/doc/#tag/Notificacao

from pypicpay import PicPay


picpay = PicPay(
    x_picpay_token="X_PICPAY_TOKEN", x_seller_token="X_SELLER_TOKEN"
)

notification = picpay.notification(reference_id=3434)

Contribua

Clone o projeto repositório:

$ git clone https://github.com/hudsonbrendon/pypicpay.git

Certifique-se de que o Poetry está instalado, caso contrário:

$ pip install -U poetry

Instale as dependências:

$ poetry install

Para executar os testes:

$ pytest

Dependências

Licença

MIT

pypicpay's People

Contributors

controlado avatar dependabot[bot] avatar hudsonbrendon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pypicpay's Issues

prestação e contas

Suponhamos que eu tenha um canal do YouTube em que eu prometo ou falo que eu sou alguém que valoriza a transparência, eu poderia automatizar ou demonstrar ao meu público os meus gastos e ganhos reais com aquilo que eu recebo. A biblioteca pypicpay é interessante para esse caso de uso: a transparência? (Mas eu adicionaria uma funcionalidade de report, para funcionar a quem eu quero os gastos e ganhos gerais.)

Uma dessas formas é utilizar o protocolo de rede nostr por debaixo dos panos, chamando a biblioteca pypicpay com a python-nostr. Faz sentido o que eu disse aqui? faz sentido, adicionar o protocolo de rede nostr para a prestação de contas com pypicpay?

Encontrei um problema!

Olá! 😶‍🌫️
Primeiramente, obrigado por fazer esse código!

Achei um problema na função de cancelar os pagamentos; como diz na documentação oficial do Picpay, caso o pagamento já esteja aprovado, é necessário o authorizationId além do referenceId, porém no seu código, só trabalha um parâmetro, independente da condição...

def cancellation(self, reference_id: str) -> dict:
        # Documentação da função...

        path = f"payments/{reference_id}/cancellations"

        json = {  # Aqui deveria ter o parâmetro "authorizationId".
            "referenceId": reference_id,
        }

        request = self._request(method="post", path=path, json=json)

        return request

Mas no caso, creio que poderia ser um parâmetro opcional, já que não é necessário passar a autorização sempre ⏑

Documentação do PicPay! 🪙

image

Sugestão de solução? 🫂

Essa foi a forma em que pensei.
Novamente, muito obrigado pelo seu trabalho, me ajudou bastante!

def cancellation(self, reference_id: str, authorization_id: str = None) -> dict:
        path = f"payments/{reference_id}/cancellations"

        json = {
            "referenceId": reference_id,
        }

        if authorization_id:
            json["authorizationId"] = authorization_id

        request = self._request(method="post", path=path, json=json)

        return request

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.