randler / adiq-php
Adiq PHP Library
Installs: 3 032
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 3
Open Issues: 1
Type:lib
Requires
- php: >=5.6.0
- guzzlehttp/guzzle: ^6.4
Requires (Dev)
- phpunit/phpunit: ^8
- squizlabs/php_codesniffer: ^3.3
README
Gateway Adiq PHP
Biblioteca desenvolvida para facilitar a comunicação com o gateway de pagamento Adiq.
Introdução
Essa SDK foi construída com o intuito de tornar flexível as chamadas dos metodos de pagamento, de forma que todos possam utilizar todas as features, de todas as versões de API.
Você pode acessar a documentação oficial da API acessando esse link.
Índice
- Instalação
- Configuração
- Requisição de Autenticação
- Requisição de Tokenização
- Requisição de Transação
- Requisição de Marketplace
Instalação
Instale a biblioteca utilizando o comando
composer require randler/adiq-php
Configuração
Para incluir a biblioteca em seu projeto, basta fazer o seguinte:
<?php require('vendor/autoload.php'); $adiq = new Adiq\Client();
Requisição de Autenticação
Nesta seção será explicado como realizar requisições autorização no Adiq.
Solicitando Access Token
<?php $optionRequestAuth = [ "grantType" => "client_credentials", ]; $sandbox = true; $key = new Key(); $key->setClientId("<CLIENT_ID>"); $key->setClientSecret("<CLIENT_SECRET>"); $client = new Client( ['Authorization' => $key->getKeyBase64()], $sandbox ); $client->auth()->token($optionRequestAuth);
Caso as chaves estajam corretas os dados de acesso serão armazenado no objeto $client
e podem ser visualizados com seus metodos get especificos. esse objeto pode ser usado para a requisição sem a necessidade de salvar o token, ou reenvia-lo ou remontar o header novamente.
Requisição de Tokenização
Nesta seção será explicado como realizar requisições para cartão pelok Adiq com essa biblioteca.
Token de Cartão
<?php $cardInfo = new CustomerCard(); $cardInfo->setCardNumber("5201561050025011"); $data_card = $cardInfo->getCardNumberData(); $response = $client->card()->create($data_card); ?>
Cofre de Cartão
Apos obter o numberToken do cartão, na requisição anterior, é possivel agora armazenar os dados do cartão.
<?php $numberToken = $response->numberToken; $cardInfo->setNumberToken($numberToken) ->setBrand("visa") ->setCardholderName("JOSE SILVA") ->setExpirationMonth("01") ->setExpirationYear("19") ->setVerifyCard(true) ->setSecurityCode("123"); $data_card = $cardInfo->getCardData(); $response = $client->card()->vaults($data_card); ?>
Requisição de transação
Com a requisição do $client
com o accessToken já armazenado é possivel fazer a solicitação de transação.
Criar Transação
// Requisição de token funcionando $client->auth()->token($optionRequestAuth); $payment = new PaymentData(); $payment->setTransactionType("credit") ->setAmount(1035) ->setCurrencyCode("brl") ->setProductType("avista") ->setInstallments(1) ->setCaptureType("ac") ->setRecurrent(false); $cardInfo = new CustomerCard(); $cardInfo->setVaultId("19e0c891-ff29-41a5-bc88-c4f253c7c2f5") ->setNumberToken("39c6426b-3160-41d2-9cbd-55b32410fe90") ->setCardholderName("JOSE SILVA") ->setSecurityCode("123") ->setBrand("visa") ->setExpirationMonth("01") ->setExpirationYear("19"); $sellerInfo = new SellerInfo(); $sellerInfo->setOrderNumber("00100000001"); /*->setSoftDescriptor("PAG*TESTE") ->setDynamicMcc("9999") ->setCavvUcaf("commerceauth") ->setEci("05") ->setXid("commerc") ->setProgramProtocol("2.0.1");*/ // Items de Sellers $item1 = new Items(); $item1->setId("P115DU90") ->setDescription("Produto 1") ->setAmount(345) ->setRatePercent(0) ->setRateAmount(0); $item2 = new Items(); $item2->setId("P115DU91") ->setDescription("Produto 2") ->setAmount(345) ->setRatePercent(0) ->setRateAmount(0); $item3 = new Items(); $item3->setId("P115DU92") ->setDescription("Produto 3") ->setAmount(345) ->setRatePercent(0) ->setRateAmount(0); $sellers1 = new Sellers(); $sellers1->setId("000A1") ->setAmount(690) ->setItems([ $item1->getItemsData(), $item2->getItemsData() ]); $sellers2 = new Sellers(); $sellers2->setId("00B1") ->setAmount(345) ->setItems([$item3->getItemsData()]); $sellers = new Sellers(); $sellers->addSellers($sellers1); $sellers->addSellers($sellers2); $data_request = [ 'payment' => $payment->getPaymentData(), 'cardInfo' => $cardInfo->getCardData(), 'sellerInfo' => $sellerInfo->getSellerInfoData(), //'sellers' => $sellers->getSellersData() // - opcional ]; $response = $client->payment()->create($data_request);
Detalhe de uma transação
$detail = $client ->payment() ->details([ 'id' => "020001409102281247420000012620420000000000" ]);
Cancelar uma transação
$cancel = $client ->payment() ->cancel([ 'id' => '010001410902281258440000012620480000000000' ]);
Capturar uma transação
$data_request = [ 'id' => '010001410902281258440000012620480000000000', 'amount' => 1035, //'sellers' => $sellers->getSellersData() ]; $capture = $client ->payment() ->capture($data_request);
Requisição de Marketplace
Unlock
$item1 = new Items(); $item1->setId("P115DU90") ->setAmount(345); $sellers1->setId("000A1") ->setAmount(345) ->setItems( $item1->getItemsMarketplaceData() ); $data_request = [ 'id' => '010001410902281258440000012620480000000000', "sellerId" => $sellers1->getId(), "amount" => $sellers1->getAmount(), "date" => date("Y-m-d"), "item" => $sellers1->getItems() ]; $marketplace = $client ->marketplace() ->unlock($data_request);
Update
$item1 = new Items(); $item1->setId("P115DU90") ->setAmount(345); $sellers1->setId("000A1") ->setAmount(345) ->setItems( $item1->getItemsMarketplaceData() ); $data_request = [ 'id' => '010001410902281258440000012620480000000000', "sellerId" => $sellers1->getId(), "amount" => $sellers1->getAmount(), "date" => date("Y-m-d"), "previousDate" => "2019-11-13", "item" => $sellers1->getItems() ]; $marketplace = $client ->marketplace() ->update($data_request);