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

Vendas Online via API com PayPal - #8 Button e Credit Card

17/03/2021

Nesse tutorial vamos finalizar o pagamento enviando os dados do cartão de crédito e os dados pessoais do cliente pra API do PayPal.

Finalizando pagamento com PayPal

Bora lá continuar a trabalhar com a API do PayPal.

checkout.php

Iremos criar o botão de finalização do pagamento na nossa página checkout:

<main class="checkout">
    <div id="ppplus"></div>
    <button type="submit" id="continueButton"> Pagar</button>
</main>

assets/css/style.css

Que tal estilizar esse botão recém inserido no css também:

#continueButton{
    display:none;
    width: 30%;
    padding: 15px;
    background: #333;
    color:#fff;
    font-weight: bold;
    font-size: 19px;
    border-radius: 5px;
    margin: 0 auto;
}

assets/js/javascript.js

No javascript vamos mudar o display do botão após o carregamento do checkout. Vamos trazer também as ações a serem desencadeadas após o click no botão.

let json=await response.json();
ppp =await PAYPAL.apps.PPP({
    "approvalUrl": json.links[1].href,
    "placeholder": "ppplus",
    "mode": mode,
    "payerEmail":"webdesignemfoco@gmail.com",
    "payerFirstName":"Thiago",
    "payerLastName":"Romerson",
    "payerTaxId":"35581050600",
    "language":"pt_BR",
    "country":"BR"
});
payment_id=await json.id;
doc.querySelector('#continueButton').style.display='block';

async function messageListener(event) {
    try {
        //this is how we extract the message from the incoming events, data format should look like {"action":"inlineCheckout","checkoutSession":"error","result":"missing data in the credit card form"}
        let data = JSON.parse(event.data);
        if(data.result.state == 'APPROVED'){
            let response=await fetch(getRoot()+'controllers/ControllerPayment.php',{
                method:'POST',
                headers:{
                    Accept:'application/json',
                    'Content-Type':'application/json'
                },
                body:JSON.stringify({
                    payment_id: payment_id,
                    payer_id: data.result.payer.payer_info.payer_id
                })
            });
            let json=await response.json();
            console.log(json);
        }
        //insert logic here to handle success events or errors, if any
    } catch (exc) {
    }
}
if(doc.querySelector('#continueButton')){
    doc.querySelector('#continueButton').addEventListener('click', (event)=>{
        event.preventDefault();
        ppp.doContinue();
        if (win.addEventListener) {
            win.addEventListener("message", messageListener, false);
        } else if (win.attachEvent) {
            win.attachEvent("onmessage", messageListener);
        } else {
            throw new Error("Can't attach message listener");
        }
    });
}

Para fazer testes com o cartão na API do PayPal faça login na sua conta e acesse o link de Teste de Cartão de Crédito com PayPal.

Por hoje é só! Sucesso nos códigos e na vida!

Precisando de aulas particulares? webdesignemfoco@gmail.com

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

Posts Relacionados

Vendas Online via API com PayPal - #7 Formulário de Checkout
Nesse tutorial vamos trazer o checkout do PayPal exibindo para o usuário os campos de preenchimento do cartão de crédito.
Saiba mais!
Vendas Online via API com PayPal - #9 Finalizando Pagamento
Nesse video vamos finalizar o pagamento via API com PayPal, enviando todos os dados necessários para o servidor de pagamento.
Saiba mais!
PayPal
Nessa playlist você aprenderá como realizar vendas com o facilitador de pagamento PayPal. Aprenderá também a fazer o checklist transparente com PayPal.
Saiba mais!