用戶在租車、充電樁、酒店預訂等場景消費時,用戶在開啓服務時需要做一筆預授權,當服務完結算時,再從預授權資金中扣除消費金額,剩餘返還給用戶。
支付寶預授權支持用戶以餘額,餘額寶,信用卡,借記卡,花唄以及芝麻信用渠道做預授權,其中預授權時餘額,餘額寶做資金凍結;信用卡,借記卡扣款至支付寶內部賬戶做資金鎖定;花唄鎖定額度,不產生賬期;芝麻信用以用戶信用爲擔保並授權。
以上是支付寶預授權的官方介紹,但是在進行操作的時候,可能會出現一些問題,這裏我將遇到的問題情況進行整理,如果有相關業務開發涉及到的,可以進行參考。
支付寶預授權情況整理
測試情況:
3個頁面,總共有4種情況。外加超時,共5種情況,第二個頁面和第三個頁面算作同一種情況。
頁面1(上圖第一個頁面)
頁面2(上圖第2個和第3個頁面)
情況:
a: 頁面1失敗->後續無
mapi能收到支付寶app的同步結果,然後傳給底層,狀態爲用戶取消,但是接下來的同一筆訂單再次操作會出現“系統繁忙”錯誤
b: 頁面1成功->頁面2成功->成功
支付寶回調成功,mapi也會回調成功,正常
c: 頁面1成功->頁面2失敗->失敗
頁面1成功,支付寶和mapi都不會通知我們,頁面2失敗,mapi通知我們用戶已經取消。
如果對同一筆訂單再次進行芝麻免押,會提示“系統繁忙”。
d: 頁面1超時->失敗
超時情況下支付寶和mapi都不會通知我們,只有在用戶從支付寶頁面返回纔有mapi的回調,支付寶不回調。
再次進行芝麻免押,同樣會提示“系統繁忙”
我們有一個每1小時執行一次的回調,同步凍結狀態爲等待的數據,一個小時支付寶預授權已經被關閉,同步到結果之後會回調業務,但是一個小時的時間,對業務那邊沒有意義了。
e: 頁面2超時->失敗
再次進行預授權,“系統繁忙”
個人猜測:
業務訂單再支付寶那邊只能存儲一個狀態,按道理“等待的應該可以轉爲成功或失敗”,但是目前等待的訂單都會重新獲取預授權凍結參數,導致重新獲取參數的都會提升“系統繁忙”。等待的就只能變成失敗了。
支付寶預授權的問題
- 凍結,轉支付,關閉交易等操作只有成功情況下才有回調,失敗情況下沒有回調。導致一些情況無法判斷狀態。比如進行轉支付的時候,支付寶返回等待,但是後續支付失敗了,我們這邊會一直不知道結果。