public function executeDebit($id_cart, $amount = NULL, $close_flag = 1) { $disposition = PSCDisposition::getByCartId((int) $id_cart); if (!array_key_exists('id_disposition', $disposition)) { die(Tools::displayError()); } if (!isset($amount) || $amount === '') { $amount = $disposition['amount']; } $result = PSCPrepaidServicesAPI::executeDebit($this->getAPIConfiguration($disposition['currency']), Configuration::get($this->prefix . 'MERCHANT_ID_' . $disposition['currency']), $disposition['mtid'], number_format($amount, 2, '.', ''), $disposition['currency'], $close_flag); if ($result[0] == 0) { if ($amount == $disposition['amount'] || $close_flag) { PSCDisposition::delete((int) $disposition['id_disposition']); } else { PSCDisposition::updateAmount((int) $disposition['id_disposition'], (double) $amount); } } return $result; }