commerce_gc_client-8.x-1.9/src/Plugin/Commerce/ExchangerProvider/GoCardlessExchanger.php

src/Plugin/Commerce/ExchangerProvider/GoCardlessExchanger.php
<?php

namespace Drupal\commerce_gc_client\Plugin\Commerce\ExchangerProvider;

use Drupal\commerce_exchanger\Plugin\Commerce\ExchangerProvider\ExchangerProviderRemoteBase;
use Drupal\Component\Serialization\Json;
use GuzzleHttp\RequestOptions;

/**
 * Provides the transferwise.com exchange rates.
 *
 * @CommerceExchangerProvider(
 *   id = "gocardless",
 *   label = "GoCardless",
 *   display_label = "GoCardless",
 *   refresh_once = TRUE,
 *   enterprise = TRUE,
 * )
 */

class GoCardlessExchanger extends ExchangerProviderRemoteBase {

  /**
   * {@inheritdoc}
   */
  public function apiUrl() {}

  /**
   * {@inheritdoc}
   */
  public function getRemoteData($base_currency = NULL) {
    $data = NULL;
    $source = $this->isEnterprise() ? $base_currency : $this->getBaseCurrency();
    $partner = \Drupal::service('commerce_gc_client.gocardless_partner');
    foreach(['live', 'sandbox'] as $mode) {
      $result = $partner->api([
        'mode' => $mode,
        'endpoint' => 'currency_exchange_rates',
        'action' => 'list',
        'source' => $source,
      ]);
      if ($result && $result->response->status_code == 200) {
        $rates = $result->response->body->currency_exchange_rates;
        foreach ($rates as $rate) {
          $data[$rate->target] = (string) $rate->rate;
        }
        break;
      }
    }
    return $data;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc