當(dāng)時(shí)pos機(jī)消費(fèi)沖正成功,支付寶也支付成功了

 新聞資訊  |   2023-04-28 09:32  |  投稿人:pos機(jī)之家

網(wǎng)上有很多關(guān)于當(dāng)時(shí)pos機(jī)消費(fèi)沖正成功,支付寶也支付成功了的知識(shí),也有很多人為大家解答關(guān)于當(dāng)時(shí)pos機(jī)消費(fèi)沖正成功的問(wèn)題,今天pos機(jī)之家(www.shineka.com)為大家整理了關(guān)于這方面的知識(shí),讓我們一起來(lái)看下吧!

本文目錄一覽:

1、當(dāng)時(shí)pos機(jī)消費(fèi)沖正成功

當(dāng)時(shí)pos機(jī)消費(fèi)沖正成功

事實(shí)上支付寶和微信的“當(dāng)面付”產(chǎn)品,是一款聯(lián)機(jī)在線(xiàn)支付產(chǎn)品,所以不允許雙方均離線(xiàn)的場(chǎng)景下支付(這一點(diǎn)和公交卡圈存支付不一樣,公交卡的近場(chǎng)支付事實(shí)上允許雙方脫機(jī))。

題目中所知的支付寶和微信沒(méi)有網(wǎng)絡(luò),指的都是消費(fèi)者客戶(hù)端沒(méi)有網(wǎng)絡(luò),而不是雙方都沒(méi)有網(wǎng)絡(luò)。

嚴(yán)格來(lái)說(shuō),當(dāng)面付產(chǎn)品(特指商戶(hù)主動(dòng)掃消費(fèi)者錢(qián)包客戶(hù)端上的 token 碼進(jìn)行支付的形態(tài))必須要商戶(hù)在線(xiàn)方可進(jìn)行聯(lián)機(jī)交易,原因有以下兩點(diǎn):

支付公司為了保證資金安全必須要確保每筆用戶(hù)的支付行為背后都真正發(fā)生了資金扣款,所以在線(xiàn)聯(lián)機(jī)確保支付成功是必要的。(這里解釋了為什么不允許雙方脫機(jī))

商戶(hù)為了確保用戶(hù)的支付結(jié)果可信賴(lài),必須要自己的終端或者系統(tǒng)從支付公司獲得支付結(jié)果,而不能以消費(fèi)者的支付結(jié)果憑證作為結(jié)論。以傳統(tǒng) POS 業(yè)務(wù)舉例,你可以認(rèn)為你的刷卡信息等同于支付寶的當(dāng)面付碼,商戶(hù)必須要看到 POS 機(jī)打出支付成功單據(jù)后才認(rèn)為支付有效,如果 POS 支付超時(shí)沒(méi)有回執(zhí),光憑客戶(hù)手中的銀行短信通知是不會(huì)讓客戶(hù)走的,而是會(huì)沖正掉上一筆交易讓客戶(hù)重新刷一筆。(這里解釋了為什么要選擇商戶(hù)必須聯(lián)機(jī)的方案)

那么,我們來(lái)看看一個(gè)標(biāo)準(zhǔn)的當(dāng)面付產(chǎn)品的信息流是什么樣的(原諒我草草畫(huà)了一下):

我們可以看到在這個(gè)圖里紅色圈圈部分,商戶(hù)系統(tǒng)和支付寶系統(tǒng)是對(duì)接上的,所以商戶(hù)系統(tǒng)是聯(lián)機(jī)的——而用戶(hù)的手機(jī),在展示 code 的時(shí)候,我并未強(qiáng)調(diào)是否和支付寶服務(wù)端聯(lián)機(jī)。

事實(shí)上,不論是微信還是支付寶都支持兩種用戶(hù)碼生成模式,即在線(xiàn)碼和離線(xiàn)碼。

在線(xiàn)碼其實(shí)很容易理解,用戶(hù)目前是登錄錢(qián)包的狀態(tài),只要點(diǎn)擊【付款】按鈕,客戶(hù)端就向支付寶的服務(wù)端申請(qǐng)一個(gè)針對(duì)這個(gè)客戶(hù)賬戶(hù)的支付憑證碼并展現(xiàn)到客戶(hù)手機(jī)上。

這個(gè)支付憑證碼在支付寶的服務(wù)端會(huì)有一組數(shù)據(jù)庫(kù)記錄其與真實(shí)客戶(hù)賬戶(hù)之間的關(guān)聯(lián),并且這份關(guān)聯(lián)的有效期為 60S,超過(guò)時(shí)效即便商戶(hù)上送這個(gè)碼,支付寶也會(huì)認(rèn)為這是作廢碼而不予處理。

用戶(hù)每次點(diǎn)開(kāi)【付款】、等待超過(guò) 60S、主動(dòng)刷新付款碼,都會(huì)觸發(fā)客戶(hù)端向服務(wù)器申請(qǐng)一個(gè)新碼的請(qǐng)求。

這個(gè)方案的好處是:

相對(duì)安全,每次碼都是服務(wù)端生成。

業(yè)務(wù)靈活,即便對(duì)碼的安全算法等進(jìn)行較大的調(diào)整,也不用升級(jí)客戶(hù)端,因?yàn)槭欠?wù)端發(fā)碼。

這個(gè)方案的壞處也顯而易見(jiàn):

用戶(hù)的手機(jī)客戶(hù)端必須在線(xiàn)聯(lián)網(wǎng),如果沒(méi)有網(wǎng)絡(luò)則無(wú)法獲取付款碼

用戶(hù)即便在線(xiàn),如果網(wǎng)絡(luò)連接不好,也會(huì)出現(xiàn)點(diǎn)了付款等好久才看到碼的情況,體驗(yàn)會(huì)不可控。

為了解決在線(xiàn)碼方案的問(wèn)題,離線(xiàn)碼方案就出現(xiàn)了。

離線(xiàn)碼的基本技術(shù)原理其實(shí)也不復(fù)雜,可以參考 @反方向的鐘 的回答,比較簡(jiǎn)單的實(shí)現(xiàn)方式是:

用戶(hù)登錄后,服務(wù)端通過(guò)可信網(wǎng)絡(luò)向用戶(hù)客戶(hù)端發(fā)送一個(gè)種子數(shù)據(jù)(每個(gè)客戶(hù)的種子數(shù)據(jù)唯一,換用戶(hù)登錄后銷(xiāo)毀原種子,重新下載種子)本地保存,當(dāng)用戶(hù)點(diǎn)擊【付款】時(shí),客戶(hù)端利用這個(gè)種子數(shù)據(jù) + 時(shí)間戳 + 一套安全算法可以生成一串?dāng)?shù)字,即離線(xiàn)碼。

當(dāng)用戶(hù)使用離線(xiàn)碼支付時(shí),服務(wù)端通過(guò)一定算法校驗(yàn)這個(gè)碼的確是來(lái)自于這個(gè)用戶(hù),隨即確認(rèn)用戶(hù)授權(quán)完成支付。

離線(xiàn)碼的好處不言而喻:

用戶(hù)無(wú)需在線(xiàn),就算在地下室等沒(méi)有網(wǎng)絡(luò)的場(chǎng)景一樣可以使用

由于不依賴(lài)網(wǎng)絡(luò),所有碼本地生成,所以客戶(hù)體驗(yàn)很好,一點(diǎn)付款碼就能出來(lái)

那離線(xiàn)碼的劣勢(shì)呢,我們看看:

用戶(hù) root/ 越獄手機(jī)后,保密存儲(chǔ)的種子數(shù)據(jù)有可能被不法分子利用惡意程序獲取到,導(dǎo)致離線(xiàn)碼被隨意生成用于消費(fèi)。

恩……怎么說(shuō)呢,畢竟現(xiàn)在不是發(fā)燒友主動(dòng) root 越獄的用戶(hù)并不多,這是其一。

即便是 root 越獄,如果用戶(hù)使用手機(jī)的習(xí)慣良好,被惡意程序攻擊手機(jī)的概率也很低,這是其二。

每家公司都有自己的安全團(tuán)隊(duì)去保障自己客戶(hù)端的數(shù)據(jù)安全,并不是說(shuō) root 的用戶(hù)就只能坐以待斃了,否則微信和支付寶早被搞破產(chǎn)了,這是其三。

當(dāng)然從我個(gè)人的角度來(lái)說(shuō),普通用戶(hù)我都不建議去 root 或者越獄。

這個(gè)問(wèn)題最粗暴的方案就跟反方向的鐘所說(shuō)的一樣,監(jiān)測(cè)到系統(tǒng)被 root 了就對(duì)用戶(hù)限權(quán)(很多銀行的客戶(hù)端方案都是這么搞的)。

作為直接面向消費(fèi)者市場(chǎng)且充分競(jìng)爭(zhēng)的產(chǎn)品,微信支付和支付寶斷然不會(huì)采用上面那個(gè)方案的。

怎么能又開(kāi)放離線(xiàn)碼給用戶(hù),又能確保用戶(hù)支付安全,本身也是支付公司安全競(jìng)爭(zhēng)力的一部分,這里就省略幾萬(wàn)字了。

數(shù)據(jù)碰撞可能導(dǎo)致 A 用戶(hù)的碼扣到 B 用戶(hù)的賬戶(hù)

恩,這里涉及一些算法問(wèn)題,業(yè)務(wù)上就是碰了巧了 A 用戶(hù)碼算出來(lái)和 B 用戶(hù)碼一模一樣且都有效(兩個(gè)客戶(hù)端都沒(méi)作弊)。

在線(xiàn)碼之所以可以避免這個(gè)問(wèn)題是因?yàn)樵诰€(xiàn)碼是服務(wù)端發(fā)的,可以控冪等。

離線(xiàn)碼是客戶(hù)端自己根據(jù)算法生成的,所以沒(méi)法控。

其實(shí)原因和哈希算法的數(shù)據(jù)碰撞類(lèi)似,是個(gè)小概率的純技術(shù)問(wèn)題,就不展開(kāi)贅述了。

解決方案:優(yōu)化算法(確保碰撞概率低到一定程度甚至杜絕),如果真的出現(xiàn)就認(rèn)栽給客戶(hù)賠錢(qián)(賠多了技術(shù)部門(mén)老大就肯定痛定思痛優(yōu)化算法了)。

事實(shí)上這個(gè)問(wèn)題發(fā)生的概率極低極低,所以可以忽略不計(jì)。

算法調(diào)整不如在線(xiàn)碼靈活

因?yàn)殡x線(xiàn)碼生成邏輯都在客戶(hù)端,所以通常來(lái)說(shuō)安全算法升級(jí)會(huì)導(dǎo)致客戶(hù)端升級(jí),比在線(xiàn)碼升級(jí)更影響用戶(hù)一些。

分析到上面這層,各位產(chǎn)品經(jīng)理相信應(yīng)該就知道如何做方案選型了。(裝個(gè)逼,事實(shí)上我覺(jué)得了解到上面那個(gè)層面是支付行業(yè)產(chǎn)品經(jīng)理的基本素質(zhì))

后話(huà):

我在寫(xiě)這個(gè)答案的時(shí)候其實(shí)都在刻意回避公司實(shí)現(xiàn)這些業(yè)務(wù)的具體邏輯和算法。而我個(gè)人并非當(dāng)面付產(chǎn)品的產(chǎn)品經(jīng)理,所以大家放心,這篇文章不算泄密。

寫(xiě)這個(gè)答案的目的是希望能盡量站在產(chǎn)品和業(yè)務(wù)角度還原業(yè)務(wù)原理,希望更多的非行業(yè)內(nèi)的知友知其然,也知其所以然。

以上就是關(guān)于當(dāng)時(shí)pos機(jī)消費(fèi)沖正成功,支付寶也支付成功了的知識(shí),后面我們會(huì)繼續(xù)為大家整理關(guān)于當(dāng)時(shí)pos機(jī)消費(fèi)沖正成功的知識(shí),希望能夠幫助到大家!

轉(zhuǎn)發(fā)請(qǐng)帶上網(wǎng)址:http://www.shineka.com/news/34690.html

你可能會(huì)喜歡:

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn),該文觀(guān)點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 babsan@163.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。