Javascript 在Cordova中使用条带签出
我可以在我的Ionic/Cordova应用程序中使用。它显示一个iFrame,允许用户在其中输入条带登录信息/信用卡信息以完成支付过程 然而,有一个用户案例我无法正确支持——当用户从Stripe Checkout iFrame中单击Javascript 在Cordova中使用条带签出,javascript,cordova,iframe,stripe-payments,Javascript,Cordova,Iframe,Stripe Payments,我可以在我的Ionic/Cordova应用程序中使用。它显示一个iFrame,允许用户在其中输入条带登录信息/信用卡信息以完成支付过程 然而,有一个用户案例我无法正确支持——当用户从Stripe Checkout iFrame中单击Terms | Privacy链接时,该链接将使用Cordova Webview打开,这会破坏我的应用程序,因为Cordova离开了我的应用程序,进入Stripe的Terms | Privacy网页。iOS上没有后退按钮,即使Android上有后退按钮,但自从我们离开
Terms | Privacy
链接时,该链接将使用Cordova Webview打开,这会破坏我的应用程序,因为Cordova离开了我的应用程序,进入Stripe的Terms | Privacy
网页。iOS上没有后退按钮,即使Android上有后退按钮,但自从我们离开应用程序后,应用程序状态完全被破坏
我曾尝试使用应用程序浏览器
,但没有成功,因为我无法从Stripe中获取URL以将它们提供给应用程序浏览器
。此外,我无法操作条带签出iFrame HTML,因为。因此,我似乎没有办法在应用程序浏览器中打开Terms | Privacy
,或者通过更改iFrame HTML隐藏/删除Terms | Privacy
这个问题有解决办法吗?如果不是,我可能会考虑在我的应用程序中不使用条纹签出。
谢谢
它的长短不一之处在于,您不应该在Cordova应用程序中使用它。虽然某些功能在某些情况下可以正常工作,但并非所有功能都能正常工作(正如您所描述的问题)
相反,您应该使用Stripe的库来设计自己的自定义表单,以便在Cordova webview中使用它。我已成功地使用提到的InAppBrowser插件在Cordova应用程序中实现了Stripe签出 你是对的,你不能给InAppBrowser插件提供一个直接返回的URL,因为用于签出的javascript只会创建一个重定向 解决这个问题的方法是创建自己的php文件,该文件将执行条带重定向 对于使用sofort付款类型,redirect.php看起来像这样
<?php
// Include neccessary php Stripe sdk
require_once('PATH TO STRIPE SDK');
$stripe_secret_key = 'YOUR STRIPE SECRET KEY';
$stripe_api_key = 'YOUR STRIPE API KEY';
// Using Stripe SDK create the Checkout
// price in €
$price_including = 100;
\Stripe\Stripe::setApiKey($stripe_secret_key);
$session = \Stripe\Checkout\Session::create([
'payment_method_types' => ['sofort'],
'line_items' => [[
'price_data' => [
'currency' => 'eur',
'product_data' => [
'name' => 'YOUR PRODUCT NAME',
],
'unit_amount' => $price_including*100,
],
'quantity' => 1,
]],
'mode' => 'payment',
'success_url' => 'URL TO YOUR SUCCESS PAGE',
'cancel_url' => 'URL TO YOUR ERROR PAGE',
]);
$sid = $session->id;
// with the created Session ID call the Stripe Javascript which will do the redirect
// Include Stripe JS First
echo '<script src="https://js.stripe.com/v3/"></script>';
echo '<script type="text/javascript">
var stripe = Stripe("'.$stripe_api_key.'");
function redirect()
{
return stripe.redirectToCheckout({ sessionId: "'.$sid.'" });
}
redirect();
</script>';
?>
代码>元素似乎不记得我的条纹信息(例如,经过验证的电话号码,我不需要再次输入我的CC信息)同样的方式签出,我认为第一个好处我从结帐。我可能会坚持使用我的旧的和苍白的表单输入来获取客户信息。条纹元素在生产中有效吗?(我的网络视图显示在
文件://
中,而不是https://
中)我认为@Ywain应该突出元素。将stripe.js引用放在cordova应用程序上会导致警告,生产使用将需要SSL。AFIK将其用于cordova(或电容器)应用程序的生产使用。