2017 © Pedro Peláez
 

library stelo-sdk

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

image

gpupo/stelo-sdk

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  • Tuesday, October 24, 2017
  • by gpupo
  • Repository
  • 2 Watchers
  • 2 Stars
  • 43 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 19 Versions
  • 0 % Grown

The README.md

Build Status Scrutinizer Code Quality Code Climate Test Coverage Paypal Donations, (*1)

stelo-sdk

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br, (*2)

Requisitos


Instalação

Adicione o pacote stelo-sdk ao seu projeto utilizando composer:, (*3)

composer require gpupo/stelo-sdk

Uso

Setup Inicial


//... use Gpupo\SteloSdk\Factory; $steloSdk = Factory::getInstance()->setup([ 'client_id' => 'foo', 'client_secret' => 'bar', 'version' => 'sandbox', 'login_version' => 'login', 'redirect_url' => 'http://localhost/notify', ]);
Parâmetro Descrição Valores possíveis
client_id Chave da loja string
client_secret Token de autorização da aplicação string
version Identificação do Ambiente sandbox, api (produção)
redirect_url Controller para notificação de Login Url própria
login_version Ambiente de Login login.hml (sandbox), login (produção)
registerPath Quando informado, registra no diretório informado, os dados de cada requisição executada

Transações

Nos exemplos abaixo considere que $data possui esta estrutura;, (*4)

Criação de uma nova transação

``` PHP $order = $steloSdk->createOrder($data); $manager = $steloSdk->factoryManager('transaction'); $transaction = $manager->createFromOrder($order);, (*5)

$checkoutUrl = $transaction->getCheckoutUrl(); echo $transaction->getId(); //143800246128360, (*6)


#### Redireciona Cliente para a Url de checkout ``` HTML <html> <body> <?php echo $steloSdk->createLightbox($checkoutUrl); ?> </body> </html>

Consulta de transação

``` PHP, (*7)

$transaction = $steloSdk->factoryManager('transaction') ->findById('143800246128360'); echo $transaction->getStatusCode(); // N echo $transaction->getStatusMessage(); // Cancelada echo $transaction->getAmount(); // 134.9, (*8)


#### Cancelar uma transação ``` PHP $transaction = $steloSdk->factoryManager('transaction') ->deleteById('143800246128360');

Registro (log)

``` PHP, (*9)

//... use Monolog\Logger; use Monolog\Handler\StreamHandler; //.. $logger = new Logger('foo'); $logger->pushHandler(new StreamHandler('Resources/logs/main.log', Logger::DEBUG)); $steloSdk->setLogger($logger);, (*10)


## Login com Stelo A integração com o Login Stelo tem o objetivo de reduzir os passos para o checkout com foco no cadastro do cliente, com ela é possível recuperar os dados do cliente na Stelo e utilizar em sua loja #### Url para redirecionar o Cliente (passo 1) $auth = $steloSdk->factoryManager('auth'); Token utilizado para proteção contra CSRF o qual deve ser adicionado à Session do Cliente e comparado na avaliação do Retorno da autenticação: $csrfToken = $auth->getCsrfToken(); Url Para Redirecionamento: $url = $auth->getAuthorizeUrl(); Exemplo de Url: https://login.html.stelo.com.br/sso/auth/v1/autorize?client_id=foo&response_type=code&state=889fa52ff915&scope=user_profile.all&redirect_url=https://www.example.com/notify ### Obtenção de ``$code`` (passo 2) ``$code`` é obtido no passo 2 que deve ser implementado independente da SDK, onde se recebe o parâmetro GET ``code`` no controlador informado da loja (parâmetro ``redirect_url`` informado no Setup Inicial); Deve ser comparado o CSRF Token da Session do Cliente com o parâmetro GET ``state`` Exemplo de Url: https://www.example.com/notify?code=xxxxxxxxxxxx&state=889fa52ff915 #### Uso do code para acesso ao token (passo 3) $access_token = $steloSdk->factoryManager('auth')->requestToken($code); #### Acesso aos dados do cliente (passo 4) $customer = $steloSdk->factoryManager('auth')->requestCustomer($access_token); Veja mais detalhes sobre as propriedades de ``$customer`` na documentação do objeto. ## Comandos [![asciicast](https://asciinema.org/a/28052.png)](https://asciinema.org/a/28052) Lista de comandos disponíveis: ./bin/main Verificar a situação de uma transação: ./bin/main transaction:find Criar uma transação a partir de uma fixture: ./bin/main transaction:create --order_json_file=Resources/fixtures/order.input.json Você poder criar um arquivo chamado ``app.json`` com suas configurações personalizadas, as quais serão utilizadas na linha de comando: ``` JSON { "client_id": "foo", "client_secret": "bar" }

Utilize como modelo o arquivo app.json.dist, (*11)

Dica: Verifique os logs gerados em Resources/logs/main.log, (*12)


Licença

MIT © Gilmar Pupo, (*13)


Desenvolvimento

Instalação:

git clone --depth=1  git@github.com:gpupo/stelo-sdk.git

cd stelo-sdk;

ant composer;

Rode os testes localmente:

$ phpunit

Documentação

Fluxo de Login

Fluxo de Login, (*14)

Fluxo de Transação

Fluxo de Transação, (*15)

Propriedades dos objetos

A lista abaixo é gerada automaticamente a partir da saída da execução dos testes unitários:, (*16)

Auth\Customer

  • Possui método getCustomerName() para acessar CustomerName
  • Possui método setCustomerName() que define CustomerName
  • Possui método getCustomerEmail() para acessar CustomerEmail
  • Possui método setCustomerEmail() que define CustomerEmail
  • Possui método getBirthDate() para acessar BirthDate
  • Possui método setBirthDate() que define BirthDate
  • Possui método getGender() para acessar Gender
  • Possui método setGender() que define Gender
  • Possui método getPhone() para acessar Phone
  • Possui método setPhone() que define Phone
  • Possui método getCpf() para acessar Cpf
  • Possui método setCpf() que define Cpf
  • Possui método getRg() para acessar Rg
  • Possui método setRg() que define Rg
  • Possui método getAddress() para acessar Address
  • Possui método setAddress() que define Address
  • Entidade é uma Coleção

Auth\Manager

  • Fornece token utilizado para proteção contra csrf
  • Informa a url para onde o cliente será direcionado
  • Acesso ao objeto token
  • Acesso ao objeto customer

Auth\Token

  • Possui método getAccessToken() para acessar AccessToken
  • Possui método setAccessToken() que define AccessToken
  • Possui método getTokenType() para acessar TokenType
  • Possui método setTokenType() que define TokenType
  • Possui método getExpiresIn() para acessar ExpiresIn
  • Possui método setExpiresIn() que define ExpiresIn
  • Possui método getScope() para acessar Scope
  • Possui método setScope() que define Scope
  • Possui método getState() para acessar State
  • Possui método setState() que define State
  • Entidade é uma Coleção

Client\Client

  • Acesso ao client
  • Sucesso ao definir options
  • Gerencia uri de recurso

Customer\Address

  • Possui método getAlias() para acessar Alias
  • Possui método setAlias() que define Alias
  • Possui método getStreet() para acessar Street
  • Possui método setStreet() que define Street
  • Possui método getNumber() para acessar Number
  • Possui método setNumber() que define Number
  • Possui método getComplement() para acessar Complement
  • Possui método setComplement() que define Complement
  • Possui método getNeighborhood() para acessar Neighborhood
  • Possui método setNeighborhood() que define Neighborhood
  • Possui método getZipCode() para acessar ZipCode
  • Possui método setZipCode() que define ZipCode
  • Possui método getCity() para acessar City
  • Possui método setCity() que define City
  • Possui método getState() para acessar State
  • Possui método setState() que define State
  • Possui método getCountry() para acessar Country
  • Possui método setCountry() que define Country
  • Entidade é uma Coleção

Customer\BillingAddress

  • Possui método getAlias() para acessar Alias
  • Possui método setAlias() que define Alias
  • Possui método getStreet() para acessar Street
  • Possui método setStreet() que define Street
  • Possui método getNumber() para acessar Number
  • Possui método setNumber() que define Number
  • Possui método getComplement() para acessar Complement
  • Possui método setComplement() que define Complement
  • Possui método getNeighborhood() para acessar Neighborhood
  • Possui método setNeighborhood() que define Neighborhood
  • Possui método getZipCode() para acessar ZipCode
  • Possui método setZipCode() que define ZipCode
  • Possui método getCity() para acessar City
  • Possui método setCity() que define City
  • Possui método getState() para acessar State
  • Possui método setState() que define State
  • Possui método getCountry() para acessar Country
  • Possui método setCountry() que define Country
  • Entidade é uma Coleção

Customer\Phone\Item

  • Possui método getPhoneType() para acessar PhoneType
  • Possui método setPhoneType() que define PhoneType
  • Possui método getNumber() para acessar Number
  • Possui método setNumber() que define Number
  • Possui método getType() para acessar Type
  • Possui método setType() que define Type
  • Entidade é uma Coleção

Customer\ShippingAddress

  • Possui método getAlias() para acessar Alias
  • Possui método setAlias() que define Alias
  • Possui método getStreet() para acessar Street
  • Possui método setStreet() que define Street
  • Possui método getNumber() para acessar Number
  • Possui método setNumber() que define Number
  • Possui método getComplement() para acessar Complement
  • Possui método setComplement() que define Complement
  • Possui método getNeighborhood() para acessar Neighborhood
  • Possui método setNeighborhood() que define Neighborhood
  • Possui método getZipCode() para acessar ZipCode
  • Possui método setZipCode() que define ZipCode
  • Possui método getCity() para acessar City
  • Possui método setCity() que define City
  • Possui método getState() para acessar State
  • Possui método setState() que define State
  • Possui método getCountry() para acessar Country
  • Possui método setCountry() que define Country
  • Entidade é uma Coleção

Factory

  • Centraliza acesso a managers
  • Centraliza criacao de objetos

Order\Customer

  • Possui método getCustomerName() para acessar CustomerName
  • Possui método setCustomerName() que define CustomerName
  • Possui método getCustomerEmail() para acessar CustomerEmail
  • Possui método setCustomerEmail() que define CustomerEmail
  • Possui método getBirthDate() para acessar BirthDate
  • Possui método setBirthDate() que define BirthDate
  • Possui método getGender() para acessar Gender
  • Possui método setGender() que define Gender
  • Possui método getPhone() para acessar Phone
  • Possui método setPhone() que define Phone
  • Possui método getCustomerIdentity() para acessar CustomerIdentity
  • Possui método setCustomerIdentity() que define CustomerIdentity
  • Possui método getBillingAddress() para acessar BillingAddress
  • Possui método setBillingAddress() que define BillingAddress
  • Possui método getShippingAddress() para acessar ShippingAddress
  • Possui método setShippingAddress() que define ShippingAddress
  • Entidade é uma Coleção

Order\Order

  • Possui método getId() para acessar Id
  • Possui método setId() que define Id
  • Possui método getTransactionType() para acessar TransactionType
  • Possui método setTransactionType() que define TransactionType
  • Possui método getShippingBehavior() para acessar ShippingBehavior
  • Possui método setShippingBehavior() que define ShippingBehavior
  • Possui método getCountry() para acessar Country
  • Possui método setCountry() que define Country
  • Possui método getCart() para acessar Cart
  • Possui método setCart() que define Cart
  • Possui método getPayment() para acessar Payment
  • Possui método setPayment() que define Payment
  • Possui método getCustomer() para acessar Customer
  • Possui método setCustomer() que define Customer
  • Possui método getChangeShipment() para acessar ChangeShipment
  • Possui método setChangeShipment() que define ChangeShipment
  • Entidade é uma Coleção

Order\Payment

  • Possui método getAmount() para acessar Amount
  • Possui método setAmount() que define Amount
  • Possui método getFreight() para acessar Freight
  • Possui método setFreight() que define Freight
  • Possui método getCurrency() para acessar Currency
  • Possui método setCurrency() que define Currency
  • Possui método getMaxInstallment() para acessar MaxInstallment
  • Possui método setMaxInstallment() que define MaxInstallment
  • Entidade é uma Coleção

Transaction\Manager

  • É usado para criar uma nova transação
  • Permite consulta a uma transação específica
  • Permite o cancelamento de uma transação específica
  • Falha ao tentar cancelar uma transação inexistente ou em situação que não permita tal operação

Transaction\Transaction

  • Possui id
  • Possui url de checkout
  • Possui status code
  • Possui identificação de situação atual
  • Possui valor da transação
  • Possui valor de frete
  • Possui método getId() para acessar Id
  • Possui método setId() que define Id
  • Possui método getStatusCode() para acessar StatusCode
  • Possui método setStatusCode() que define StatusCode
  • Possui método getStatusMessage() para acessar StatusMessage
  • Possui método setStatusMessage() que define StatusMessage
  • Possui método getFreight() para acessar Freight
  • Possui método setFreight() que define Freight
  • Possui método getAmount() para acessar Amount
  • Possui método setAmount() que define Amount
  • Possui método getCheckoutUrl() para acessar CheckoutUrl
  • Possui método setCheckoutUrl() que define CheckoutUrl
  • Entidade é uma Coleção

View\Lightbox

  • Possui url para redirecionamento do comprador
  • Imprime javascript que redireciona o navegador do comprador

The Versions

24/10 2017

dev-master

9999999-dev https://opensource.gpupo.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

by Gilmar Pupo

api sdk stelo

24/10 2017

v1.3.1

1.3.1.0 https://opensource.gpupo.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

by Gilmar Pupo

api sdk stelo

08/08 2016

1.3.0

1.3.0.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

by Gilmar Pupo

api sdk stelo

14/01 2016

1.2.6

1.2.6.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

15/09 2015

1.2.5

1.2.5.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

14/09 2015

1.2.4

1.2.4.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

10/09 2015

1.2.3

1.2.3.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

09/09 2015

1.2.2

1.2.2.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

02/09 2015

1.2.1

1.2.1.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

19/08 2015

1.2.0

1.2.0.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

10/08 2015

1.1

1.1.0.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

06/08 2015

1.0.7

1.0.7.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

06/08 2015

1.0.6

1.0.6.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

05/08 2015

1.0.5

1.0.5.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

30/07 2015

1.0.4

1.0.4.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

30/07 2015

1.0.3

1.0.3.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

30/07 2015

1.0.2

1.0.2.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

29/07 2015

1.0.1

1.0.1.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo

29/07 2015

1.0

1.0.0.0 http://www.g1mr.com/stelo-sdk/

SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br

  Sources   Download

MIT

The Requires

 

The Development Requires

by Gilmar Pupo

api sdk stelo