You are here

function commerce_robokassa_payment_methods_list in Commerce robokassa 7.2

2 calls to commerce_robokassa_payment_methods_list()
commerce_robokassa_settings_form in ./commerce_robokassa.module
Payment method callback: settings form.
commerce_robokassa_submit_form in ./commerce_robokassa.module
Payment method callback: adds a message and CSS to the submission form.

File

./commerce_robokassa.module, line 591
Drupal Commerce Robokassa payment method.

Code

function commerce_robokassa_payment_methods_list($settings) {
  $url = 'https://auth.robokassa.ru/Merchant/WebService/Service.asmx/GetCurrencies';
  global $language;
  $lang = $language->language == 'ru' ? 'ru' : 'en';
  $data = array(
    'MerchantLogin' => $settings['MrchLogin'],
    'Language' => $lang,
  );
  $full_url = url($url, array(
    'query' => $data,
  ));
  $result = drupal_http_request($full_url);
  $xmlstring = $result->data;
  $xml = simplexml_load_string($xmlstring, "SimpleXMLElement", LIBXML_NOCDATA);
  $json = json_encode($xml);
  $array = json_decode($json, TRUE);
  $ret = array();
  foreach ($array['Groups'] as $groups) {
    foreach ($groups as $group) {
      foreach ($group['Items'] as $item) {
        if (isset($item['@attributes'])) {
          $item = array(
            $item,
          );
        }
        foreach ($item as $currency) {
          $ret[$currency['@attributes']['Label']] = $currency['@attributes']['Name'];
        }
      }
    }
  }
  return $ret;
}