Skip to content

brunopazz/gateway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gateway de Pagamento - SDK PHP

Modalidades de pagamentos:

  • Cartão de crédito
  • Cartão de débito
  • Paypal Plus
  • Paypal Express Chekout
  • Pagseguro
  • Boleto bancário (Bradesco Shop Fácil e Itaú Shopline)
  • Transferência eletronica bancária (Itaú Shopline)

Recursos disponíveis

  • Parcelamento de pagamentos
  • Pagamentos agendados ( recorrências )
  • Análise de antifraude
  • Tokenização de cartões

Cartão de crédito (Exemplo)

 namespace Gateway\API;

    include_once "autoload.php";

    use Exception as Exception;

    try {
        $credential = new Credential("{{INSERT_MERCHANT_ID}}", "{{INSERT_TOKEN}}", Environment::SANDBOX);
        $gateway = new Gateway($credential);

        ### CREATE A NEW TRANSACTION
        $transaction = new Transaction();

        // Set ORDER
        $transaction->Order()
            ->setReference("ss")
            ->setTotalAmount(1000);

        // Set PAYMENT
        $transaction->Payment()
            ->setAcquirer(Acquirers::CIELO_V3)
            ->setMethod(Methods::CREDIT_CARD_INTEREST_BY_ISSUER)
            ->setCurrency(Currency::BRAZIL_BRAZILIAN_REAL_BRL)
            ->setCountry("BRA")
            ->setNumberOfPayments(2)
            ->setSoftDescriptor("Bruno paz")
            ->Card()
                ->setBrand(Brand::VISA)
                ->setCardHolder("Bruno paz")
                ->setCardNumber("2223000148400010")
                ->setCardSecurityCode("123")
                ->setCardExpirationDate("202001");

        // SET CUSTOMER
        $transaction->Customer()
            ->setCustomerIdentity("999999999")
            ->setName("Bruno")
            ->setCpf("30212212212")
            ->setEmail("brunopaz@test.com");

        // SET FRAUD DATA OBJECT
        $transaction->FraudData()
            ->setName("Bruno Paz")
            ->setDocument("30683882828")
            ->setEmail("brunopaz@g.com")
            ->setAddress("Rua test")
            ->setAddress2("Apartamento 23")
            ->setAddressNumber("300")
            ->setPostalCode("08742350")
            ->setCity("São Paulo")
            ->setState("SP")
            ->setCountry("BRASIL")
            ->setPhonePrefix("11")
            ->setPhoneNumber("99999-9999")
            ->setDevice("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36")
            ->setCostumerIP("192.168.0.1")
            ->setItems([
                ["productName" => "Iphone X", "quantity" => 1, "price" => "20.00"],
                ["productName" => "Iphone XL", "quantity" => 12, "price" => "1220.00"]
            ]);

        // Set URL RETURN
        $transaction->setUrlReturn("http://127.0.0.1:8989/return.php");

        // PROCESS - ACTION
        #$response = $gateway->sale($transaction);
        $response = $gateway->authorize($transaction);

        // REDIRECT IF NECESSARY (Debit uses)
        if ($response->isRedirect()) {
            $response->redirect();
        }

        // RESULTED
        if ($response->isAuthorized()) { // Action Authorized
            print "<br>RESULTED: " . $response->getStatus();
        } else { // Action Unauthorized
            print "<br>RESULTED:" . $response->getStatus();
        }

        // CAPTURE
        if ($response->canCapture()) {
            $response = $gateway->Capture($response->getTransactionID());
            print "<br>CAPTURED: " . $response->getStatus();
        }
        // CANCELL
        if ($response->canCancel()) {
            $response = $gateway->Cancel($response->getTransactionID());
            print "<br>CANCELED: " . $response->getStatus();
        }

        // REPORT
        $response = $gateway->Report($response->getTransactionID());
        print "<br>REPORTING: " . $response->getStatus();

    } catch (Exception $e) {
        print_r($e->getMessage());
    }

Credencias de acesso

$credential = new Credential("{MERCHANTID}", "{MERCHANTKEY}", Environment::SANDBOX);

Autenticação

$gateway = new Gateway($credential);

Ambientes disponíveis

Nome Descrição Constante de uso
TESTES Ambiente de testes Environment::SANDBOX
PRODUÇÃO Ambiente de produção Environment::PRODUCTION

Criando um nova transação de pagamento

$transaction = new Transaction();

Informando um pedido

  • setReference é usado como referência do pedido
  • setTotalAmount deve ser em centavos
// Set ORDER
$transaction->Order()
            ->setReference("Pedido123")
            ->setTotalAmount(1000);

Informando os dados do comprador

  • setCustomerIdentity é usado como referência do comprador (Deve ser único)
$transaction->Customer()
    ->setCustomerIdentity("999999999")
    ->setName("Bruno")
    ->setCpf("30212212212")
    ->setEmail("bruno@brunopaz.com");

Informando a forma de pagamento

  • setAcquirer define qual a operadora a ser utilizado, verifique tabela abaixo
  • setMethod define qual o método de pagamento a ser processado, verifique tabela abaixo
  • setNumberOfPayments define o parcelamento ( usado para Cartão de Crédito)
  • setSoftDescriptor texto a ser exibido na fatura do cartão do comprador
// Set PAYMENT
$transaction->Payment()
    ->setAcquirer(Acquirers::CIELO_V3)
    ->setMethod(Methods::CREDIT_CARD_INTEREST_BY_ISSUER)
    ->setCurrency(Currency::BRAZIL_BRAZILIAN_REAL_BRL)
    ->setCountry("BRA")
    ->setNumberOfPayments(2)
    ->setSoftDescriptor("Bruno paz")
    ->Card()
            ->setBrand(Brand::VISA)
            ->setCardHolder("Bruno paz")
            ->setCardNumber("2223000148400010")
            ->setCardSecurityCode("123")
            ->setCardExpirationDate("202001");

Informando a URL de retorno

A URL de retorno é utlizada para receber um POST e redirecionar o usuário a após a conclusão da operaçñao de pagamento

// Set URL RETURN
$transaction->setUrlReturn("http://127.0.0.1:8989/return.php");

Tipos de operações financeiras

Autorização (Pre-auth)

$response = $gateway->Authorize($transaction);

Venda Direta (auth)

$response = $gateway->Sale($transaction);

Captura (Capture)

$response = $gateway->Capture("{TransactionID}");

Cancelamento (Cancel | Void)

$response = $gateway->sale("{TransactionID}");

Tranferência Bancária (Transfer)

$response = $gateway->OnlineTransfer($transaction);

Boleto Bancário (Payment Bank Slip)

$response = $gateway->Boleto($transaction);

Paypal

$response = $gateway->Paypal($transaction);

Pagamento agendado ( Recorrência)

$response = $gateway->Rebill($transaction);

Códigos das operadoras

Operadora Constante
CIELO BUY PAGE LOJA Acquirers::CIELO_BUY_PAGE_LOJA
CIELO BUY PAGE CIELO Acquirers::CIELO_BUY_PAGE_CIELO
CIELO V3.0 (recente) Acquirers::CIELO_V3
REDE KOMERCI WEBSERVICE Acquirers::REDE_KOMERCI_WEBSERVICE
REDE: E-REDE (recente) Acquirers::REDE_E_REDE
PAGSEGURO Acquirers::PAGSEGURO
PAYPAL: EXPRESS CHECKOUT Acquirers::PAYPAL_EXPRESS_CHECKOUT
PAYPAL: PLUS Acquirers::PAYPAL_PLUS
PAGSEGURO: CHECKOUT EXPRESSO Acquirers::PAGSEGURO_CHECKOUT_EXPRESSO
BRADESCO (deprecado) Acquirers::BRADESCO
BRADESCO: SHOPFACIL (recente) Acquirers::BRADESCO_SHOPFACIL
ITAU: SHOPLINE Acquirers::ITAU_SHOPLINE
STONE Acquirers::STONE
ELAVON Acquirers::ELAVON
GETNET E-commerce Acquirers::GETNET
GETNET V1.0 (recente) Acquirers::GETNET_V1
GLOBAL PAYMENT Acquirers::GLOBAL_PAYMENT
FIRST DATA BIN Acquirers::FIRSTDATA
ADIQ Acquirers::ADIQ
WORLDPAY Acquirers::WORLDPAY
GRANITO Acquirers::GRANITO
SIXBANK Acquirers::SIXBANK

Códigos das bandeiras de cartões

Nome Constante
VISA Brand::VISA
MASTERCARD Brand::MASTERCARD
DINERS Brand::DINERS
DISCOVER Brand::DISCOVER
ELO Brand::ELO
AMEX Brand::AMEX
AURA Brand::AURA
JCB Brand::JCB
HYPERCARD Brand::HYPERCARD
SOROCRED Brand::SOROCRED
CABAL Brand::CABAL
MAESTRO Brand::MAESTRO
HIPER Brand::HIPER
CREDSYSTEM Brand::CREDSYSTEM
BANESCARD Brand::BANESCARD
CREDZ Brand::CREDZ

Métodos de pagamentos

Método de pagamento Constante
A Vista (Crédito) Methods::CREDIT_CARD_NO_INTEREST
Parcelamento loja (Crédito) Methods::CREDIT_CARD_INTEREST_BY_MERCHANT
Parcelamento Emissor (Crédito) Methods::CREDIT_CARD_INTEREST_BY_ISSUER
Cartão de débito Methods::DEBIT_CARD

Outros exemplos de modalidades de pagamentos

Modalidades de pagamentos Código-fonte
Boleto Bancário source / example
Cartão de Crédito source / example
Cartão de Débito source / example
Paypal source / example
Recorrência source / example
Transfência eletrônica source / example