Используйте Google PaymentRequest на локальном сайте, работающем в эмуляторе Android

1

Я пытаюсь проверить api Google PaymentRequest api на локальном веб-сайте, запущенном в моем эмуляторе Android. Однако, когда я это делаю

var paymentRequest = window.PaymentRequest(//some object here//);

Я получаю следующую ошибку

"Error: Failed to construct 'PaymentRequest': Must be in a secure context

Теперь PaymentRequest запускается на localhost и https, но запускает его из порта на эмуляторе Android, где uri 10.2.2.01:8000/myUrlHere будет терпеть неудачу, потому что это не localhost. Любые идеи о том, как обойти это?

Теги:

2 ответа

3
Лучший ответ

PaymentRequest должен использоваться в безопасном контексте, который является одним из:

  1. HTTPS.
  2. Localhost.
  3. Локальный файл на диске.

http://10.2.2.01:8000 не является безопасным контекстом, поэтому вы не можете использовать PaymentRequest. Попробуйте выполнить одно из следующих действий:

  1. https://10.2.2.01:8000. (Сертификат SSL должен быть действительным. Это означает, что значок блокировки на панели URL должен быть зеленым. Например, вы можете получить его из https://letsencrypt.org/).
  2. https://localhost: 8000.
  3. Файл:///sdcard/index.html
  • 0
    Обратите внимание, что при использовании Stripe локальный хост недостаточно хорош - вам нужен полный проверенный https. (Я просил, чтобы они отключили это ограничение и доверяли решениям по безопасности PaymentRequest.)
2

Если у вас есть устройство Android, вы можете протестировать свой сайт, подключив устройство через USB-кабель и подав его с локального хоста. Попробуй это:

https://developers.google.com/web/tools/chrome-devtools/remote-debugging/

Если вы этого не сделаете, вы можете попробовать этот инструмент с эмулятором:

https://ngrok.com/

ngrok позволяет вам обслуживать локальный прокси-сервер из домена ***. ngrok.com.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню