Vendas Online via API com PayPal - #6 Criando a Fatura
22/02/2021Nesse tutorial vamos enviar os dados da nossa loja virtual para a API do PayPal para que seja criada a fatura da transação.
Transações pelo PayPal
controllers/ControllerInvoice.php
Esse controller enviará os dados para API gerando a fatura.
<?php
require_once ('../config/config.php');
require_once ('../class/ClassPayment.php');
$objPayment=new ClassPayment();
$data='{
"intent": "sale",
"payer": {
"payment_method": "paypal"
},
"transactions": [{
"amount": {
"currency": "BRL",
"total": "93.00",
"details": {
"shipping": "11",
"subtotal": "75",
"shipping_discount": "1.00",
"insurance": "1.00",
"handling_fee": "1.00",
"tax": "6.00"
}
},
"description": "This is the payment transaction description",
"payment_options": {
"allowed_payment_method": "IMMEDIATE_PAY"
},
"item_list": {
"shipping_address": {
"recipient_name": "PP Plus Recipient",
"line1": "Gregório Rolim de Oliveira, 42",
"line2": "JD Serrano II",
"city": "Votorantim",
"country_code": "BR",
"postal_code": "18117-134",
"state": "São Paulo",
"phone": "0800-761-0880"
},
"items": [{
"name": "handbag",
"description": "red diamond",
"quantity": "1",
"price": "75",
"tax": "6",
"sku": "product34",
"currency": "BRL"
}]
}
}],
"redirect_urls": {
"return_url": "https://example.com/return",
"cancel_url": "https://example.com/cancel"
}
}';
$objPayment->invoice($data);
class/ClassPayment.php
Vamos criar um novo método na classe de pagamento e alguns ajustes no método curl e getToken:
//Curls
private function curls($action){
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$this->url);
if($action == 'token'){
curl_setopt($ch,CURLOPT_HEADER,false);
}else{
curl_setopt($ch,CURLOPT_HTTPHEADER,array("Content-Type: application/json", "Authorization: Bearer ".$this->token->access_token.""));
}
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$this->post);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
($action == 'token')?curl_setopt($ch,CURLOPT_USERPWD,CLIENTID.':'.SECRETKEY):false;
$data=curl_exec($ch);
curl_close($ch);
return json_decode($data);
}
//Get a access token
public function getToken()
{
$this->url=URL.'v1/oauth2/token';
$this->post="grant_type=client_credentials";
$this->token=$this->curls('token');
}
//Invoice
public function invoice($data)
{
$this->getToken();
$this->url=URL.'v1/payments/payment';
$this->post=$data;
var_dump($this->curls('invoice'));
}
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 - #5 Pegando o Token
Nesse tutorial começamos a trabalhar literalmente com a API do PayPal, utilizando pra isso a lib PayPal Plus que é a utilizada no Brasil.
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.