[英]Using Stripe Checkout in Cordova
我可以让Stripe Checkout在我的 Ionic/Cordova 应用程序中工作。 它显示了一个 iFrame,允许用户输入他们的 Stripe 登录信息/信用卡信息以完成付款过程。
但是,我无法正确支持一种用户案例 - 当用户单击Terms | Privacy
来自 Stripe Checkout iFrame 的Terms | Privacy
链接,该链接是使用 Cordova Webview 打开的,这会破坏我的应用程序,因为 Cordova 离开了我的应用程序并转到了 Stripe 的Terms | Privacy
Terms | Privacy
网页。 iOS 上没有后退按钮,即使 Android 上有后退按钮,应用程序状态也完全被破坏,因为我们已经离开了我们的应用程序。
我曾尝试使用In app browser
,但没有运气,因为我无法从 Stripe 获取 URL 以将它们提供给In app browser
。 此外,由于安全原因,我无法操作 Stripe Checkout iFrame HTML。 因此,我似乎没有任何方法可以制定Terms | Privacy
In app browser
打开Terms | Privacy
或隐藏/删除Terms | Privacy
通过更改 iFrame HTML 来保护Terms | Privacy
。
这个问题有解决方案吗? 如果没有,我可能会考虑不在我的应用中使用 Stripe Checkout。
谢谢!
我已经使用提到的 InAppBrowser 插件成功地让 Stripe Checkout 在 Cordova 应用程序中工作。
您是对的,您不能使用直接返回 URL 提供 InAppBrowser 插件,因为用于结帐的 Stripes javascript 只会创建重定向。
解决这个问题的方法是创建您自己的 php 文件,该文件将执行条带重定向。
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>';
?>
基本上就是这样,您现在要做的就是使用指向您创建的 php 文件的 URL 调用 InAppBrowser ;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.