braspag/braspag-php-sdk

This package is abandoned and no longer maintained. No replacement package was suggested.

SDK para integração com plataforma Braspag

0.4 2019-03-09 14:02 UTC

This package is auto-updated.

Last update: 2022-12-27 10:11:21 UTC


README

SDK para integração simplificada nos serviços da plataforma Braspag

Develop Master
Build Status Build Status

Para documentação completa das APIs e manuais, acesse http://braspag.github.io/

Índice

Features

  • Instalação simplificada utilizando Composer, sem necessidade de arquivos de configuração
  • Endpoints Braspag já configurados no pacote
  • Seleção de ambientes Sandbox ou Production
  • Client para a API Braspag Auth (Obtenção de tokens de acesso)
  • Client para a API de pagamentos Recorrentes
  • Client para a API do Pagador (Autorização, Captura, Cancelamento/Estorno, Consulta)
  • Client para a API do Cartão Protegido (Salvar cartão, Recuperar cartão, Invalidar cartão)
  • Client para a API de análises do Velocity

Dependências

  • PHP >= 5.6.37
  • ext-curl
  • ext-json

Instalação

Caso já possua um arquivo composer.json, adicione a seguinte dependência ao seu projeto:

"require": {
    "braspag/braspag-php-sdk": "*"
}

Com a dependência adicionada ao composer.json, execute o comando:

composer install

De forma alternativa, a instalação pode ser realizada executando o comando abaixo diretamente em seu terminal:

composer require braspag/braspag-php-sdk

Exemplos de Uso

Pagador

Para criar uma transação utilizando cartão de crédito:

/* Criação do Cliente Pagador */
$credentials = new MerchantCredentials("ID_DA_LOJA", "CHAVE_DA_LOJA");
$options = new PagadorClientOptions($credentials, Environment::SANDBOX);
$pagadorClient = new PagadorClient($options);

/* Preenchimento do objeto SaleRequest */
$request = new SaleRequest();
$request->MerchantOrderId = "123456789";
$request->Customer = new CustomerData();
$request->Customer->Name = "Bjorn Ironside";
$request->Customer->Identity = "762.502.520-96";
$request->Customer->IdentityType = "CPF";
$request->Customer->Email = "bjorn.ironside@vikings.com.br";
$request->Payment = new PaymentDataRequest();
$request->Payment->Provider = "Simulado";
$request->Payment->Type = "CreditCard";
$request->Payment->Currency = "BRL";
$request->Payment->Country = "BRA";
$request->Payment->Amount = 150000;
$request->Payment->Installments = 1;
$request->Payment->SoftDescriptor = "Braspag SDK";
$request->Payment->CreditCard = new CreditCardData();
$request->Payment->CreditCard->CardNumber = "4485623136297301";
$request->Payment->CreditCard->Holder = "BJORN IRONSIDE";
$request->Payment->CreditCard->ExpirationDate = "12/2025";
$request->Payment->CreditCard->SecurityCode = "123";
$request->Payment->CreditCard->Brand = "visa";

/* Obtenção do resultado da operação */
$response = $pagadorClient->createSale($request);

Para criar uma transação utilizando cartão de débito:

/* Criação do Cliente Pagador */
$credentials = new MerchantCredentials("ID_DA_LOJA", "CHAVE_DA_LOJA");
$options = new PagadorClientOptions($credentials, Environment::SANDBOX);
$pagadorClient = new PagadorClient($options);

/* Preenchimento do objeto SaleRequest */
$request = new SaleRequest();
$request->MerchantOrderId = "123456789";
$request->Customer = new CustomerData();
$request->Customer->Name = "Bjorn Ironside";
$request->Customer->Identity = "762.502.520-96";
$request->Customer->IdentityType = "CPF";
$request->Customer->Email = "bjorn.ironside@vikings.com.br";
$request->Payment = new PaymentDataRequest();
$request->Payment->Provider = "Simulado";
$request->Payment->Type = "DebitCard";
$request->Payment->Currency = "BRL";
$request->Payment->Country = "BRA";
$request->Payment->Amount = 150000;
$request->Payment->Installments = 1;
$request->Payment->SoftDescriptor = "Braspag SDK";
$request->Payment->ReturnUrl = "http://www.sualoja.com/url-de-retorno";
$request->Payment->Authenticate = true;
$request->Payment->DebitCard = new DebitCardData();
$request->Payment->DebitCard->CardNumber = "4485623136297301";
$request->Payment->DebitCard->Holder = "BJORN IRONSIDE";
$request->Payment->DebitCard->ExpirationDate = "12/2025";
$request->Payment->DebitCard->SecurityCode = "123";
$request->Payment->DebitCard->Brand = "visa";

/* Obtenção do resultado da operação */
$response = $pagadorClient->createSale($request);

Para criar uma transação utilizando boleto registrado:

/* Criação do Cliente Pagador */
$credentials = new MerchantCredentials("ID_DA_LOJA", "CHAVE_DA_LOJA");
$options = new PagadorClientOptions($credentials, Environment::SANDBOX);
$pagadorClient = new PagadorClient($options);

/* Preenchimento do objeto SaleRequest */
$request = new SaleRequest();
$request->MerchantOrderId = "123456789";
$request->Customer = new CustomerData();
$request->Customer->Name = "Bjorn Ironside";
$request->Customer->Identity = "762.502.520-96";
$request->Customer->IdentityType = "CPF";
$request->Customer->Email = "bjorn.ironside@vikings.com.br";
$request->Payment = new PaymentDataRequest();
$request->Payment->Provider = "Simulado";
$request->Payment->Type = "Boleto";
$request->Payment->Currency = "BRL";
$request->Payment->Country = "BRA";
$request->Payment->Amount = 150000;
$request->Payment->BoletoNumber = "2017091101";
$request->Payment->Assignor = "Braspag";
$request->Payment->Demonstrative = "Texto demonstrativo";
$request->Payment->ExpirationDate = "2019-03-20";
$request->Payment->Identification = "11017523000167";
$request->Payment->Instructions = "Aceitar somente até a data de vencimento.";

/* Obtenção do resultado da operação */
$response = $pagadorClient->createSale($request);

Cartão Protegido

Para salvar um cartão de crédito em um cofre PCI:

/* Criação do Cliente Cartão Protegido */
$credentials = new MerchantCredentials("CHAVE_DA_LOJA");
$options = new CartaoProtegidoClientOptions($credentials, Environment::SANDBOX);
$cartaoProtegidoClient = new CartaoProtegidoClient($options);

/* Preenchimento do objeto SaveCreditCardRequest */
$request = new SaveCreditCardRequest();
$request->CustomerName = "Bjorn Ironside";
$request->CustomerIdentification = "762.502.520-96";
$request->CardHolder = "BJORN IRONSIDE";
$request->CardExpiration = "10/2025";
$request->CardNumber = "1000100010001000";

/* Obtenção do resultado da operação */
$response = $cartaoProtegidoClient->saveCreditCard($request);

Para obter os dados de um cartão de crédito previamente salvo em cofre PCI:

/* Criação do Cliente Cartão Protegido */
$credentials = new MerchantCredentials("CHAVE_DA_LOJA");
$options = new CartaoProtegidoClientOptions($credentials, Environment::SANDBOX);
$cartaoProtegidoClient = new CartaoProtegidoClient($options);

/* Preenchimento do objeto GetCreditCardRequest */
$request = new GetCreditCardRequest();
$request->JustClickKey = "CREDITCARD_TOKEN";

/* Obtenção do resultado da operação */
$response = $cartaoProtegidoClient->getCreditCard($request);

Velocity

Análise de uma transação com o Velocity:

/* Criação do Token de Acesso OAUTH via Braspag Auth */
$authRequest = new AccessTokenRequest();
$authRequest->GrantType = OAuthGrantType::ClientCredentials;
$authRequest->ClientId = "CLIENT_ID";
$authRequest->ClientSecret = "CLIENT_SECRET";
$authRequest->Scope = "VelocityApp";

$clientOptions = new ClientOptions();
$clientOptions->Environment = Environment::SANDBOX;
$braspagAuthClient = new BraspagAuthClient($clientOptions);

/* Obtenção do Token de Acesso */
$authResponse = $braspagAuthClient->createAccessToken($authRequest);

/* Criação do Cliente Velocity */
$credentials = new MerchantCredentials("MERCHANT_ID", $authResponse->Token);
$options = new VelocityClientOptions($credentials);
$velocityClient = new VelocityClient($options);

/* Preenchimento do objeto AnalysisRequest */
$transaction = new TransactionData();
$transaction->OrderId = uniqid();
$transaction->Date = date('Y-m-d H:i:s');
$transaction->Amount = 1000;

$card = new CardData();
$card->Holder = "BJORN IRONSIDE";
$card->Brand = "visa";
$card->Number = "1000100010001000";
$card->Expiration = "10/2025";

$customer = new CustomerData();
$customer->Name = "Bjorn Ironside";
$customer->Identity = "76250252096";
$customer->IpAddress = "127.0.0.1";
$customer->Email = "bjorn.ironside@vikings.com.br";
$customer->BirthDate = "1982-06-30";

$phone = new PhoneData();
$phone->Type = "Cellphone";
$phone->Number = "999999999";
$phone->DDI = "55";
$phone->DDD = "11";
array_push($customer->Phones, $phone);

$billing = new AddressData();
$billing->Street = "Alameda Xingu";
$billing->Number = "512";
$billing->Neighborhood = "Alphaville";
$billing->City = "Barueri";
$billing->State = "SP";
$billing->Country = "BR";
$billing->ZipCode = "06455-030";
$customer->Billing = $billing;

$request = new AnalysisRequest();
$request->Transaction = $transaction;
$request->Card = $card;
$request->Customer = $customer;

/* Obtenção do resultado da operação */
$response = $velocityClient->performAnalysis($request);