sixbank / php-sdk-gateway
SDK PHP for Gateway
v1.0.11
2021-01-26 03:19 UTC
Requires
- php: >=7.2
- ext-json: *
README
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
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 |