2017-05-03 57 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只需要将用于信用额度的信用额保存到在线数据库中并减去信用额。 –