Внедрение шлюзового платежного шлюза в приложении Cordova/Phonegap

Искал много. Я хочу интегрировать Stripe Payment Gateway в мое приложение cordova, есть ли способ его достижения в android и ios с помощью javascript.

Ответ 1

Я отправил по электронной почте полосу, и, по-видимому, она отлично работает на iOS, если вы просто интегрируете ее так же, как в Интернете. К сожалению, он пока не работает на Android!: (

В то время как Checkout отлично работает на устройствах iOS с помощью PhoneGap (или всего, что использует собственные WebView), оно не работает на устройствах Android с собственными WebView. Это известная проблема, и мы хотели бы исправить ее в будущем, но пока не можем ее исправить. На данный момент решением для Android является создание пользовательской формы с использованием Stripe.js [0].

<з > ОБНОВЛЕНИЕ:

По-видимому, существует! Я еще не пробовал, но здесь ссылка

http://plugins.telerik.com/plugin/stripe

ОБНОВЛЕНИЕ 2: checkout.js на самом деле отлично работает с телефонной связью или кордорой. Ознакомьтесь с документами здесь.

ОБНОВЛЕНИЕ 3: Очевидно, что checkout.js снова сломается за что-то, включая и cordova ios 4.0.0, последняя версия кордовы ios, которая работает, - 3.9.2. Здесь возникает еще один вопрос: Использование Stripe Checkout с Cordova ios 4.0.0+

UPDATE 4: Теперь мы используем Stripe V3 Elements, но stripe checkout.js должен работать до тех пор, пока вы видите белую полосу, как показано здесь

Ответ 2

Изменить 2:

Мое ниже предложение не сработало, checkout.js дает мне ошибку, говоря, что что-то пошло не так, и попробовать другой браузер. У меня все еще нет ситуации, кроме создания собственной формы оформления.

Изменить 1:

Предлагаемое решение и то, как я решаю это:

Чтобы обратиться к этой части checkout.js docs (см. часто задаваемые вопросы внизу): Предлагаемое решение:

Чтобы обратиться к этой части checkout.js docs (см. раздел "Вопросы и ответы" внизу),

"Все представления информации об оплате с помощью Checkout осуществляются с помощью безопасного соединения HTTPS. Однако, чтобы защитить себя от определенных форм атак типа" человек-в-середине ", вы должны служить страница с формой платежа через HTTPS. Короче говоря, адрес страницы, содержащей Checkout, должен начинаться с https://, а не только http://."

Чтобы обеспечить это, я вставляю <iframe> в приложение Кордовы с src, установленным для конечной точки API, которую я создал, и у меня есть. Конечная точка API возвращает <Form> snipper, который они показывают в простой реализации в документах. Итак, моя конечная точка api возвращает этот HTML-код:

<form action="/charge" method="POST">
  <script
    src="https://checkout.stripe.com/checkout.js" class="stripe-button"
    data-key="pk_test_6pRNASCoBOKtIshFeQd4XMUh"
    data-amount="2000"
    data-name="Stripe.com"
    data-description="2 widgets"
    data-image="/img/documentation/checkout/marketplace.png"
    data-locale="auto">
  </script>
</form>

Таким образом, проверка защищена с помощью https!

Теперь вот мое предупреждение о ранее упомянутом плагине. Спасибо @Amrit Kahlon за обновление этого сообщения!


Внимание! НЕ используйте плагин, обсуждаемый в этом потоке: Telerik-Verified-Plugins/Stripe

Кажется, что нет хорошей альтернативы там, где есть плагин, вам придется делать это сами, как и кажется.

Плагин требует, чтобы вы сохраняли секретный ключ Stripe на стороне клиента, что дает злонамеренным людям возможность взять его и использовать.

Секретный ключ должен оставаться в секрете.

Это то, что плагин docs (https://github.com/Telerik-Verified-Plugins/Stripe/blob/master/doc/index.md) говорит о себе:

Предупреждение о безопасности

Этот плагин требует, чтобы секретный ключ Stripe был встроен в приложение. Как следует из названия, вы никогда не должны делиться секретным ключом, так как он обеспечивает полный доступ к API-интерфейсу Stripe. Включение секретного ключа в приложение означает, что любой может открыть ключ и использовать его для доступа к API. Это может привести к утечке конфиденциальных данных (все предыдущие заряды будут видны) или даже финансовые потери (возмещение может быть начато).

Очень маловероятно, что вы хотите встроить секретный ключ Stripe в приложение Cordova, и, следовательно, вряд ли вы захотите использовать этот плагин.

https://support.stripe.com/info/difference-between-secret-key-and-publishable-key

Правильный способ приема платежей с мобильных устройств использует только доступный для публикации ключ. В то время как вы можете отправлять платежи с использованием секретного ключа, любой, кто получает ваш секретный ключ, может просматривать все предыдущие платежи, выдавать возмещение и инициировать переводы.

Пожалуйста, внимательно подумайте над тем, что предназначено перед использованием.