SDK Não Oficial para integração a partir de aplicações PHP com as APIs da Stelo.com.br
- PHP >= 5.4
- curl extension
Adicione o pacote stelo-sdk ao seu projeto utilizando composer:
composer require gpupo/stelo-sdk
//...
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 |
Nos exemplos abaixo considere que $data
possui esta estrutura;
$order = $steloSdk->createOrder($data);
$manager = $steloSdk->factoryManager('transaction');
$transaction = $manager->createFromOrder($order);
$checkoutUrl = $transaction->getCheckoutUrl();
echo $transaction->getId(); //143800246128360
<html>
<body>
<?php echo $steloSdk->createLightbox($checkoutUrl); ?>
</body>
</html>
$transaction = $steloSdk->factoryManager('transaction')
->findById('143800246128360');
echo $transaction->getStatusCode(); // N
echo $transaction->getStatusMessage(); // Cancelada
echo $transaction->getAmount(); // 134.9
$transaction = $steloSdk->factoryManager('transaction')
->deleteById('143800246128360');
//...
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
//..
$logger = new Logger('foo');
$logger->pushHandler(new StreamHandler('Resources/logs/main.log', Logger::DEBUG));
$steloSdk->setLogger($logger);
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
$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
$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
$access_token = $steloSdk->factoryManager('auth')->requestToken($code);
$customer = $steloSdk->factoryManager('auth')->requestCustomer($access_token);
Veja mais detalhes sobre as propriedades de $customer
na documentação do objeto.
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:
{
"client_id": "foo",
"client_secret": "bar"
}
Utilize como modelo o arquivo app.json.dist
Dica: Verifique os logs gerados em Resources/logs/main.log
git clone --depth=1 git@github.com:gpupo/stelo-sdk.git
cd stelo-sdk;
ant composer;
$ phpunit
A lista abaixo é gerada automaticamente a partir da saída da execução dos testes unitários:
- 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
- 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
- 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
- Acesso ao client
- Sucesso ao definir options
- Gerencia uri de recurso
- 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
- 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
- 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
- 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
- Centraliza acesso a managers
- Centraliza criacao de objetos
- 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
- 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
- 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
- É 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
- 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
- Possui url para redirecionamento do comprador
- Imprime javascript que redireciona o navegador do comprador