Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Cordova/Phonegap应用程序中实现条带支付网关_Javascript_Android_Ios_Cordova_Stripe Payments - Fatal编程技术网

Javascript 在Cordova/Phonegap应用程序中实现条带支付网关

Javascript 在Cordova/Phonegap应用程序中实现条带支付网关,javascript,android,ios,cordova,stripe-payments,Javascript,Android,Ios,Cordova,Stripe Payments,搜索了很多。我想在我的cordova应用程序中集成Stripe Payment Gateway是否有任何方法可以在android和ios中使用javascript实现它。我给Stripe发了电子邮件,显然,如果你像在web上那样简单地集成它,它在ios上就可以正常工作。不幸的是,它还不能在android上运行!:( 而签出应该可以在带有PhoneGap(或任何使用本机网络视图的设备)的iOS设备上正常工作,它在带有本机WebView的Android设备上不起作用。这是一个已知的问题,我们希望在将

搜索了很多。我想在我的cordova应用程序中集成Stripe Payment Gateway是否有任何方法可以在android和ios中使用javascript实现它。

我给Stripe发了电子邮件,显然,如果你像在web上那样简单地集成它,它在ios上就可以正常工作。不幸的是,它还不能在android上运行!:(

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

更新:

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

更新2:checkout.js现在可以很好地与phonegap或cordova配合使用。请查看文档

更新3:显然checkout.js再次被破坏,包括cordova ios 4.0.0,cordova ios的最新版本是3.9.2。这里还有另一个问题:

更新4:我们现在正在使用stripe checkout.js,但只要您已将stripe列为白名单,就应该可以使用,如图所示

我下面的建议不起作用,checkout.js给了我一个错误,告诉我出了什么问题,并尝试其他浏览器。除了构建自己的结帐表单,我仍然没有其他情况

编辑1:

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

为了解决这部分问题(见底部常见问题): 提议的解决办法:

为了解决这部分问题(请参见底部的常见问题)

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

为了确保这一点,我在我的Cordova应用程序中嵌入了一个
,并将
src
设置为我自己创建的API端点。API端点返回文档中简单实现中显示的
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更新该帖子


警告!不要使用此线程中讨论的插件:

从插件的角度来看,似乎没有一个好的替代方案,你也必须自己去做

该插件要求您将条带密钥存储在客户端,这给了恶意用户获取和使用条带密钥的机会

这把秘密钥匙应该是保密的

这是插件的文档()对其自身的描述:

安全警告 此插件要求将条带密钥嵌入到应用程序中。顾名思义,您永远不应该共享密钥,因为它允许完全访问条带API。将密钥嵌入应用程序意味着任何人都可以发现密钥并使用它访问API。这可能会导致敏感数据泄漏(所有以前的费用都可见)甚至财务损失(可以开始退款)

您不太可能希望在Cordova应用程序中嵌入条带密钥,因此您不太可能希望使用此插件

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

请仔细考虑这是否是使用前的意图。


谢谢你的回复,我“我会试试这个。Android网络视图中有什么特别的中断?不确定,这个回答是直接从stripe得到的。我们实际上正在制作一个插件。@AmritKahlon这个插件是开源的Android Cordova插件吗?如果存在回购协议,你有链接吗?@bertmaclin,它只适用于虚拟商品。stripe可以用来销售商品nd/或应用程序之外的服务。实际上,你根本不需要使用插件,checkout.js可以工作。我会更新我的答案