App 串接 OnlinePay

以下會說明在串街方 APP 開發串接 OnlinePay ,流程與需要在意的事項,請不用擔心,該連結並不會追蹤或是額外開啟廣告,該連結會嘗試確認使用者手機是否擁有街口,並前往應前往之流程。

注意:如果是 APP 開發人員,請儘量不要與 APP 內嵌 WebView 參與到流程,確保 Deeplink 外開而不被 APP 內嵌的 WebView 吃走訂單連結 ,無法開啟街口 APP 的狀況

Android

  1. 當使用訂單創建返回參數 payment_url 作為跳轉連結。(訂單創建 API #返回參數)
  2. 取得跳轉連結後,利用 Intent 直接外開。
  3. 外開後該 URL 將會自動判斷是否擁有街口支付
    1. 有街口:會直接開啟街口支付
    2. 無街口:將會前往 Google Play 並開啟街口 APP 可供下載
  4. 因(訂單創建 API #返回參數) 在建立訂單 API 時就已經需要提供回到 APP 的 Deeplink URL ,所以不應利用 startActivityForResult 來等待回到 APP 中,但可能因為開發需求,您可以嘗試使用,但不建議如此使用,有高機率無法使用。
 // 你想要開啟的 URL
 val url = "payment URL"

 // 創建一個 Intent 來開啟網頁
 val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
 startActivity(intent)

iOS

  1. 當使用訂單創建返回參數 payment_url 作為跳轉連結。(訂單創建 API #返回參數)
  2. 取得跳轉連結後,利用 open 直接外開。
  3. 外開後該 URL 將會自動判斷是否擁有街口支付
    1. 有街口:會直接開啟街口支付
    2. 無街口:將會前往 APP store 並開啟街口 APP 可供下載
if let url = URL(string: "payment URL") {
            UIApplication.shared.open(url, options: [:],completionHandler: nil)
        }


最後補充

  • 如果開發人員一定要使用 WebView 開發,建議在取得 URL 後,在 URL 轉頁之前就利用不同方案將 URL 當作一個字串拋向 APP 原生系統,讓 APP 原生系統可直接上述方案外開。
  • 特殊例外狀況:在不同的系統下,可能會因為瀏覽器的系統跳轉問題導致無法即時進入到街口支付中,但瀏覽器網頁將會呈現進入街口支付的畫面,使用者得以在畫面中按下前往,即可正確進入街口支付。