Example #1
0
function fn_mb_place_order($data)
{
    define('FORCE_SESSION_START', true);
    $order_id = 0;
    $mb_sess_id = base64_decode($data['mb_sess_id']);
    if (!empty($mb_sess_id)) {
        Session::resetId($mb_sess_id);
        $cart =& $_SESSION['cart'];
        $auth =& $_SESSION['auth'];
        list($order_id, $process_payment) = fn_place_order($cart, $auth);
        if (!empty($_REQUEST['order_id'])) {
            $data = array('order_id' => $order_id, 'type' => 'S', 'data' => TIME);
            db_query('REPLACE INTO ?:order_data ?e', $data);
            $data = array('order_id' => $order_id, 'type' => 'E', 'data' => $_REQUEST['inner_order_id']);
            db_query('REPLACE INTO ?:order_data ?e', $data);
        }
    }
    return $order_id;
}
Example #2
0
        $_return .= '&Signature=' . $sign;
        $_return .= '&aws-access-key-id=' . $aws_access_key;
    }
    echo $_return;
    exit;
} elseif ($message_recognizer == 'NewOrderNotification') {
    // Order was placed by Amazon checkout. We need to proceed the callback.
    list($amazon_sess_id, $payment_id) = explode(';', base64_decode((string) $xml->ProcessedOrder->ProcessedOrderItems->ProcessedOrderItem->CartCustomData->ClientRequestId));
    $processor_data = fn_get_payment_method_data($payment_id);
    // If we use the signed cart, validate the request
    if (!fn_amazon_validate_request($processor_data, $_POST)) {
        die('Access denied');
    }
    // Restart session
    if (!empty($amazon_sess_id)) {
        Session::resetId($amazon_sess_id);
        fn_payments_set_company_id(0, $_SESSION['settings']['company_id']['value']);
        $cart =& $_SESSION['cart'];
        $auth =& $_SESSION['auth'];
    }
    // Compare the cart data with the Amazon request
    if (!fn_amazon_validate_cart_data($cart, $xml)) {
        fn_set_notification('E', __('error'), 'text_amazon_incorrect_products_count');
        exit;
    }
    $transaction_id = (string) $xml->ProcessedOrder->AmazonOrderID;
    // Prevent the double notifications
    $reference_id = (string) $xml->NotificationReferenceId;
    if (!empty($_SESSION['reference_id']) && $_SESSION['reference_id'] == $reference_id) {
        exit;
    } else {