$currency = $_SESSION['favcolor']['postedParam']['currency'];
$config['authorization'] = $GATEWAY['secretkey'];
$config['postedParam'] = array('trackId' => $invoiceId, 'value' => $_SESSION['favcolor']['postedParam']['value'], "chargeMode" => model_methods_creditcard::CHECKOUT_NON_PCI_CHARGE_MODE_NON_3D, 'currency' => $currency, 'autoCapture' => $_SESSION['favcolor']['postedParam']['autoCapture'], 'autoCapTime' => $_SESSION['favcolor']['postedParam']['autoCapTime'], 'cardToken' => $_REQUEST['cko-card-token'], 'email' => $_SESSION['favcolor']['postedParam']['email'], 'customerName' => $_SESSION['favcolor']['postedParam']['custName'], 'metadata' => $_SESSION['favcolor']['postedParam']['metadata']);
$respondCharge = $Api->createCharge($config);
$returnUrl = $OtherVariables["systemurl"] . "/viewinvoice.php?id=" . $invoiceId;
if ($Api->getExceptionState()->hasError()) {
    $message = 'Your payment was not completed.' . $Api->getExceptionState()->getErrorMessage() . ' and try again or contact customer support.';
    logTransaction($GATEWAY["name"], $message, "Unsuccessful");
    $_SESSION['checkout_error'] = true;
    $_SESSION['checkout_error_message'] = $message;
    header("Location:" . $returnUrl);
    exit;
}
$chargeId = is_object($respondCharge) ? $respondCharge->getId() : null;
$redirectUrl = is_object($respondCharge) ? $respondCharge->getRedirectUrl() : null;
if (!$respondCharge->isValid() || !model_methods_creditcard::responseValidation($respondCharge)) {
    $transactionMessage = !empty($chargeId) && empty($redirectUrl) ? ", transaction id - {$chargeId}" : '';
    logTransaction($GATEWAY["name"], "Your payment was not completed. Response is invalid for trackId - {$invoiceId}{$transactionMessage}. Action - authorize. Try again or contact customer support.", "Unsuccessful");
    $_SESSION['checkout_error'] = true;
    $_SESSION['checkout_error_message'] = 'Please check you card details and try again. Thank you';
    header("Location:" . $returnUrl);
    exit;
}
if ($redirectUrl) {
    $_SESSION['checkout_payment_token']['invoice_id'] = $invoiceId;
    $_SESSION['checkout_payment_token']['token'] = $respondCharge->getId();
    header("Location:" . $redirectUrl);
    exit;
}
$cardId = $respondCharge->getCard()->getId();
$amount = $Api->decimalToValue($respondCharge->getValue(), $currency);