在iOS设备上,它可以提交和打开支付网关的页面.但是在Android中无法这样做.
当我检查日志时,我注意到的两件事是’设置原生 – > JS模式为null’和Thread没有名称指定.
我尽力了.但仍然没有运气.
解决方法
On iOS devices,it’s able to submit and open the page of the payment gateway. However fails to do so in Android.
嘿,我在facebook登录的javascript API提交时遇到了类似的问题.
安装Cordova inappbrowser插件为我做了诀窍.
https://github.com/apache/cordova-plugin-inappbrowser
此外,如果这不能解决问题,这就是我在你的位置会做的事情:(我假设你有一个LAMP服务器)
1)使用ajax将所有支付数据发送到PHP文件,将数据插入数据库,然后将该插入行的id返回到javascript,并将其存储在名为insertedPaymentId的变量中.
http://www.yourdomain.com/paymentSubmit.php
3)然后使用在应用程序浏览器中,在单击提交按钮并将支付数据插入数据库后,将insertedPaymentId推送到该paymentSubmit.PHP文件;
var ref = cordova.InAppBrowser.open('http://www.yourdomain.com/paymentSubmit.PHP?paymentID='+insertedPaymentId,'_blank','location=yes');
4)使用GET在paymentSubmit.PHP文件中获取insertedPaymentId变量,并在此PHP页面上从数据库中选择该付款数据,然后使用“隐藏”输入,设置此页面中的所有数据并有一个提交按钮,如“确认您的付款“像这样;
<form action="secure.payu/_payment.PHP..."> <input id="amount" type="hidden" value="<?PHP $db['amount']; ?>"/> <input id="productinfo" type="hidden" value="<?PHP $db['productInfo']; ?>"/> <input id="firstname" type="hidden" value="<?PHP $db['firstname']; ?>"/> <input type="submit" value="Confirm"/> </form>
在这种情况下,用户会看到他们的应用程序上有一个弹出窗口并要求他们确认付款,之后您实际上是在LAMP服务器和PHP环境中,做你想做的事情,如果你完成了你的提交,你可以通过在inappbrowser上阅读更多内容来关闭该窗口.
希望帮助,让我更新.