看板 AndroidDev 關於我們 聯絡資訊
各位大大好,小弟最近在整合Line Pay 他需要使用url來跳轉到Line的App來進行付款。 這時遇到一個奇怪的問題不知該如何解決。 按照文件收到Api回覆後有個跳轉Line的url 然後使用他文件的code來跳轉 Uri uri = Uri.parse(urlString); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); 這樣的方式, 但是第一次跳轉沒問題,第二次跳轉就會沒有反應。 第三次又可以跳轉。 沒反應的那次也不會有任何錯誤訊息。 我試著打Log看activity生命週期資訊, 正常的情況是onPause之後就會跳到Line App, 然後原本的activity會進入onStop。 跳轉失敗的情況會onPause後, 直接接onResume回原來的activity。 https://i.imgur.com/noGyFmP.jpg
完全不知道從何下手, 不知道有沒有大大有什麼建議? 感謝。 -------------------------------------------------- https://github.com/ChangHungChih/LinePayEx 補上github code是在MainActivity跳轉 不過LinePay很難測試 有意願幫忙測試的大神 再來信跟我拿後台帳號,要把IP加進白名單才能用 --------------------------------------------------- https://pay.line.me/tw/developers/documentation/download/tech?locale=zh_TW 補上Line Pay的整合文件 流程是 1.呼叫reserveApi,傳給line confirmUrl,並收到回傳的paymentUrl 2.用startActivity執行paymentUrl跳轉至line app 付款頁面 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^這段出問題,使用的是文件第54頁的code 3.在line app 付款完後,line會跳轉第一點傳的confirmUrl 4.在confirmUrl中處理最後的付款確認請求回覆,完成付款流程 我在confirmUrl確認付款完後,又用startActivity跳回MainActivity 然後再進行一次上面的流程就會在第二點出現本次的問題。 我有想過問題會不會是confirmUrl的設定, 我是用scheme做了一個網址執行可以跳進來我的app 但是因為之後是跳回mainActivity執行startActivity出問題的, 感覺關聯性不高。 confirmUrl的設定如下圖 https://i.imgur.com/2wJ6NXk.jpg
傳給Line 的Url 是 lafresh://auth_activity 這邊可能是會有問題,但又看不出啥關聯。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.231.7 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1538360768.A.01E.html ※ 編輯: p31819 (211.72.231.7), 10/01/2018 11:23:30
bearkevin: 看看失敗的時候 url 跟成功的時候 是一樣的嗎? 10/01 12:12
p31819: 一樣的url,再startActivity一次會成功 10/01 14:26
starburs: 那第四次第五次呢 會不會是因為他還在parse的過程中你又 10/01 20:08
starburs: 按了按扭導致失敗 10/01 20:08
erty0402: 先看看每次launch的是不是同一個instance 10/01 22:41
p31819: 不會是多按按鈕的失敗,因為本來是自動執行的讓他跑失敗 10/02 09:38
p31819: 為了debug改停住自己按是為了確定是startActivity的問題 10/02 09:39
p31819: 多按幾次沒試過,因為成功的話就會跳過去了 10/02 09:42
p31819: launch是不是同一個instance? 不太懂什麼問題 我用同一個 10/02 09:42
p31819: Url要startActivity有時失敗有時成功 10/02 09:43
※ 編輯: p31819 (211.72.231.7), 10/02/2018 09:46:49
p31819: 小弟傳到github,還懇請大大們幫忙看有沒有啥頭緒QQ 感謝 10/02 09:47
y3k: 換startActivityForResult()看看 還有中間再隔一個空的Activi 10/02 23:41
y3k: ty也可以試試 這招我解某個遙遠的奇怪bug時用過 10/02 23:42
t52101t: 第一次跳轉到第二次跳轉之間 你是點返回按鈕回到你的App 10/03 00:46
t52101t: 的嗎? 10/03 00:46
※ 編輯: p31819 (211.72.231.7), 10/03/2018 09:55:03
p31819: 補上Line Pay文件及流程,第一次和第二次之間跳轉補在內文 10/03 09:56
p31819: startActivityForResult我記得就原始碼來說都會執行到這步 10/03 09:58
p31819: startActivity之後是會執行startActivityForResult的 10/03 09:59
p31819: 補充這問題 1.不同手機不一定會發生 2.不同時段不一定會發 10/03 10:03
p31819: 生。 3.和android版本似乎沒關係,同版本有的好有的發生 10/03 10:04
p31819: 有人會懷疑是server問題,但是paymentUrl跳轉App是不透過 10/03 10:05
p31819: server的。所以單純是在單機上startActivity的問題 10/03 10:05
p31819: 結果似乎是Line的問題,在更新到8.15.3版後就沒問題了... 10/25 15:36