怎么用VB来编写手机支付程序?要求先建立用户、商家、银行三个数据库,数据库我已经建立好了。

怎么用VB来编写手机支付程序?要求先建立用户、商家、银行三个数据库,数据库我已经建立好了。,第1张

你这是要模拟手机支付吧。实际系统中银行的数据库肯定是不能碰的。

既然是模拟就简单多了。“转账”就是把一个账户的钱减掉,加到另一个账户上。因为用户/商家和银行账户是分开的表,需要做表连接查询。

因为不知道你用什么数据库,连接数据库的就不写了。用户,银行和商家3模块在当前情况下就是数据库的3张表:其关键字段如下:

用户表:手机号、卡号(银行账户的卡号)

商家表:商家编号、卡号(银行账户的卡号)

银行帐户:卡号、账户余额

Dim cnn as New ADODB.Connection

Dim rst as New ADODB.Recordset

Dim rsAccount as New ADODB.Recordset

'初始化变量cnn,连接数据库

'查询余额。查询手机号”12345678900"的用户的余额。这里默认一个手机号对应一个账户

rst.Open "select 账户余额 from 银行账户 join 用户表 on 银行账户.卡号=用户表.卡号 where 用户表.手机号='"12345678900'", cnn, adOpenForwardOnly, adLockReadOnly, adCmdText

if rst,Recordcount=0 then

msgbox '该手机对应的卡号不存在!"

else

'显示余额 rst.Fields("账户余额")

end if

rst.close

'支付转账,从用户A(手机12345678900)转500到商家B(编号222)

‘转出

rst.Open "select 银行账户.卡号 from 银行账户 join 用户表 on 银行账户.卡号=用户表.卡号 where 用户表.手机号='12345678900', cnn, adOpenForwardOnly, adLockReadOnly, adCmdText

if rst.Recordcount=0 then

'手机号不存在或者卡号不存在

else'修改余额

rsAccount.Open "select 账户余额 from 银行账户 where 卡号='" &rst.Fields("卡号") &"'",cnn, adOpenKeyset, adLockOptimistic, adCmdText

rsAccount.Fields("账户余额")=rsAccount.Fields("账户余额")-500

rsAccount.Update

rsAccount.close

end if

’转入。同样默认一个商家编号对应一个银行账户。

rst.Open "select 银行账户.卡号 from 银行账户 join 商家表 on 银行账户.卡号=商家表.卡号 where 商家表.编号='222', cnn, adOpenForwardOnly, adLockReadOnly, adCmdText

if rst.Recordcount=0 then

'账户不存在或者编号不存在

else'修改余额

rsAccount.Open "select 账户余额 from 银行账户 where 卡号='" &rst.Fields("卡号") &"'",cnn, adOpenKeyset, adLockOptimistic, adCmdText

rsAccount.Fields("账户余额")=rsAccount.Fields("账户余额")+500

rsAccount.Update

rsAccount.close

end if

以上代码未优化,就是个大概方法,一些细节需要自己完善,比如余额不足时的处理,比如用户已经转出,在转入商家时出错时的处理。

通常在实际转账系统中需要保证转出和转入全部完成,其中有一个出错就取消整个 *** 作。用 cnn的下列方法发起一个数据库事务(当然看你老师的要求,要求不高的可以忽视):

cnn.BeginTrans 开始事务。在对余额修改前调用。

cnn.CommitTrans 提交事务。在对余额修改完成后调用(注意是转出、转入都完成时)。

cnn.RollbackTrans 撤销事务。通常在错误处理程序里用,取消之前对记录所做的修改。

这个很简单的啊~就是当有用户有存款或取款时做以下 *** 作

(1)流水记录增加记录(要记录柜员号,钱的金额,借贷方关系,储户的名字或编号或帐号,系统日期系统时间,还有一大堆参数,一般这些你们单位的同志会告诉你有哪些参数的啊~)

(2)在半夜做批处理时,把流水记录的日表去UPDATE总帐和二级明细表即可~

(3)其他还要记录什么要看你们领导的要求了,一般凡事跟着表结构走就不会错的了~(一般不要让表项空着就成)建表建库的同志一般会和你说要求的亚~如果还有不明白的可以随时问我~

偶们做支付网关的,和你这个有相似的地方~嘿嘿~


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10008856.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存