app/Plugin/UnivaPay/Util/SDK.php line 25

Open in your IDE?
  1. <?php
  2. namespace Plugin\UnivaPay\Util;
  3. use Univapay\UnivapayClient;
  4. use Univapay\UnivapayClientOptions;
  5. use Univapay\Resources\Authentication\AppJWT;
  6. class SDK {
  7.     private $token;
  8.     private $client;
  9.     /**
  10.      * SDK constructor.
  11.      */
  12.     public function __construct(\Plugin\UnivaPay\Entity\Config $Config)
  13.     {
  14.         // init client
  15.         $clientOptions = new UnivapayClientOptions($Config->getApiUrl());
  16.         $this->token AppJWT::createToken($Config->getAppId(), $Config->getAppSecret());
  17.         $this->client = new UnivapayClient($this->token$clientOptions);
  18.     }
  19.     // get charge
  20.     public function getCharge($chargeId) {
  21.         return $this->client->getCharge($this->token->storeId$chargeId);
  22.     }
  23.     // get transaction token from charge id
  24.     public function getTransactionTokenByChargeId($chargeId) {
  25.         return $this->client->getTransactionToken($this->client->getCharge($this->token->storeId$chargeId)->transactionTokenId);
  26.     }
  27.     // get current charge from subscription id
  28.     public function getChargeBySubscriptionId($subscriptionId) {
  29.         return current($this->client->getSubscription($this->token->storeId$subscriptionId)->listCharges()->items);
  30.     }
  31.     // get subscription by charge id
  32.     public function getSubscriptionByChargeId($chargeId) {
  33.         return $this->client->getSubscription($this->token->storeId$this->getCharge($chargeId)->subscriptionId);
  34.     }
  35.     // get subscription by subscription id
  36.     public function getSubscription($subscriptionId) {
  37.         return $this->client->getSubscription($this->token->storeId$subscriptionId);
  38.     }
  39. }