Как передать переменные клиента Coldfusion через домены - PullRequest
0 голосов
/ 01 февраля 2010

Мы создаем решение для электронной коммерции coldfusion (для поставщика решений для корзины покупок).Система использует клиентские переменные.Функции регистрации пользователя, входа в систему и корзины будут в домене клиента (например, abc.com, который не является SSL), и пользователь должен быть перенесен в наш домен eshop (это совершенно другой домен и используется по SSL, например: https://www.xyz.com) во время оформления заказа. Как мне обрабатывать клиентские переменные в этом случае? Когда пользователь перенаправляется с abc.com на xyz.com, я не должен терять какие-либо настройки (client.userid, client.cartи другие переменные.) Для пользователей, которые вошли в систему, элементы корзины будут сохранены в таблице «CartTemp». Для клиентов, выбравших «оформить заказ без создания учетной записи», элементы корзины будут сохранены в структуре client.Cart.

Ответы [ 4 ]

2 голосов
/ 01 февраля 2010

Где вы храните свои клиентские переменные? Если в базе данных, вы можете работать, передавая значения CFID и CFTOKEN пользователя по ссылке, которая ведет их в интернет-магазин. (Затем, когда CF ищет клиентские переменные, которые соответствуют этим идентификаторам, он находит записи, ранее сохраненные кодом клиентского домена.) Для этого обоим сайтам потребуется использовать одинаковую базу данных клиентских переменных, хотя , который может или не может быть осуществимым для вас.

Если вы используете файлы cookie или (да поможет вам) хранилище реестра для клиентских переменных, вам понадобится другой механизм для передачи этой информации. (Можно, скажем, упаковать всю информацию в строку WDDX, сохранить ее для этой цели в таблице базы данных, передать идентификатор записи в ссылке на магазин и распаковать код магазина в WDDX.)

0 голосов
/ 03 февраля 2010

Serjii,

Только что увидел код со страницы, которую вы предоставили, и выглядит так: # CLIENT.urltoken # поможет в обоих сценариях. Спасибо. Я попробую и дам вам знать.

0 голосов
/ 03 февраля 2010

Спасибо всем. Мы используем базу данных для хранения клиента. UUID кажется более надежным и полезным для зарегистрированных клиентов; Но CFID & CFTOKEN могут помочь в случае, когда клиент выбирает вариант «оформить заказ без создания учетной записи». Какое из них вы считаете лучшим решением в обоих случаях? Пожалуйста, смотрите оба сценария ниже.

"Для пользователей, которые вошли в систему, элементы корзины будут сохранены в таблице« CartTemp ». Для клиентов, выбравших« оформить заказ без создания учетной записи », элементы корзины будут сохранены в структуре client.Cart ".

0 голосов
/ 03 февраля 2010

Я бы не стал полагаться на CFID и CFTOKEN. Вместо этого, когда пользователь хочет обработать свой заказ, вы должны создать идентификатор корзины UUID на abc.com, а затем перенаправить на xyz.com с идентификатором корзины.

Самый простой способ обмена данными - использование общей центральной базы данных, но если по какой-то причине это невозможно, вы можете настроить abc.com на возврат набора данных XML при запросе xyz.com, например:

  1. пользователь просматривает магазин на abc.com

  2. пользователь нажимает "Оформить заказ" - корзина запись создана и пользователь перенаправлено на xyz.com с корзиной uuid

  3. один раз на xyz.com, сервер берет идентификатор корзины и запросы abc.com используя cfhttp или эквивалент
  4. abc.com возвращает сервер xyz.com XML-документ, содержащий информацию о корзине
  5. xyz.com создает запись заказа на основе на содержимое корзины и возврат заказа обработка формы для клиента
...