/** * 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; }
/** * 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; }
/** * 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; }