/**
  * Return available payment methods
  *
  * @return array
  */
 public function toOptionArray()
 {
     $methods = [];
     //default empty value
     $methods[] = ["value" => "", "label" => ""];
     $accessToken = $this->scopeConfig->getValue(self::XML_PATH_ACCESS_TOKEN, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
     $clientId = $this->scopeConfig->getValue(self::XML_PATH_CLIENT_ID, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
     $clientSecret = $this->scopeConfig->getValue(self::XML_PATH_CLIENT_SECRET, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
     $meHelper = $this->coreHelper;
     if (empty($accessToken) && !$meHelper->isValidClientCredentials($clientId, $clientSecret)) {
         return $methods;
     }
     //if accessToken is empty uses clientId and clientSecret to obtain it
     if (empty($accessToken)) {
         $accessToken = $meHelper->getAccessToken();
     }
     $country = $this->scopeConfig->getValue('payment/mercadopago/country', 'website', $this->_switcher->getWebsiteId());
     $meHelper->log("Get payment methods by country... ", 'mercadopago');
     $meHelper->log("API payment methods: " . "/v1/payment_methods?access_token=" . $accessToken, 'mercadopago');
     $response = \MercadoPago_Core_Lib_RestClient::get('/sites/' . strtoupper($country) . '/payment_methods?marketplace=NONE');
     $meHelper->log("API payment methods", 'mercadopago', $response);
     if (isset($response['error'])) {
         return $methods;
     }
     $response = $response['response'];
     foreach ($response as $m) {
         if (isset($m['id']) && $m['id'] != 'account_money') {
             $methods[] = ['value' => $m['id'], 'label' => __($m['name'])];
         }
     }
     return $methods;
 }
Ejemplo n.º 2
0
 /**
  * Return key sorted shop item categories
  * @return array
  */
 public function toOptionArray()
 {
     $this->coreHelper->log("Get Categories... ", 'mercadopago');
     $response = \MercadoPago_Core_Lib_RestClient::get("/item_categories");
     $this->coreHelper->log("API item_categories", 'mercadopago', $response);
     $response = $response['response'];
     $cat = array();
     $count = 0;
     foreach ($response as $v) {
         //force category others first
         if ($v['id'] == "others") {
             $cat[0] = ['value' => $v['id'], 'label' => __($v['description'])];
         } else {
             $count++;
             $cat[$count] = ['value' => $v['id'], 'label' => __($v['description'])];
         }
     }
     //force order by key
     ksort($cat);
     return $cat;
 }
Ejemplo n.º 3
0
 /**
  * Generic resource delete
  * @param uri
  * @param data
  * @param params
  */
 public function delete($uri, $params = null)
 {
     $params = is_array($params) ? $params : array();
     $access_token = $this->get_access_token();
     $params["access_token"] = $access_token;
     if (count($params) > 0) {
         $uri .= strpos($uri, "?") === false ? "?" : "&";
         $uri .= $this->build_query($params);
     }
     $result = MercadoPago_Core_Lib_RestClient::delete($uri);
     return $result;
 }