Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Checkout Transparente Pagseguro em PHP, JS e Python - #12 Pagamento com Cartão de Crédito Criptografado II

23/04/2023

Nesse tutorial finalizaremos a parte de vendas com cartão criptografado utilizando o Pagseguro e a linguagem de programação Python.

Python com Cartão Criptografado

app/templates/index.html

No arquivo html vamos implementar o valor do publicKey e vamos colocar também o action e o token csrf do formulário:

<form method="post" name="formCard" id="formCard" action="PaymentController/">
    {% csrf_token %}
    <input type="text" name="publicKey" id="publicKey" value="{{publicKey}}">

app/views.py

Na views vamos passar o publicKey para o html e vamos também implementar a funçao PaymentController:

def home(request):
    data = {}
    data['publicKey'] = getPublicKey()
    return render(request, 'index.html', data)

def paymentController(request):
    url = 'https://sandbox.api.pagseguro.com/orders'
    headers = {
        'Content-Type': 'application/json',
        'Authorization' : 'SEU_TOKEN'
    }
    body = json.dumps({
        "reference_id": "ex-00001",
        "customer": {
            "name": "Jose da Silva",
            "email": "email@test.com",
            "tax_id": "12345678909",
            "phones": [
                {
                    "country": "55",
                    "area": "11",
                    "number": "999999999",
                    "type": "MOBILE"
                }
            ]
        },
        "items": [
            {
                "reference_id": "referencia do item",
                "name": "nome do item",
                "quantity": 1,
                "unit_amount": 500
            }
        ],
        "shipping": {
            "address": {
                "street": "Avenida Brigadeiro Faria Lima",
                "number": "1384",
                "complement": "apto 12",
                "locality": "Pinheiros",
                "city": "São Paulo",
                "region_code": "SP",
                "country": "BRA",
                "postal_code": "01452002"
            }
        },
        "notification_urls": [
            "https://meusite.com/notificacoes"
        ],
        "charges": [
            {
                "reference_id": "referencia da cobranca",
                "description": "descricao da cobranca",
                "amount": {
                    "value": 500,
                    "currency": "BRL"
                },
                "payment_method": {
                    'soft_descriptor':'WEBDESIGN',
                    "type": "CREDIT_CARD",
                    "installments": 1,
                    "capture": True,
                    "card": {
                        "encrypted": request.POST['encriptedCard'],
                        "security_code": "123",
                        "holder": {
                            "name": "Jose da Silva"
                        },
                        "store": True
                    }
                }
            }
        ]
    })
    reqs = requests.post(url,headers=headers,data=body)
    return HttpResponse(reqs)

app/static/javascript.js

No javascript vamos implementar a função para pegar o valor do cartão criptografado:

(function(win,doc){
    'use script';

    if(doc.querySelector('#formCard')){
        let formCard = doc.querySelector('#formCard');
        formCard.addEventListener('submit',(e)=>{
            e.preventDefault();
            let card = PagSeguro.encryptCard({
                publicKey: doc.querySelector('#publicKey').value,
                holder: doc.querySelector('#cardHolder').value,
                number: doc.querySelector('#cardNumber').value,
                expMonth: doc.querySelector('#cardMonth').value,
                expYear: doc.querySelector('#cardYear').value,
                securityCode: doc.querySelector('#cardCvv').value
            });
            let encrypted = card.encryptedCard;
            doc.querySelector('#encriptedCard').value = encrypted;
            formCard.submit();
        });
    }
})(window,document);

No código acima pegamos o encriptedCard após o envio do formulário, preenchemos o input encriptedCard no html e depois submetemos o formulário final.

Por hoje é só! Fiquem todos com Deus! Sucesso nos códigos e na vida!

Precisa de um professor? webdesignemfoco@gmail.com

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Checkout Transparente Pagseguro em PHP, JS e Python - #11 Pagamento com Cartão de Crédito Criptografado I
Na aula de hoje aprenderemos como realizar o checkout transparente do Pagseguro usando cartão de crédito criptografado e como linguagem de programação o Python
Saiba mais!
Checkout Transparente Pagseguro em PHP, JS e Python - #13 Pagamento com Boleto
No tutorial de hoje aprenderemos como realizar a integração do Python com a api do Pagseguro para a exibição de boletos.
Saiba mais!
Pagseguro
Nesse curso será abordado a temática de vendas online com pagseguro através do redirecionamento, lightbox e checkout transparente.
Saiba mais!