簡體   English   中英

在 Cordova 中使用 Stripe Checkout

[英]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。

謝謝!

條紋結帳 iFrame

總而言之,您不應在 Cordova 應用程序中使用Checkout 雖然某些功能在某些情況下可能會起作用,但並非所有功能都能正常工作(就像您描述的問題一樣)。

相反,您應該使用 Stripe 的Elements庫設計您自己的自定義表單,以便在您的 Cordova webview 中使用它。

我已經使用提到的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM