在Cordova/Phonegap应用中实现分条支付网关

Implement Stripe Payment Gateway in Cordova/Phonegap Application

本文关键字:网关 实现 Cordova Phonegap 应用      更新时间:2023-09-26

搜索了很多次。我想在我的cordova应用程序集成Stripe支付网关是否有任何方法来实现它在android和ios使用javascript。

我给stripe发了邮件,如果你像在网页上那样简单地整合它,显然它在iOS上运行得很好。不幸的是,它还不能在android上工作!(

虽然Checkout应该在带有PhoneGap的iOS设备(或任何使用原生WebViews的设备)上工作良好,但它不能在带有原生WebViews的Android设备上工作。这是一个已知的问题,我们希望在未来修复,但目前还无法修复。目前的解决方案是,如果Android是必需的,则使用Stripe.js[0]构建自定义表单。

<年代>更新:

显然存在一个!我还没试过,不过这里有个链接

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

UPDATE 2: checkout.js现在在phonegap或cordova上工作得很好。

更新3:很明显,checkout.js在超过和包括cordova ios 4.0.0的情况下再次被破坏,cordova ios的最新版本是3.9.2。还有一个问题:在Cordova ios 4.0.0+中使用Stripe Checkout

更新4:我们现在使用Stripe V3元素,但Stripe checkout.js应该工作,只要你有白名单的条纹,如这里所示

编辑2:

我下面的建议没有工作,checkout.js给了我一个错误说什么出错了,并尝试不同的浏览器。除了构建自己的结帐表单之外,我还没有其他问题。

编辑1:

建议的解决方案和我如何解决这个问题:

为了解决checkout.js文档的这部分问题(见底部的FAQ):解决方案:

为了解决checkout.js文档的这部分问题(见底部的FAQ),

"使用Checkout提交的所有支付信息都是通过安全的HTTPS连接进行的。但是,为了保护自己免受某些形式的中间人攻击,您还必须通过HTTPS提供包含支付表单的页面。简而言之,包含Checkout的页面的地址必须以https://开头,而不仅仅是http://."

为了确保这一点,我在我的Cordova应用程序中嵌入了一个<iframe>, src设置为我所做的和我自己的API端点。API端点返回他们在文档中的简单实现中显示的<Form>狙击器。所以我的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。这可能会导致敏感数据泄露(所有以前的费用都是可见的),甚至造成财务损失(可以启动退款)。

这是极不可能的,你想要嵌入你的条纹密钥在Cordova应用程序,因此极不可能你想要使用这个插件。

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

接受移动设备支付的正确方法只使用可发布密钥。虽然可以使用秘钥提交付款,但任何获得您的秘钥的人都可以查看所有先前的费用,发出退款并发起转账。

请在使用前仔细考虑这是否是您的目的。