Middleware
CredentialsMiddleware
Source code in payment_emulation\payment\middleware.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | |
O CredentialsMiddleware intercepta requisições HTTP para extrair, a partir de formulários, os dados de credenciais de pagamento. Ele foi desenvolvido especificamente para funcionar com o modal de pagamento. Sua principal função é criar, na instância de request, um atributo chamado credentials contendo um dicionário com os dados extraídos. Dessa forma, as credenciais ficam prontamente disponíveis para serem utilizadas, por exemplo, no método payment() do PaymentSDK.
Como adicionar o middleware
Para que o middleware funcione corretamente, adicione-o ao final da lista de middlewares do seu projeto. Exemplo:
MIDDLEWARE = [
...
'payment_emulation.payment.middleware.CredentialsMiddleware',
]
Exemplo de uso
No exemplo abaixo, o atributo credentials é utilizado em uma view para executar o pagamento:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
{
"transaction": "success",
"items": [
{"quantity": 2, "unit_price": 67.73, "title": "T-shirt"},
{"quantity": 4, "unit_price": 45.78, "title": "Shoes"}
],
"redirect_urls": null,
"address": null,
"payer": null,
"amount": 318.58,
"created_at": "2025-02-16T00:29:10.852211+00:00"
}
Formulário genérico compatível com o middleware
Caso deseje implementar seu próprio formulário de pagamento e aproveitar a interceptação de dados realizada pelo middleware, certifique-se de utilizar os seguintes nomes para os campos de entrada:
- card_number: Número do cartão (os espaços serão removidos automaticamente).
- holder: Nome do titular do cartão.
- validity: Data de validade do cartão no formato
MM/AA. - cvv: Código de segurança (valor de verificação do cartão).
- cpf: CPF do titular (as pontuações
.,-serão removidos automaticamente). - cnpj: CNPJ do titular (as pontuações
.,-,/serão removidos automaticamente). - cpfcnpj: Campo (normalmente um select) para alternar entre
CPFeCNPJ.
Utilize esses nomes de campos para que o middleware possa interceptar e processar corretamente as informações enviadas.