【发布时间】:2014-08-04 00:08:48
【问题描述】:
搜索了很多。我想在我的 Cordova 应用程序中集成 Stripe 支付网关,有什么方法可以使用 javascript 在 android 和 ios 中实现它。
【问题讨论】:
标签: javascript android ios cordova stripe-payments
搜索了很多。我想在我的 Cordova 应用程序中集成 Stripe 支付网关,有什么方法可以使用 javascript 在 android 和 ios 中实现它。
【问题讨论】:
标签: javascript android ios cordova stripe-payments
我通过电子邮件发送了 stripe,如果您像在网络上一样简单地集成它,显然它在 iOS 上运行良好。不幸的是,它还不能在安卓上运行! :(
虽然 Checkout 在带有 PhoneGap(或任何使用原生 WebViews)的 iOS 设备上应该可以正常工作,但它不能在带有原生 WebViews 的 Android 设备上工作。这是一个已知问题,我们希望在未来修复,但目前还无法修复。目前,如果需要 Android,解决方案是使用 Stripe.js[0] 构建自定义表单。
更新:
显然存在一个!我还没试过,但这是链接
http://plugins.telerik.com/plugin/stripe
更新 2:checkout.js 现在实际上可以与 phonegap 或 cordova 配合使用。查看文档here。
更新 3:显然 checkout.js 再次被破坏,包括科尔多瓦 ios 4.0.0,最新版本的科尔多瓦 ios 是 3.9.2。这里还有另一个问题:Using Stripe Checkout with Cordova ios 4.0.0+
更新 4:我们现在使用 Stripe V3 Elements,但只要您将条纹列入白名单,如 here 所示,条纹 checkout.js 应该可以工作
【讨论】:
编辑 2:
我的下面的建议没有奏效,checkout.js 给我一个错误,说出了点问题,并尝试不同的浏览器。除了构建自己的结帐表单之外,我仍然没有其他情况。
编辑 1:
提出的解决方案以及我如何解决这个问题:
为了解决checkout.js docs 的这部分问题(见底部的常见问题解答): 建议的解决方案:
为了解决checkout.js docs 的这部分问题(请参阅底部的常见问题解答),
“使用 Checkout 提交的所有付款信息都是通过安全的 HTTPS 连接进行的。但是,为了保护自己免受某些形式的中间人攻击,您必须为包含通过 HTTPS 的付款表单的页面。简而言之,包含 Checkout 的页面的地址必须以 https:// 开头,而不仅仅是 http://。”
为了确保这一点,我在我的 Cordova 应用程序中嵌入了一个 <iframe>,并将 src 设置为我制作并拥有的 API 端点。 API 端点返回它们在文档中的简单实现中显示的<Form> sniper。所以我的 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 密钥存储在客户端,这样恶意人员就有机会获取并使用它。
密钥应该保密。
这是插件的文档 (https://github.com/Telerik-Verified-Plugins/Stripe/blob/master/doc/index.md) 对自己的评价:
安全警告
此插件要求将 Stripe 密钥嵌入到应用程序中。顾名思义,您永远不应该共享密钥,因为它允许完全访问 Stripe API。将密钥嵌入应用程序意味着任何人都可以发现密钥并使用它来访问 API。这可能会导致敏感数据泄露(所有之前的费用都可见)甚至经济损失(可以发起退款)。
您不太可能希望将 Stripe 密钥嵌入 Cordova 应用程序中,因此您不太可能希望使用此插件。
https://support.stripe.com/questions/difference-between-secret-key-and-publishable-key
从移动设备接受付款的正确方法仅使用可发布密钥。虽然可以使用密钥提交付款,但获得您的密钥的任何人都可以查看所有先前的费用、发放退款和发起转账。
请在使用前仔细考虑这是否是预期的。
【讨论】: