Vendas Online via API com PayPal - #9 Finalizando Pagamento
24/03/2021Nesse video vamos finalizar o pagamento via API com PayPal, enviando todos os dados necessários para o servidor de pagamento.
Finalizando pagamento com API PayPal
assets/js/javascript.js
Vamos começar implementando o javascript no nosso projeto:
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();
doc.querySelector('#continueButton').style.display='none';
doc.querySelector('#ppplus').style.backgroundColor='darkgreen';
doc.querySelector('#ppplus').innerHTML='Seu pagamento foi aprovado!';
}
//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");
}
});
}
controllers/ControllerPayment.php
Bora agora criar o controller que fará o curl na API do PayPal:
<?php
require_once ('../config/config.php');
require_once ('../class/ClassPayment.php');
$objPayment=new ClassPayment();
$json=json_decode(file_get_contents('php://input'));
$data['payment_id']=$json->payment_id;
$data['payer_id']=$json->payer_id;
echo $objPayment->payment($data);
class/ClassPayment.php
Vamos criar a função de pagamento dentro da ClassPayment:
//Payment
public function payment($data)
{
$this->getToken();
$this->url=URL."v1/payments/payment/".$data['payment_id']."/execute/";
$this->post=json_encode(array('payer_id'=>$data['payer_id']));
return json_encode($this->curls('payment'));
}
Por hoje é só! Sucesso nos códigos e na vida!
Precisando de aulas particulares? webdesignemfoco@gmail.com
Posts Relacionados
Vendas Online via API com PayPal - #8 Button e Credit Card
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.
Vendas Online via API com PayPal - #10 Carrinho de Compra
No tutorial de hoje começaremos a criar um carrinho de compras para enviar dados dinâmicos de vários itens para o PayPal.