2017-05-03 87 views
0

如何使用android手機實現線下付款?

當我說離線時,這意味着這種情況可以是用戶有網絡連接,但沒有互聯網連接用戶根本沒有網絡(也沒有互聯網)
我正在使用sqlite在離線時存儲內容,並在網絡可用時與服務器同步。

我的問題是關於兩個設備之間傳輸數據的安全方法,當它們處於脫機狀態時(蜂窩網絡不可用)。有些事情我想的是:Android中的安全線下付款

  1. SMS(如果網絡可用時)
  2. NFC

    注:該應用程序使用它從銀行轉移到它自己的錢包已經有信用(貨幣),當它在線。

編輯:這裏使用的設備都是Android手機。考慮以下場景:「A」在離線模式(A和B都離線)下使用NFC將資金轉移到「B」。之後,A死了(不能永遠在線),但B連接到互聯網。現在B告訴服務器A向他轉移了一些錢。但服務器沒有任何確認,從一個說法B是在講真話

問題1:我該如何處理這種情況?
問題2:有沒有比NFC更好的方式讓「A」在離線模式下將資金轉移到「B」?

+0

「我的問題是關於在兩個設備之間傳輸數據的安全方法,當它們處於脫機狀態時(蜂窩網絡不可用)」 - 我不清楚您要問什麼。其中一種設備是想要支付的用戶的Android移動設備,另一種設備是什麼?它在付款方面起什麼作用? –

+0

這兩款設備都是Android手機。考慮這種情況:「A」使用NFC在離線模式下(A和B都離線)將資金轉移到「B」。之後,A死了(不能永遠在線),但B連接到互聯網。現在B告訴服務器A向他轉移了一些錢。但服務器沒有任何證據證明B說的是真話。 問題1:我如何處理這種情況? 問題2:在離線模式下將「A」轉賬到「B」有沒有比NFC更好的方法? –

回答

0

使用SQLite將數據存儲到脫機時的移動數據庫中,以及以後在線更新SQL數據庫服務器時。使用this link to understand sqlite

+0

我認爲這應該謹慎使用,因爲大多數支付系統會使用壽命很短的會話。所以在數據庫中存儲一些東西,沒有任何跡象表明它會在那裏存在多長時間,並希望服務器接受發送回來的東西,這對我來說似乎是一個非常糟糕的主意 –

+0

是的。正如@ArthurAttout所說,我們不知道如何長時間用戶將離線。而且,當其中一個用戶永遠無法連接到互聯網時,我們也需要回退。 –

+0

實際上,Prabhu正在考慮一種錢包類型的系統,在那裏他已經爲用戶提供了像大部分錢包一樣存放資金的設施,並且以後的用戶可以在應用程序中將這些信用點用於他們的目的。所以,它不會成爲錢包的問題,​​因爲交易是在向錢包中添加信用額度之前完成的,稍後@prabhu只需要將用於信用額度的信用額保存到在線數據庫中並減去信用額。 –