public function createDisposition($cart)
 {
     $currency = new Currency((int) $cart->id_currency);
     $language = $this->_getSupportedLanguageIsoById($this->context->language->id);
     $mid = Configuration::get($this->prefix . 'MERCHANT_ID_' . $currency->iso_code);
     $mtid = $cart->id . '-' . time();
     $amount = number_format((double) $cart->getOrderTotal(true, Cart::BOTH), 2, '.', '');
     $currency_iso = $currency->iso_code;
     $business_type = Configuration::get($this->prefix . 'BUSINESS_TYPE');
     $reporting_criteria = '';
     $hash = md5(Configuration::get($this->prefix . 'SALT') + $amount + $currency_iso);
     $ok_url = Tools::getShopDomainSsl(true, true) . _MODULE_DIR_ . $this->name . '/payment.php?hash=' . $hash;
     $nok_url = Tools::getShopDomainSsl(true, true) . (_PS_VERSION_ < '1.5') . __PS_BASE_URI__ . '/order.php?step=3' ? '' : 'index.php?controller=order&step=3';
     list($return_code, $error_code, $message) = PSCPrepaidServicesAPI::createDisposition($this->getAPIConfiguration($currency_iso), $mid, $mtid, $amount, $currency_iso, $ok_url, $nok_url, $business_type, $reporting_criteria);
     if ($return_code == 0) {
         PSCDisposition::deleteByCartId((int) $cart->id);
         // Avoid duplicate disposition (canceled orders in CT for example)
         PSCDisposition::create((int) $cart->id, $mtid, $amount, $currency_iso);
         $message = $this->getPaymentUrlBase() . '?currency=' . $currency->iso_code . '&mid=' . $mid . '&mtid=' . $mtid . '&amount=' . $amount . '&language=' . $language;
     }
     return array('return_code' => $return_code, 'message' => $message);
 }