在Cordova / Phonegap应用程序中实现Stripe Payment Gateway

时间:2014-06-13 12:23:00

标签: javascript android ios cordova stripe-payments

搜索了很多。我想在我的cordova应用程序中集成条带支付网关有没有办法在Android和ios中使用javascript实现它。

2 个答案:

答案 0 :(得分:2)

我通过电子邮件发送了条带,显然它可以在iOS上正常工作,如果您只是像在网络上那样集成它。不幸的是它还没有在Android上运行! :(

  

虽然Checkout应该可以在带有PhoneGap(或使用本机WebView的任何东西)的iOS设备上正常工作,但它在带有本机WebView的Android设备上不起作用。这是一个已知问题,我们希望将来修复,但尚无法修复。目前,如果需要Android,解决方案是使用Stripe.js [0]构建自定义表单。

更新:

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

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

更新2:checkout.js现在可以正常使用phonegap或cordova。查看文档here

更新3:Apparenly checkout.js再次被打破,包括cordova ios 4.0.0,有效的最新版本的cordova ios是3.9.2。还有另一个问题:Using Stripe Checkout with Cordova ios 4.0.0+

更新4:我们现在正在使用Stripe V3 Elements但条纹checkout.js应该有效,只要您看到here

列入白名单条带

答案 1 :(得分:0)

编辑2:

我的以下建议没有奏效,checkout.js给出了一个错误,说明出了问题,并尝试使用其他浏览器。除了建立自己的结账表格之外,我还有其他情况。

编辑1:

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

为了解决checkout.js docs的这一部分(见底部常见问题解答): 建议的解决方案:

为了解决checkout.js docs的这一部分(参见底部的常见问题解答),

  

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

为了确保这一点,我在我的Cordova应用程序中嵌入<iframe>,并将src设置为我已制作并拥有的API终结点。 API端点返回它们在文档中的Simple实现中显示的<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。这可能导致敏感数据泄露(所有以前的费用都可见)甚至财务损失(可以启动退款)。

     

您不太可能希望将Stripe密钥嵌入Cordova应用程序中,因此您不太可能想要使用此插件。

     

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

     

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

     

请在使用前仔细考虑这是否符合预期目的。