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 ());
}
$ credential = new Credential ("{MERCHANTID} ", "{MERCHANTKEY} ", Environment ::SANDBOX );
$ gateway = new Gateway ($ credential );
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 ();
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
$ response = $ gateway ->Authorize ($ transaction );
$ response = $ gateway ->Sale ($ transaction );
$ 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 );
$ response = $ gateway ->Paypal ($ transaction );
Pagamento agendado ( Recorrência)
$ response = $ gateway ->Rebill ($ transaction );
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é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