App 串接 OnlinePay
以下會說明在串街方 APP 開發串接 OnlinePay ,流程與需要在意的事項,請不用擔心,該連結並不會追蹤或是額外開啟廣告,該連結會嘗試確認使用者手機是否擁有街口,並前往應前往之流程。
注意:如果是 APP 開發人員,請儘量不要與 APP 內嵌 WebView 參與到流程,確保 Deeplink 外開而不被 APP 內嵌的 WebView 吃走訂單連結 ,無法開啟街口 APP 的狀況
Android
- 當使用訂單創建返回參數 payment_url 作為跳轉連結。(訂單創建 API #返回參數)
- 取得跳轉連結後,利用 Intent 直接外開。
- 外開後該 URL 將會自動判斷是否擁有街口支付
- 有街口:會直接開啟街口支付
- 無街口:將會前往 Google Play 並開啟街口 APP 可供下載
- 因(訂單創建 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
- 當使用訂單創建返回參數 payment_url 作為跳轉連結。(訂單創建 API #返回參數)
- 取得跳轉連結後,利用 open 直接外開。
- 外開後該 URL 將會自動判斷是否擁有街口支付
- 有街口:會直接開啟街口支付
- 無街口:將會前往 APP store 並開啟街口 APP 可供下載
if let url = URL(string: "payment URL") {
UIApplication.shared.open(url, options: [:],completionHandler: nil)
}
最後補充
- 如果開發人員一定要使用 WebView 開發,建議在取得 URL 後,在 URL 轉頁之前就利用不同方案將 URL 當作一個字串拋向 APP 原生系統,讓 APP 原生系統可直接上述方案外開。
- 特殊例外狀況:在不同的系統下,可能會因為瀏覽器的系統跳轉問題導致無法即時進入到街口支付中,但瀏覽器網頁將會呈現進入街口支付的畫面,使用者得以在畫面中按下前往,即可正確進入街口支付。