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