Biblioteca desenvolvida para facilitar a comunicação com o gateway de pagamento Adiq.
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.
- Instalação
- Configuração
- Requisição de Autenticação
- Requisição de Tokenização
- Requisição de Transação
- Requisição de Marketplace
Instale a biblioteca utilizando o comando
composer require randler/adiq-php
Para incluir a biblioteca em seu projeto, basta fazer o seguinte:
<?php
require('vendor/autoload.php');
$adiq = new Adiq\Client();
Nesta seção será explicado como realizar requisições autorização no Adiq.
<?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.
Nesta seção será explicado como realizar requisições para cartão pelok Adiq com essa biblioteca.
<?php
$cardInfo = new CustomerCard();
$cardInfo->setCardNumber("5201561050025011");
$data_card = $cardInfo->getCardNumberData();
$response = $client->card()->create($data_card);
?>
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);
?>
Com a requisição do $client
com o accessToken já armazenado é possivel fazer a solicitação de 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);
$detail = $client
->payment()
->details([
'id' => "020001409102281247420000012620420000000000"
]);
$cancel = $client
->payment()
->cancel([
'id' => '010001410902281258440000012620480000000000'
]);
$data_request = [
'id' => '010001410902281258440000012620480000000000',
'amount' => 1035,
//'sellers' => $sellers->getSellersData()
];
$capture = $client
->payment()
->capture($data_request);
$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);
$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);