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
Instalação via Composer
composer require sixbank/php-sdk-gateway
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 ::SIXBANK )
->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 ::SIXBANK )
->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