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 - #6 Criando a Fatura

22/02/2021

Nesse 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

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

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.
Saiba mais!
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!
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!