Giter Club home page Giter Club logo

braspagphpsdk's Introduction

Braspag SDK para PHP

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 = "[email protected]";
$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 = "[email protected]";
$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 = "[email protected]";
$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 = "[email protected]";
$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);

braspagphpsdk's People

Contributors

mauricifj avatar ricardoabdalla avatar rabdalla avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.