grupoan/adiq-php

Adiq PHP Library

2.1.2 2022-08-11 02:42 UTC

This package is auto-updated.

Last update: 2024-05-11 06:34:10 UTC


README

Adiq

Gateway Adiq PHP

Biblioteca desenvolvida para facilitar a comunicação com o gateway de pagamento Adiq.

React Native is released under the MIT license. Versão Downloads

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

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);