资源描述
电 卡 售 电
一、电力业务介绍
1. 电力电卡应用现状
目前很多地市电力公司都在部分范围试点使用了ic卡表系统,一般多数规模不是太大,大约几千户。
ic卡表的使用改变了原有的抄表收费模式,用户必须要先购电后使用,这样就解决了电力的电费催缴存在的问题。用户如不能在已购电量用完前再次购电,则将在表中剩余电量用完后自行断电,从而实现强迫用户购电,使电费的收缴由被动变为主动。
由于ic卡表系统应用的不统一和新需求,限制了其发展速度,导致其没能迅速大规模使用。
2. 电力电卡使用流程
a. 用户持电力卡至营业厅购电(购电量写入电卡);
b. 用户持卡插入自己家电表中,将购得电量累加到电表中;
正常当电表累加电量用尽前用户需要再次购电,否则电表在电量用完后会自动断电。
在使用过程中ic卡相当于传输介质,存储用户的购电信息,然后输入电表,电表是除了完成原有的电量的计量作用外,还起到了电力的控制和(低电)报警等功能。
二、自助业务流程
实现电力电卡的自助售电功能,简单点说就是替代现有电卡售电操作员的工作,使其自助化。
1. 现金购电业务流程
1. 用户需持电卡在自助售电机器上按照界面提示,插入电卡;
2. 设备根据卡内读取的信息,通过后台查询,获取用户信息(包括卡表等信息),在用户界面显示;
3. 用户根据显示信息,如需要购电,选择相应的购电按钮,进入购电界面;
4. 用户按照界面提示投入纸币;
5. 售电系统根据投入的纸币,送入后台,获取写卡信息等;
6. 写用户购电卡,并提示用户操作结果,打印相关凭条。
操作顺序图:
失败处理:
对于购电失败可采取补售电和退钱2种可选方式;
补售电:
1. 机器本身提供用户补售电功能,将由该终端对缴费失败的记录重新进行补售电,补售电仍无法成功的需要人工处理;
2. 人工补交,通过人工核对,然后对用户的售电进行重售电或补写卡;
退钱:
1. 一般不建议采用退钱方式处理;
2. 退钱原则是保证交易信息确实没有进入卡表系统,相当于并未缴费才可以退钱;
3. 退钱操作不可和机器补售电同时使用,即建议如需要退钱,那么出现失败均由人工处理(选择退钱或补售电);
2. 银联购电业务流程
1. 同现金部分1,2,3;
2. 提示用户插入银联卡,并读取银联卡信息;
3. 提示用户输入银联卡密码;
4. 提示用户输入(或选择)购电金额(或电量);
5. 售电系统根据用户选择,送入后台,先到银联扣取银联卡金额,然后至电力后台进行售电交易,获取写卡信息;
6. 写用户购电卡,并提示用户操作结果,打印相关凭条。
操作顺序图:
失败处理:
1. 对于扣款失败导致的失败不需要处理;
2. 扣款成功的失败按照上面的补售电方式处理。
补售电顺序图:
3. 清机业务流程
目的:清机功能是用来按照统计的数据收取自助终端交易金额,使确定终端交易金额及账务情况。
业务流程:
1. 用户进入清机界面;
开始清机
结束清机
2. 清机流程
3. 清机说明
清机主要是针对现金类交易进行的账务汇总,以便于汇总交易金额信息和账务信息。
对于有多种业务类型(如现金缴费和现金售电)的现金交易清机,可能对账模式等并不相同,需要在后台将多种交易的清机按照上面流程处理,最后汇总形成返回报文。
三、程序设计
1. 接口需求
为实现自助售电,需要电力提供以下2块功能接口:
① 电卡读写接口
接口要求:要求能够实现电力IC卡读写操作。
a) 一般实现方式为卡表厂家提供或电力方提供读写卡的dll;
b) 如采用不同卡机不同等原因,亦可以考虑由卡表厂家提供读卡数据的解析和写卡数据的组织,由我方实现卡操作,此种方案需要明确其可行性。
② 后台购电接口
目前后台必须提供的主要接口为:用户信息查询、购电;
如为cpu卡且需要加密机验证,需要提供相关的认证接口;
建议提供:用户是否可以购电判断接口(如无法提供,需要提供判断策略由我方自行判断);
视实际情况可以提供:卡密码查询、对账。
2. 终端程序
1.终端程序采用MFC框架,基于Dialog界面结构;
2.终端界面使用基于CImageDlg派生类,使添加界面图片等更加容易。
终端主要类说明:
CSSTSampleDlg 主窗口Dlg
CGlobal 全局公共函数和变量
CConfigParam 配置信息获取设置
CTrade_Pay 交易类
CHtmlCtrl Html控件类
CInputPhoneDlg 输入用户号类
CPayDlg 现金缴费界面Dlg
CUserInfoDlg 用户信息显示Dlg
CAdminDlg 管理界面Dlg
CIntroDlg 业务介绍等网页显示Dlg
… …
CImageBase
CImageDlg 界面基类
… …
CImageDlg类参考
公有成员
CImageDlg (UINT uID, CWnd *pParent=NULL)
BOOL
AddImage (int nPosX, int nPosY, LPCTSTR lpszImageName, UINT uID=0, LPCTSTR lpszImgMouseDown="")
BOOL
InsertImage (int nIndex, int nPosX, int nPosY, LPCTSTR lpszImageName, UINT uID=0, LPCTSTR lpszImgMouseDown="")
void
ShowImage (UINT uID, BOOL bIsShow)
BOOL
EnableButton (int nID, BOOL bEnable=TRUE)
3. 服务端程序
1.服务端程序采用Pro*C程序,在c语言中嵌入sql命令;
2.采用多进程模式处理终端数据请求。
涉及主要文件:
cms_main.pc 主程序入口
cms_fun.pc 主程序通用方法
cms_log.pc 日志记录
db_fun.pc 数据库操作
db_tool.pc 数据库打开关闭操作
gs_boss_oper.pc boss操作
gs_main_oper.pc 主程序操作
展开阅读全文