Недавно мы обнаружили, что API Карт Google не очень хорошо работает с SSL. Справедливо, но какие есть варианты для преодоления этого, которые другие использовали эффективно?
Будет ли API Карт работать через SSL (HTTPS)?
В настоящее время API-интерфейс Карт недоступен через безопасное (SSL) соединение. Если вы используете API Карт на защищенном сайте, браузер может предупредить пользователя о незащищенных объектах на экране.
Мы рассмотрели следующие варианты
- Разделение страницы таким образом, чтобы коллекция кредитных карт (требование SSL) находилась не на той же странице, что и карта Google.
- Переключение на другого провайдера карт, такого как Virtual Earth. Ходят слухи, что они поддерживают SSL.
- Игра трюки с IFRAMEs. Звучит глупо.
- Проксирование звонков в Google. Похоже, много накладных расходов.
Есть ли другие варианты, или кто-нибудь знает, какие варианты мы рассмотрели?
Я согласен с предыдущими двумя ответами, что в этом случае может быть лучше с точки зрения удобства использования разделить две функции на отдельные экраны. Вы действительно хотите, чтобы ваши пользователи были сосредоточены на вводе полной и точной информации о кредитной карте, и наличие карты на том же экране может отвлекать.
Для справки, Virtual Earth, безусловно, полностью поддерживает SSL. Чтобы включить его, вам просто нужно изменить ссылку на скрипт с http: // на https: // и добавить & s = 1 к URL, например
<script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1" type="text/javascript"></script>
становится
<script src="https://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1&s=1" type="text/javascript"></script>
Я бы пошел с вашим первым решением. Это позволяет пользователю сосредоточиться на вводе данных своей кредитной карты.
Затем вы можете перенести их на другую веб-страницу, которая запрашивает или предоставляет им дополнительную информацию, касающуюся карты Google.
Это похоже на проблему требований бизнеса / юзабилити - у вас есть веская причина для размещения карты на странице кредитной карты? Если так, возможно, стоит решить некоторые технические проблемы.
Вы можете попробовать использовать Mapstraction , чтобы переключиться на поставщика, который поддерживает SSL, и переключиться обратно на Google, если они будут поддерживать его в будущем.
Если вы являетесь клиентом Google Maps API Premier , тогда поддерживается SSL. Мы используем это, и это работает хорошо.
До того, как Google сделал доступным SSL, мы проксировали весь трафик, и это работало приемлемо. При использовании этого подхода вы теряете преимущество CDN от Google, и ваш IP-адрес может быть заблокирован, поскольку создается впечатление, что вы генерируете большой трафик.
Просто чтобы добавить к этому
http://googlegeodevelopers.blogspot.com/2011/03/maps-apis-over-ssl-now-available-to-all.html
Еще не пытались перенести мои карты SSL (в конечном итоге с помощью API Bing maps) обратно в Google, но вполне возможно, что они есть на картах.
Если вы получаете предупреждение SECURITY на IE 9 при отображении карт Google, используйте
<script src="https://maps.google.com/maps?file=api&v=2&hl=en&tab=wl&z=6&sensor=true&key=<?php echo $key;?>
" type="text/javascript"></script>
вместо того
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=SET_TO_TRUE_OR_FALSE"
type="text/javascript"></script>
Я только что удалил протокол http, и это сработало!
Из этого:
<script src="http://maps.google.com/maps/api/js?sensor=true" type="text/javascript"></script>
К этому:
<script src="//maps.google.com/maps/api/js?sensor=true" type="text/javascript"></script>