一 : 支付宝的“大野心”:中国金融“搅局者”
曹金玲
[ “新技术出现往往会为金融服务提供突破,互联网金融有可能给银行体系带来颠覆性影响。”一位业内资深人士对本报记者说,不可忽视的是,技术革命后,个人行为将变得更有影响力,可以预见阿里巴巴会对金融服务带来突破,并在发展过程中演变出一些全新的模式,而这也将对监管提出新的要求 ]
阿里巴巴身上所映射出的“金融梦”越来越明显,或许正如马云自己所言,中国金融需要“搅局者”。
从现在开始,“放在”支付宝账户里的钱可以有收益了。支付宝正式上线“余额宝”,把资金转入余额宝的过程即是向基金公司等机构购买相应理财产品。注意,其中所说的是“基金公司等机构”,很显然,天弘基金“增利宝”货币基金只是第一步。
“短期内仍会以基金公司为主,现在已经有其他基金公司正在寻求与支付宝的类似合作。”一名接近支付宝人士对《第一财经日报》透露。
搅局银行?
存银行还是存支付宝?人们的第一反应,是把余额宝的投资收益和银行的活期利息拿来比较。
余额宝的亮点之一则在于:对于用户的最低购买金额没有限制,一块钱就能起买。支付宝的用户绝大部分都是没有太多理财经验的年轻人,这些人群才是支付宝的目标。这也符合阿里巴巴一直以来坚持服务二八定律中那沉默的八成人的思路。
继而,这一新产品将吸引更多闲散资金涌向支付宝。因为余额内的资金能随时用于网上购物、支付宝转账、缴费等支付,其所获收益又比银行活期存款更高。据支付宝介绍,同样一万元,通过活期存款一年的收益只有35元,而如果通过余额增值服务一年的收益可以达到380元至400元以上,收益比活期高出十倍。
对于风险,支付宝的解释是:货币基金主要用于投资国债、银行存款等安全性高、收益稳定的有价证券,2012年国内货币基金7日年化收益率平均约为3.8%;总体来看,货币基金作为基金产品的一种,理论上存在亏损可能,但从历史数据来看收益稳定风险极小。
一直以来,用户在支付宝账户内的沉淀资金没有收益,而阿里巴巴却从庞大备付金中获得利息而使其备受质疑。支付宝方面却多少觉得有些“冤”。
“支付宝没有不愿意发放利息,但是支付机构发放‘利息’的形式是现有政策所不允许的。”上述接近支付宝人士如是说,而这也是支付宝此次通过基金“收益”来提供“类利息”的原因所在,但这势必带来备付金规模的大幅下降,从而影响其利息收入,即便是天弘基金会支付一定销售服务费,也不足以抵充利息收入的下降。
但若说会在短期内“包抄”银行不免为时过早;可预见的是,当这种平民理财、懒人理财的方式成为足够多人支付、理财、生活的核心产品,则或对商业银行带来影响。
“新技术出现往往会为金融服务提供突破,互联网金融有可能给银行体系带来颠覆性影响。”一位业内资深人士对本报记者说,很多人认为成熟金融市场的机构投资者会占比很高,但不可忽视的是,技术革命后,个人行为将变得更有影响力,可以预见阿里巴巴会对金融服务带来突破,并在发展过程中演变出一些全新的模式,而这也将对监管提出新的要求。
阿里金融梦
姑且不谈阿里的金融业务是想“推翻”还是“摇一摇”传统金融机构,“马云式金融”正逐步变为现实,并着实正在酝酿或即将成为一场“革命”。
对集团内部版块的分工角色,马云曾打过一个非常形象的比方:“B2B是大哥,弟弟妹妹们上学都靠他来供;淘宝是妹妹,可以拿着大哥给的钱买花裙子;老三是支付宝,才上小学,但它最有志气,要在未来扛起养家的重担。”
那么现在,以支付宝为端点,以海量的交易数据和消费信息为支柱,马云的金融触角飞速外延,已遍及贷款、担保、保险、理财等领域,尤其去年底以来,其在金融板块业务上的动作掷地有声。
在集团2012年网商大会上,马云明确提出要将业务分为“平台、金融、数据”三步走的计划。组织架构的整合梳理接踵而来,今年2月,阿里巴巴宣布将原先的支付宝拆分成共享平台事业群、国内事业群及国际事业群,并与原阿里金融业务一道合并,“小微金融”板块至此尘埃落定。
随之2月22日,马云在“2013亚布力中国企业家论坛”上作了关键词为“革命、危机和行动”的演讲,指出“电子商务不是一个技术,不是一个商业模式,它是一场革命,它是一个生活方式的变革”。
在2月26日阿里新的金融团队的开年会议上,马云再续“革命论”,提出阿里的金融业务要回归金融本质,即金融是为了解决贸易和生活过程中的问题。他并称“阿里做的金融业务不是改革,而是一场革命,一场金融的革命”。
而在本月初的上海首届外滩国际金融峰会上,马云再次畅谈“金融梦”,直言现有金融体制难以支撑今后30年中国经济的发展,中国金融需要“搅局者”,更需要那些外行人进行变革。他提出,未来金融有两大机会:一个是金融互联网,金融行业走向互联网;二是互联网金融,纯粹的外行领导。
公开数据显示,截至2012年12月,支付宝注册账户逾8亿,日交易额峰值超过200亿元人民币,日交易笔数峰值达到10580万笔。
二 : 市财政副局长在预算单位实施国库集中支付改革培训会上的讲话
同志们:三 : 县财政局支付中心2013年工作汇报
各位领导:
大家好!
在县委、县政府的正确领导下,按照局里的统一部署,结合本股室工作实际,年初制定了我中心工作计划。按照市县“三提升”工作要求,牢固树立科学发展观,坚持依法行政,科学理财,加强自身建设,以求真务实的态度,开展各项工作。我们在实际操作中,按照我中心工作上的八点要求(微笑露一点,脾气小一点,姿态高一点,态度好一点,理由少一点,行动快一点,业务精一点,效率高一点),积极配合相关股室,强化服务意识,树立良好的窗口形象。具体汇报如下。
一、支付中心工作职责
(一)、管理支付中心账户、负责集中支付业务。统一办理各单位的现金、转账等资金结算和经费、往来款项等收付业务。
(二)、负责工资性支出,对未实行工资银行化的单位及时支付工资。
(三)、负责专项资金的支付业务。根据主管业务股室审核后的实际支出金额,直接支付给用款单位或商品、劳务、服务提供者。
(四)、负责日常单位报账的审核。根据有关政策、法规及财经制度,对单位报帐的合法性、合规性进行审核,并及时办理提款报帐手续。
(五)、办理领导交办的其他工作。
二、工作方面
支付中心是财政局的窗口股室,共有57个报账单位,我们要求每位同志业务上要精益求精,服务态度上要和蔼可亲,树立良好的财政形象。
(一)、加强学习,筑牢廉洁自律的道德防线。
作为一名财政干部,我始终把加强学习,不断提高自身素质放在首位,在学习、工作、生活中能宽以待人、严以律己、严格要求自己,始终把加强学习作为廉洁自律的有效途径。积极参加局里组织各类学习,通过系统理论学习,不断提高自身的理论水平、政策水平和办事效率。在本人的带动下,我中心全体人员积极参加政治、业务学习,努力提高自身素质,增强服务意识,并将之贯穿于实际工作中,优化服务环境,注重自身形象,高效地为服务单位办理各项业务,树立良好的窗口形象。同时,由于我中心业务性强,因此我们在办公之余,经常自觉学习,集体讨论,从而不断提高自身业务素质,为更好地胜任本职工作打下了良好的基础。
(二)、增强服务意识,提高服务质量
支付中心是财政部门的窗口股室,支付中心的服务水平直接体现财政部门形象。增强服务意识,提高服务质量尤为重要,按照市、县“三提升”工作要求,提高工作能力,增强服务意识,牢固树立为人民服务思想,提高办事效率,提高服务水平。保持良好的行风、行貌。做到文明办公、热忱服务,热情接待来局办事人员,高效地为他们办理各项业务,树立良好的窗口形象,曾多次得到有关部门的好评。
(三)、严格支付程序,确保资金安全
我们本着“严格、快捷、优质、高效”的原则,为了使会计工作做的更扎实、更准确,对手续不全的及时补充,对不符合会计制度规定的及时给予更正,保证会计工作在账务处理上做到账账相符,清晰规范,符合有关会计制度规定;同时严把资金支出关,严格单位票据的审查、报销程序,监督单位的收入是否及时上缴收费局及支出走向的合理、合法、合规性,每笔支出严格按照《财政支付中心资金拨付、提现程序》审批支付,堵塞了漏洞,节约了开支,杜绝了违纪违法现象的发生。为全力做好全县离休干部医药费审核工作,5月份我们集中时间,集中人力,对全县300多名离休干部10月至XX年3月医药费进行审核,共收集报销药费298.9万元。
(四)、加强软件建设,完善各项制度
按省、市财政工作会议要求,在预算股及信息中心的大力支持下,加强了县级版软件的应用,按照规定时间完成了县级版软件的数据录入工作。通过县级版软件的推广应用,既提高了工作效率,又规范了支付程序,保障了资金安全。在资金拨付方面,根据自身工作特点,认真总结过去集中支付工作中取得的成绩和不足,完善各项规章制度和集中支付相关工作,进一步将集中支付工作做实、做细、做好,同时,强化岗位责任制,做到分工明确,责任分明。
三、存在问题
今年刚启用的县级版软件操作的不够熟练,要加强学习,提高计算机操作水平。服务意识还有待于进一步提高,廉洁自律方面认识不到位,理论学习深度仍然不够,学习的自觉性不够,特别是理论联系实际还存在一些差距。
在今后的工作中,我们更应自觉树立公仆意识,坚持科学理财,依法行政和勤政廉政,努力学习提高个人素质。努力增强学习的自觉性,不断提高自己政治理论水平。加强党性修养锻炼,牢记党的宗旨,时时处处以党员的标准要求自己,以身作则。要进一步加强廉洁自律的修养。努力工作、团结同志、发扬优点、脚踏实地的做好财政支付工作,为我县的经济发展贡献力量。
四 : 财政国库电子支付电子凭证库接口说明【2014.04.30.00】74
财政国库电子支付
电子凭证库接口说明
广州江南科友科技股份有限公司
2013年03月
修订版历史
目 录
1 电子凭证库接口说明 ..................................................... 1
2 电子凭证库客户端接口 ................................................... 1
2.1 设置电子凭证服务地址 ....................................................... 1
2.1.1 功能说明 ................................................................................................................. 1
2.1.2 函数名..................................................................................................................... 2
2.1.3 输入参数 ................................................................................................................. 2
2.1.4 输出......................................................................................................................... 3
2.1.5 代码示例 ................................................................................................................. 3
2.2 设置电子印章服务地址 ....................................................... 3
2.2.1 功能说明 ................................................................................................................. 3
2.2.2 函数名..................................................................................................................... 4
2.2.3 输入参数 ................................................................................................................. 4
2.2.4 输出......................................................................................................................... 4
2.3 生成签章报文(读取UKEY印章) .............................................. 4
2.3.1 功能说明 ................................................................................................................. 4
2.3.2 函数名..................................................................................................................... 4
2.3.3 输入参数 ................................................................................................................. 5
2.3.4 输出参数 ................................................................................................................. 5
2.4 生成签名报文(带签名位置) ................................................. 5
2.4.1 功能说明 ................................................................................................................. 5
2.4.2 函数名..................................................................................................................... 5
2.4.3 输入参数 ................................................................................................................. 5
2.4.4 输出参数 ................................................................................................................. 6
2.5 生成签名报文(不带签名位置) .............................. 错误!未定义书签。
2.5.1 功能说明 ............................................................................... 错误!未定义书签。
2.5.2 函数名................................................................................... 错误!未定义书签。
2.5.3 输入参数 ............................................................................... 错误!未定义书签。
2.5.4 输出参数 ............................................................................... 错误!未定义书签。
2.6 凭证显示控件(OCX) ........................................................ 6
2.6.1 初始化..................................................................................................................... 6
2.6.2 加载电子凭证 ......................................................................................................... 7
2.6.3 指定凭证号加载电子凭证 ..................................................................................... 8
2.6.4 指定原文加载电子凭证 ......................................................................................... 8
2.6.5 显示指定的凭证(凭证编号) ............................................................................. 9
2.6.6 显示指定的凭证(凭证索引) ........................................................................... 10
2.6.7 打印凭证(凭证号) ........................................................................................... 10
2.6.8 打印凭证(按凭证索引号) ............................................................................... 11
2.6.9 打印凭证(按索引范围批量打印) ................................................................... 12
2.6.10 打印当前显示的凭证 ......................................................................................... 13
2.6.11 清空凭证列表 ..................................................................................................... 13
2.6.12 移除指定凭证(凭证编号) ............................................................................. 14
2.6.13 移除指定凭证(凭证索引) ............................................................................. 14
2.6.14 查看凭证的上一联 ............................................................................................. 15
2.6.15 查看凭证下一联 ................................................................................................. 15
2.6.16 获取凭证联数 ..................................................................................................... 16
2.6.17 获取加载的凭证总数 ......................................................................................... 16
2.6.18 显示下一条凭证 ................................................................................................. 17
2.6.19 显示上一条凭证 ................................................................................................. 18
2.6.20 获取当前显示凭证的凭证编号 ......................................................................... 18
2.6.21 获取当前的显示的凭证索引 ............................................................................. 19
2.6.22 获取当前显示的凭证联号 ................................................................................. 19
2.6.23 显示任意联号凭证 ............................................................................................. 20
2.6.24 放大显示凭证 ..................................................................................................... 20
2.6.25 缩小显示凭证 ..................................................................................................... 21
2.6.26 自动适应显示凭证 ............................................................................................. 21
2.6.27 刷新显示凭证 ..................................................................................................... 21
2.6.28 设定显示指定索引凭证 ..................................................................................... 22
2.6.29 设置显示指定凭证号凭证 ................................................................................. 23
2.6.30 设置凭证显示模式 ............................................................................................. 23
2.7 不显示控件打印(后台批量打印) ............................................ 24
2.7.1 功能说明 ............................................................................................................... 24
2.7.2 函数名................................................................................................................... 24
2.7.3 输入参数 ............................................................................................................... 24
2.7.4 输出参数 ............................................................................................................... 24
2.8 打印预览接口 .............................................................. 25
2.8.1 功能说明 ............................................................................................................... 25
2.8.2 函数名................................................................................................................... 25
2.8.3 输入参数 ............................................................................................................... 25
2.8.4 输出参数 ............................................................................................................... 25
2.9 设置当前用户名 ............................................................ 25
2.9.1 功能说明 ............................................................................................................... 25
2.9.2 函数名................................................................................................................... 25
2.9.3 输入参数 ............................................................................................................... 26
2.9.4 输出参数 ............................................................................................................... 26
2.10 清除U-KEY缓存 ........................................................... 26
2.10.1 功能说明 ............................................................................................................. 26
2.10.2 函数名................................................................................................................. 26
2.10.3 输出参数 ............................................................................................................. 26
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
2.11 修改U-KEY PIN码 ......................................................... 26
2.11.1 功能说明 ............................................................................................................. 26
2.11.2 函数名................................................................................................................. 26
2.11.3 输入参数 ............................................................................................................. 27
2.11.4 输出参数 ............................................................................................................. 27
2.12 查看操作日志和签章信息 ................................................... 27
2.12.1 功能说明 ............................................................................................................. 27
2.12.2 函数名................................................................................................................. 27
2.12.3 输入参数 ............................................................................................................. 27
2.12.4 输出参数 ............................................................................................................. 27
2.13 显示操作日志 ............................................................. 28
2.14 获取印章ID接口 .......................................................... 28
2.14.1 功能说明 ............................................................................................................. 28
2.14.2 函数名................................................................................................................. 29
2.14.3 输入参数 ............................................................................................................. 29
2.14.4 输出参数 ............................................................................................................. 29
2.15 获取证书ID接口 .......................................................... 29
2.15.1 功能说明 ............................................................................................................. 29
2.15.2 函数名................................................................................................................. 29
2.15.3 输入参数 ............................................................................................................. 29
2.15.4 输出参数 ............................................................................................................. 29
2.16 获取OCX调用过程异常信息 ................................................. 30
2.16.1 功能说明 ............................................................................................................. 30
2.16.2 函数名................................................................................................................. 30
2.16.3 输入参数 ............................................................................................................. 30
2.16.4 输出参数 ............................................................................................................. 30
2.17 验证UKEY PIN码接口 ....................................................... 30
2.17.1 功能说明 ............................................................................................................. 30
2.17.2 函数名 ................................................................................................................. 30
2.17.3 输入参数 ............................................................................................................. 30
2.17.4 输出参数 ............................................................................................................. 30
2.18 获取当前选择证书的CN接口 ................................................ 31
2.18.1 功能说明 ............................................................................................................. 31
2.18.2 函数名................................................................................................................. 31
2.18.3 输入参数 ............................................................................................................. 31
2.18.4 输出参数 ............................................................................................................. 31
2.19 获取操作人证书列表 ....................................................... 31
2.19.1 功能说明 ............................................................................................................. 31
2.19.3 输入参数 ............................................................................................................. 31
2.19.4 输出参数 ............................................................................................................. 32
3 电子凭证库服务端接口 .................................................. 32
3.1 电子凭证写入接口 .......................................................... 32
3.1.1 写入客户端签章的凭证 ....................................................................................... 32
3.1.2 写入客户端签名的凭证 ....................................................................................... 33
3.1.3 写入并发送服务器签章的凭证 (不建议使用) ............................................. 39
3.1.4 写入并发送服务器签名的凭证 ........................................................................... 40
3.1.5 写入指定位置服务器签章的凭证 ....................................................................... 34
3.1.6 写入指定位置服务器签名的凭证 ....................................................................... 35
3.1.7 写入并发送指定位置服务器签章的凭证 ........................................................... 36
3.1.8 写入并发送指定位置服务器签名的凭证 ........................................................... 37
3.1.9 写入不带位置服务器签名的凭证 ....................................... 错误!未定义书签。
3.2 电子凭证查询接口 .......................................................... 41
3.2.1 查询未读取的凭证 ............................................................................................... 53
3.2.2 查询未签收的凭证 ............................................................................................... 41
3.2.3 指定凭证号查询凭证 ........................................................................................... 47
3.2.4 指定日期查询凭证 ............................................................... 错误!未定义书签。
3.2.5 查询已发送凭证状态 ........................................................................................... 56
3.2.6 查询凭证打印次数 ............................................................................................... 48
3.2.7 查询凭证类型 ....................................................................................................... 49
3.2.8 指定凭证类型查询盖章位置 ............................................................................... 58
3.2.9 指定凭证类型查询盖章位置及名称 ................................................................... 46
3.2.10 查询凭证盖章列表 ............................................................................................. 50
3.2.11 读取机构印章列表 ............................................................................................. 51
3.2.12 查询日志信息接口 ............................................................................................. 54
3.2.13 批量查询发送凭证状态 ..................................................................................... 57
3.2.14 指定机构查询凭证状态接口 ............................................. 错误!未定义书签。
3.2.15 批量查询凭证状态 ............................................................................................. 42
3.2.16 批量查询被退回的凭证号(接收失败、签收失败、签收退回) ................. 44
3.2.17 验证不带位置的签名 ......................................................... 错误!未定义书签。
3.2.18 查询被篡改的凭证号 ......................................................... 错误!未定义书签。
3.2.19 获取签名、签章证书SN ................................................................................... 52
3.3 电子凭证状态更新接口 ...................................................... 59
3.3.1 确认凭证签收成功 ............................................................................................... 60
3.3.2 确认凭证签收失败 ............................................................................................... 61
3.3.3 退回凭证 ............................................................................................................... 62
3.3.4 作废凭证 ............................................................................................................... 63
3.3.5 发送凭证 ............................................................................................................... 64
3.3.6 发送全版本凭证 ................................................................................................... 65
3.3.8 指定位置撤销凭证 ............................................................................................... 66
3.3.9 撤销凭证不带位置签名 ....................................................... 错误!未定义书签。
3.4 电子凭证库对账接口 ........................................ 错误!未定义书签。
3.4.1 电子凭证库与业务系统对账 .............................................. 错误!未定义书签。
3.4.2 电子凭证库之间对账 ........................................................... 错误!未定义书签。
3.5 电子凭证库回调接口 ........................................................ 68
3.6 电子凭证库绿色通道接口 .................................................... 69
3.6.1 数据请求 ............................................................................................................... 69
3.6.2 数据发送 ............................................................................................................... 70
3.6.3 获取数据 ............................................................................................................... 71
3.6.4 数据请求回调(业务系统提供) ....................................................................... 72
3.6.5 数据发送到达通知(业务系统提供) ............................................................... 73
4 电子凭证业务报文格式 .................................................. 73
4.1 客户端待签名 (章)凭证报文 ................................................. 73
4.2 服务端待签名 (章)凭证报文 ................................................. 74
4.3 电子凭证报文 .............................................................. 74
4.4 凭证签名(章)位置报文 ...................................................... 74
4.5 凭证签名(章)结果报文 ...................................................... 74
4.6 业务系统与凭证库之间对账报文 .............................................. 75
4.7 业务系统与凭证库之间对账返回报文 .......................................... 76
4.8 不带位置凭证服务端签名报文 ................................................ 76
4.9 不带位置凭证服务端签名结果报文 ............................................ 76
4.10 不带位置凭证服务端验签报文 ............................................... 77
4.11 查询日志信息服务端返回报文 ............................................... 77
4.12 消息对账单报文 ........................................................... 78
4.13 操作人证书列表 ........................................................... 78
5 电子凭证库异常 ........................................................ 79
5.1 客户端接口异常 ............................................................ 79
5.2 服务端接口异常 ............................................................ 80
5.2.1 系统级异常 ........................................................................................................... 80
5.2.2 参数异常 ............................................................................................................... 80
5.2.3 报文异常 ............................................................................................................... 80
5.2.4 数据库访问异常 ................................................................................................... 81
5.2.5 业务逻辑异常 ....................................................................................................... 81
5.2.6 签名服务异常 ....................................................................................................... 81
5.2.8 消息中间件异常 ................................................................................................... 82
5.2.9 接收凭证异常 ....................................................................................................... 82
5.2.10 回调异常 ............................................................................................................. 82
6 业务场景举例 .......................................................... 83
6.1 直接支付业务 .............................................................. 83
6.1.1 业务流程图 ........................................................................................................... 83
6.1.2 流程说明 ............................................................................................................... 85
6.2 授权支付业务 .............................................................. 87
6.2.1 业务流程图 ........................................................................................................... 87
6.2.2 流程说明 ............................................................................................................... 89
6.3 拨款业务 .................................................................. 91
6.3.1 业务流程图 ........................................................................................................... 91
6.3.2 流程说明 ............................................................................................................... 93
7 调用示例代码 .......................................................... 95
7.1 客户端接口 ................................................................ 95
7.1.1 JAVA调用 ............................................................................................................... 95
7.1.2 C++调用.................................................................................................................. 96
7.1.3 C#调用.................................................................................................................... 99
7.2 服务端接口 ............................................................... 101
7.2.1 JAVA调用 ............................................................................................................. 101
7.2.2 C/C++调用 ............................................................................................................ 102
7.2.3 C#调用.................................................................................................................. 103
1 电子凭证库接口说明
财政国库无纸化支撑系统(简称:无纸化支撑系统)需要支持财政与人行(商
业银行)交互电子凭证数据全流程管理,主要包括:
1、对全流程电子凭证进行凭证分类、签名、验签、签章及验章操作,并支
持全流程电子数据版本化管理。
2、实现财政与人行和商业银行系统间进行电子凭证数据的安全传输。
为了简化业务系统实现以上需求,无纸化支撑系统将业务系统对电子凭证的
管理进行分析整理后,归纳出对电子凭证库的接口需求,分为电子凭证库客户端接口和电子凭证库服务端接口两大类:
1、 电子凭证库客户端接口主要提供凭证盖章、查看及打印可视化的操作。
2、 电子服务端接口主要提供凭证保存及发送等后台操作。
以下分客户端接口和服务端接口分别阐述相关接口,并提供部分调用示例供
财政、人行、商业银行业务系统参考开发。
2 电子凭证库客户端接口
本章节描述了电子凭证库客户端的接口,调用方式采用ocx调用。调用接口
异常时,需要调用GetLastErr接口获取异常信息并反馈给前端用户。
2.1 设置电子凭证服务地址
2.1.1 功能说明
设置电子凭证服务地址,用于与电子凭证服务器通讯。
电子凭证库客户端为简化业务系统调用的步骤,封装了如获取电子凭证模
板、根据凭证号读取凭证等共用的查询操作,而此类操作需要电子凭证库客户端根据业务系统设置的地址访问电子凭证库服务。
业务系统调用电子凭证库客户端时,第一步应设置电子凭证库与电子印章的服务地址。
由于业务系统的客户端所处的网段不同,在设置电子凭证库与电子印章服务地址时需要根据
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
IP地址适配。
若业务系统客户端IP地址为外网网段,应设置电子凭证库与电子印章服务的外网地址;
若业务系统客户端IP地址为内网网段,应设置电子凭证库与电子印章服务的内网地址;
2.1.2 函数名
int SetEvoucherServiceUrl (String url);
2.1.3 输入参数
2.1.4 输出
2.1.5 代码示例
String evoucherUrl =null;//电子凭证库服务地址 String estampUrl =null;//电子印章服务地址 Int a=0;//返回结果
//读取业务系统客户端IP地址,并根据网段判断IP地址是内外网 boolean isInner=this. decisionNetwork(客户端IP); If(isInner){
//客户端为内网地址,获取电子凭证库与电子印章内网地址
evoucherUrl =this.getInnerEVoucherUrl(); estampUrl =this. getInnerEStampUrl(); }else{
//客户端为外网地址,获取电子凭证库与电子印章外网地址
evoucherUrl =this.getOuterEVoucherUrl(); estampUrl =this. getOuterEStampUrl(); }
//设置电子凭证库服务地址
a=OCX. SetEvoucherServiceUrl(evoucherUrl); if(a!=0)
throw new RuntimeException(“初始化电子凭证库服务地址失败,”+ OCX. GetLastErr()); //设置电子印章服务地址
a= OCX. SetEstampServiceUrl (estampUrl); if(a!=0)
throw new RuntimeException(“初始化电子印章库服务地址失败,”+ OCX. GetLastErr()); // OCX初始化 // OCX其他操作
2.2 设置电子印章服务地址 2.2.1 功能说明
设置电子印章服务器地址,用于与电子印章服务器通讯。
电子凭证库客户端签章与验章操作都需要访问电子印章服务,若通过电子凭
证库服务访问电子印章,大大的降低了客户端签章与验章的性能。采用电子凭证库客户端直连电子印章服务的模式使签章、验章更加的高效。
2.2.2 函数名
int SetEstampServiceUrl (String url);
2.2.3 输入参数
2.2.4 输出
2.3 生成电子签章报文 2.3.1 功能说明
业务系统客户端调用此接口生成电子签章结果报文传至服务端,再由业务系统服务端调用电子凭证服务接口“写入客户端签章的凭证”保存电子凭证,完成客户端电子签章操作。
客户端签章依赖UKEY,电子印章类型分为公章与私章两类。 私章烧制入UKEY,公章需要与UKEY的证书绑定。
2.3.2 函数名
String GetVoucherStamp(String certID, String admDivCode, int stYear, String
vtCode, String stamp, String voucherXML)
2.3.3 输入参数
2.3.4 输出参数
2.4 生成电子签名报文 2.4.1 功能说明
业务系统客户端调用此接口获取电子签名结果报文传至服务端,再由业务系统服务端调用电子凭证服务接口“写入客户端签名的凭证”保存电子凭证,完成客户端电子签名操作。
2.4.2 函数名
String GetVoucherSign(string certID, string admDivCode, int stYear, string vtCode, string certInfo,string voucherXML );
2.4.3 输入参数
2.4.4 输出参数
2.5 凭证显示控件(OCX)
查询打印控件用于实现对电子凭证的可视化显示打印。
包括控件初始化、加载凭证和设置需要显示的凭证3个主要接口; 加载凭证:增加不带报文的接口。 辅助接口包括凭证打印接口。
2.5.1 初始化
2.5.1.1 功能说明
用于初始化显示控件,从电子凭证服务端加载电子凭证的模板。
2.5.1.2 函数名
int Initialize(String certID, String admDivCode, int stYear, String vtCode, String reserver1, int displayMode, int ParamValue, int defaultPage);
2.5.1.3 输入参数:
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
2.5.1.4 输出参数:
2.5.2
加载电子凭证
2.5.2.1 功能说明
添加要显示凭证信息用于客户端程序,调用此方法添加需要显示的签章凭证信息,逐笔添加。
2.5.2.2 函数名
int AddVoucher( String voucherNo, String xmlBody);
2.5.2.3 输入参数
2.5.2.4 输出参数
2.5.3 指定凭证号加载电子凭证
2.5.3.1 功能说明
不带报文的接口,接口自动从服务器加载凭证
对于回单不做全版本验证(只验证最新数据的完整性),显示时加载回单的原文进行展现。
2.5.3.2 函数名
int AddVoucherfromServer(String voucherNo);
2.5.3.3 输入参数
2.5.3.4 输出参数
2.5.4 指定原文加载电子凭证
2.5.4.1 功能说明
可将从后台下载的凭证(调用后台readVoucherAgain得到的报文)直接加载到OCX中。
int AddVoucherXmls(String XmlVouchers, int bUpdatefromVoucher);
2.5.4.3 输入参数
2.5.4.4 输出参数
2.5.5 显示指定的凭证(凭证编号)
2.5.5.1 功能说明
定位到显示的凭证,OCX自动验签(章),取章显示。
2.5.5.2 函数名
int SetCurrentVoucher (String voucherNo);
2.5.5.3 输入参数
2.5.6 显示指定的凭证(凭证索引)
2.5.6.1 功能说明:
本接口已不推荐使用。
定位到显示的凭证,OCX自动验签(章),取章显示。
2.5.6.2 函数名
int displayVoucherByIndex(int voucherIndex);
2.5.6.3 输入参数
2.5.6.4 输出参数
2.5.7 打印凭证(凭证号)
2.5.7.1 功能说明
打印加载到显示控件的凭证。
int PrintVoucherByNo(String voucherNo, int pageNo);
2.5.7.3 输入参数
2.5.7.4 输出参数
2.5.8 打印凭证(按凭证索引号)
2.5.8.1 功能说明
打印加载到显示控件的凭证。
2.5.8.2 函数名
Int PrintVoucherByIndex(int voucherIndex, int pageNo);
2.5.8.3 输入参数
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
2.5.8.4 输出参数
2.5.9 打印凭证(按索引范围批量打印)
2.5.9.1 功能说明
打印加载到显示控件的凭证。
2.5.9.2 函数名
int PrintVoucherByIndexRange(int beginIndex, int endIndex int pageNo);
2.5.9.3 输入参数
2.5.9.4 输出参数
2.5.10 打印当前显示的凭证
2.5.10.1 功能说明
打印当前ocx中显示的凭证
2.5.10.2 函数名
int PrintCurrentVoucher(int bShowPrintSettingDialog)
2.5.10.3 输入参数
2.5.10.4 输出参数
2.5.11 清空凭证列表
2.5.11.1 功能说明
清除控件中的数据,保留模板。
2.5.11.2 函数名
void ResetContent();
2.5.12 移除指定凭证(凭证编号)
2.5.12.1 功能说明
删除控件中某笔凭证数据。
2.5.12.2 函数名
int removeVoucherByNo(String VoucherNo );
2.5.12.3 输入参数
2.5.12.4 输出参数
2.5.13 移除指定凭证(凭证索引)
2.5.13.1 功能说明
删除控件中某笔凭证数据。
2.5.13.2 函数名
int removeVoucherByIndex(int voucherIndex );
2.5.13.4 输出参数
2.5.14 查看凭证的上一联
2.5.14.1 功能说明
实现查看凭证的上一联。
2.5.14.2 函数名
int PageUp (void);
2.5.14.3 输出参数
2.5.15 查看凭证下一联
2.5.15.1 功能说明
实现查看凭证下一联
int PageDown (void);
2.5.15.3 输出参数
2.5.16 获取凭证联数
2.5.16.1 功能说明
获取凭证总联数
2.5.16.2 函数名
int GetPageCount (void);
2.5.16.3 输出参数
2.5.17 获取加载的凭证总数
2.5.17.1 功能说明
获取当前OCX已加载的凭证总数
2.5.17.2 函数名
int GetVoucherCount(void)
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
2.5.17.3 输入参数
无
2.5.17.4 输出参数
2.5.18 显示下一条凭证
2.5.18.1 功能说明
跳转显示OCX缓存中的下一条凭证
2.5.18.2 函数名
int GotoNextVoucher(void)
2.5.18.3 输入参数
无
2.5.18.4 输出参数
2.5.19 显示上一条凭证
2.5.19.1 功能说明
跳转显示OCX缓存中的上一条凭证
2.5.19.2 函数名
int GotoPrevVoucher(void)
2.5.19.3 输入参数
无
2.5.19.4 输出参数
2.5.20 获取当前显示凭证的凭证编号
2.5.20.1 功能说明
获取当前显示凭证的凭证编号
2.5.20.2 函数名
int GetCurrentVoucherNo(void)
2.5.20.3 输入参数
无
2.5.21 获取当前的显示的凭证索引
2.5.21.1 功能说明
获取当前显示的凭证索引
2.5.21.2 函数名
int GetCurrentVoucherIndex(void)
2.5.21.3 输入参数
无
2.5.21.4 输出参数
2.5.22 获取当前显示的凭证联号
2.5.22.1 功能说明
获取当前显示的凭证联号
2.5.22.2 函数名
int GetCurrentPageNo(void)
无
2.5.22.4 输出参数
2.5.23 显示任意联号凭证
2.5.23.1 功能说明
显示凭证时,可跳转到任意联显示
2.5.23.2 函数名
int GotoPage (int PageNo);
2.5.23.3 输入参数
2.5.23.4 输出参数
2.5.24 放大显示凭证
2.5.24.1 功能说明
放大显示当前正在显示的凭证
void ZoomIn (void);
2.5.25 缩小显示凭证
2.5.25.1 功能说明
缩小显示当前正在显示的凭证
2.5.25.2 函数名
void ZoomOut(void);
2.5.26 自动适应显示凭证
2.5.26.1 功能说明
缩放页面显示比例到刚好在查看区域中完整显示出来。
2.5.26.2 函数名
void ZoomToFit(void);
2.5.27 刷新显示凭证
2.5.27.1 功能说明
实现动态显示签章效果(即显示凭证时进行签章操作,签章后调用此接口可刷新凭证显示印章)
2.5.27.2 函数名
int Refresh (String voucherNo)
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
2.5.27.3 输入参数
2.5.27.4 输出参数
2.5.28 设定显示指定索引凭证
2.5.28.1 功能说明
设置显示指定索引的凭证
2.5.28.2 函数名
int SelectVoucherIndex(int Index)
2.5.28.3 输入参数
2.5.28.4 输出参数
2.5.29 设置显示指定凭证号凭证
2.5.29.1 功能说明
设置显示指定凭证号的凭证
2.5.29.2 函数名
int SelectVoucherNo(String voucherNo)
2.5.29.3 输入参数
2.5.29.4 输出参数
2.5.30 设置凭证显示模式
2.5.30.1 功能说明
设置凭证的显示模式,支持单页模式和列表模式
2.5.30.2 函数名
int SetDisplayMode(int nDisPlayMode, int ParamValue)
2.5.30.3 输入参数
2.5.30.4 输出参数
2.6 不显示控件打印(后台批量打印) 2.6.1 功能说明
实现凭证不显示控件后台批量打印。
2.6.2 函数名
int PrintAllVoucher (String certID, String admDivCode, int stYear, String vtCode, int defaultPage,String voucherNo);
2.6.3 输入参数
2.6.4 输出参数
2.7 打印预览接口 2.7.1 功能说明
实现凭证打印预览。
2.7.2 函数名
int PrintPreview (String certID, String admDivCode, int stYear, String vtCode, int PageNo,String voucherNo);
2.7.3 输入参数
2.7.4 输出参数
2.8 设置当前用户名 2.8.1 功能说明
设置当前用户名,用于打印凭证时在凭证中显示。
2.8.2 函数名
int SetCurrentUser(String UserName);
2.8.3 输入参数
2.8.4 输出参数
2.9 清除U-key缓存 2.9.1 功能说明
清除U-Key对于pin码的缓存
2.9.2 函数名
int ClearPinCache(void);
2.9.3 输出参数
2.10 修改U-key PIN码 2.10.1 功能说明
修改UKEY的pin码
2.10.2 函数名
int ChangeUserPin(String oldPin, String newPin);
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
2.10.3 输入参数
2.10.4 输出参数
2.11 查看操作日志和签章信息 2.11.1 功能说明
实现查看指定凭证号的操作日志以及签章信息
2.11.2 函数名
int GetLogInfo (String certID, String admDivCode, int stYear, String vtCode, String voucherNo);
2.11.3 输入参数
2.11.4 输出参数
2.12 显示操作日志
2.12.1.1 功能说明
实现查看指定凭证号的操作日志以及签章信息
2.12.1.2 函数名
int DlgShowLogInfo(String certID, String admDivCode, int stYear, String vtCode, String voucherNo)
2.12.1.3 输入参数
2.12.1.4 输出参数
2.13 获取印章id接口 2.13.1 功能说明
弹出选章界面,获取选章印章的id。
此接口只封装了针对科友自身的印章系统,其他公司印章接口不能通过此接口获取印章id。
2.13.2 函数名
String DlgSelectStampId(void) ;
2.13.3 输入参数
无。
2.13.4 输出参数
2.14 获取证书id接口 2.14.1 功能说明
弹出选证书界面,获取所选证书的证书id。
此接口只封装了针对科友自身的印章系统,其他公司印章接口不能通过此接口获取印章id。
2.14.2 函数名
String DlgSelectCertId (void)
2.14.3 输入参数
无
2.14.4 输出参数
2.15 获取ocx调用过程异常信息 2.15.1 功能说明
ocx调用接口异常时,通过该接口获取错误信息。
2.15.2 函数名
String GetLastErr ();
2.15.3 输入参数
无。
2.15.4 输出参数
2.16 验证Ukey Pin码接口 2.16.1 功能说明
用户可调用此接口选择证书并验证Ukey Pin码,若UKEY中含有多个证书则会弹出提示框选择证书。
2.16.2 函数名
int VerifyPin(void);
2.16.3 输入参数
无
2.16.4 输出参数
2.17 获取当前选择证书的CN接口 2.17.1 功能说明
用户调用此接口返回当前用户选择证书的CN。
2.17.2 函数名
String GetCurCertCN(void);
2.17.3 输入参数
无
2.17.4 输出参数
2.18 获取操作人证书列表 2.18.1 功能说明
用户调用此接口返回当前Ukey中所有操作人证书列表。
2.18.2 函数名
String GetOperatorCertsList (String StampID);
2.18.3 输入参数
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
2.18.4 输出参数
3 电子凭证库服务端接口
本章节描述了电子凭证库服务端的接口,调用方式采用WebService。调用异
常见服务端接口异常。
3.1 电子凭证写入接口
本章节描述了与电子凭证保存相关的接口。
3.1.1 写入客户端签章的凭证
3.1.1.1 功能说明
客户端对业务数据签章完毕后,调用此接口保存签章及凭证信息入电子凭证
库,对同一凭证同一盖章位置不允许重复保存。
3.1.1.2 函数名
Public Map<String,String> saveStampVoucher(String certID, String
admDivCode, int stYear, String vtCode, byte[] signedVoucher) throws Exception;
3.1.1.3 输入参数
32
3.1.1.5 异常
3.1.2 写入客户端签名的凭证
3.1.2.1 功能说明
客户端对业务数据签名后,调用此接口保存签名及凭证信息入电子凭证库。
3.1.2.2 函数名
public Map<String,String> saveSignVoucher(string certID, string
admDivCode, int stYear, string vtCode, byte[] signedVoucher) throws Exception;
3.1.2.3 输入参数
33
3.1.2.5 异常
3.1.3 写入指定位置服务器签章的凭证
3.1.3.1 功能说明
使用业务系统指定的印章编号对电子凭证进行服务器端签章并保存入库。
3.1.3.2 函数名
Map<String,String> signStampByNos (string certID ,String admDivCode, int
setYear, String vtCode, byte[] vouchers, String Stamp) throw Exception;
3.1.3.3 输入参数
34
3.1.3.5 异常
3.1.4 写入指定位置服务器签名的凭证
3.1.4.1 功能说明
将业务系统指定的印章编号进行服务器端签名并保存入库
3.1.4.2 函数名
Map<String,String> signByNos (string certID ,String admDivCode, int setYear,
String vtCode, byte[] vouchers, String Stamp) throw Exception;
3.1.4.3 输入参数
35
3.1.4.4 输入参数
3.1.4.5 异常
3.1.5 写入并发送指定位置服务器签章的凭证
3.1.5.1 功能说明
指定的印章编号进行服务器端签章并保存入电子凭证库并发送
3.1.5.2 函数名
Map<String,String> signStampByNosAndSend (string certID ,String admDivCode, int setYear, String vtCode, byte[] vouchers, String Stamp, String srcOrgType, String decOrgType) throw Exception;
36
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
3.1.5.4 输入参数
3.1.5.5 异常
3.1.6 写入并发送指定位置服务器签名的凭证
3.1.6.1 功能说明
指定的印章编号进行服务器端签名保存入电子凭证库并发送。
Map<String,String> signByNosAndSend (string certID ,String admDivCode, int setYear, String vtCode, byte[] vouchers, String Stamp, String srcOrgType, String decOrgType) throw Exception;
3.1.6.3 输入参数
3.1.6.4 输出参数
3.1.6.5 异常
3.1.7
3.1.7.1 功能说明
此接口依赖电子凭证库系统管理功能“服务器端签章设置”功能。
此接口根据“服务器端签章设置”功能中设置的签章位置及印章ID对电子凭证采用服务器电子签章并发送。
此接口已不建议使用,建议使用替代接口“写入指定位置服务器签章的凭证”。
3.1.7.2 函数名
Public Map<string,string> writeVoucher (string certID ,String admDivCode, int stYear, String vtCode, byte[] voucher, String srcOrgType, String decOrgType) throw Exception;
3.1.7.3 输入参数
3.1.7.4 输出参数
3.1.7.5 异常
3.1.8
3.1.8.1 功能说明
此接口依赖电子凭证库系统管理功能“服务器端签章设置”功能。
此接口根据“服务器端签章设置”功能中设置的签名位置及证书SN对电子凭证采用服务器电子签名并发送。
此接口已不建议使用,建议使用替代接口“写入指定位置服务器签名的凭证”
3.1.8.2 函数名
public Map<String,String> saveAndSendVoucher(string certID, string admDivCode, int stYear, string vtCode, byte[] voucher, String srcOrgType, String decOrgType) throws Exception;
3.1.8.3 输入参数
3.1.8.4 输出参数
3.1.8.5 异常
3.2 电子凭证查询接口 3.2.1 查询未签收的凭证
3.2.1.1 功能说明
用于指定凭证数目读取电子凭证库中未签收的外部系统电子凭证数据,若传入凭证读取数过大,则按电子凭证库设置的凭证读取数上限返回电子凭证数据。
未读取和未签收都可以重复读取,未读取的凭证读取后凭证状态为已读取。 此接口读取的电子凭证应在业务系统入库后调用签收接口确认凭证状态,避免造成电子凭证重复读取。
业务系统调用此接口可采用轮询线程,或者使用其配套的通知接口“电子凭证到达通知”。
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
3.2.1.2 函数名
public byte[]readVoucherAgain(String certID, String admDivCode, int stYear, Strin readVoucherAgain g vtCode, int voucherCount) throws Exception;
3.2.1.3 输入参数
3.2.1.4 输出参数
3.2.1.5 异常
3.2.2 批量查询凭证状态
3.2.2.1 功能说明
用于批量查询发送单或回单的凭证状态及失败状态下的错误原因。 电子凭证在此接口中分为我方机构发起以及外部机构发起两类,
若电子凭证由我方机构发起,查询的状态结果参照输出参数中的“发送单状态”部分。
若电子凭证由对方机构发起,我方机构接收并发送回单,查询的状态结果参照输出参数中的“回单状态”部分。
3.2.2.2 函数名
public Map<String,Object[]> String admDivCode, int stYear, String vtCode, String[] voucherNo);
3.2.2.3 输入参数
3.2.2.4 输出参数
3.2.2.5 异常
3.2.3 批量查询被退回的凭证号(接收失败、签收失败、签收退回)
3.2.3.1 功能说明
业务系统调用电子凭证库接口发送电子凭证后,需及时获取被退回的电子凭证并进行后续的业务处理,避免延缓资金的支出。
此接口可按指定的日期段查询被退回的电子凭证,电子凭证被退回包含对方电子凭证库接收失败、对方业务系统签收失败、对方业务系统签收退回三种情况:
被对方电子凭证库退回,对方电子凭证库在接收到电子凭证解析失败会发送接收失败回执,如原文被篡改导致的验章失败,业务系统根据退回原因可选择重发或撤销电子凭证,从而修改对应电子凭证的状态;
被对方业务系统程序退回,对方电子凭证库接收电子凭证入库后,业务系统读取电子凭证时发生异常无法入库,此时业务系统会调用签收失败接口退回凭证,如发送授权支付额度给代理银行,而账户并非本行, 业务系统根据退回原因可选择重发或撤销电子凭证,从而修改对应电子凭证的状态;
被对方业务系统人工退回,对方业务系统对电子凭证签收成功后,人工对电子凭证进行审核或支付操作时,发现凭证有问题或无法转账支付,业务系统调用签收退回接口退回凭证,如’非我行代理预算单位’,’该账户已在我行销户’,’归属网点行号或行名错误’, 业务系统需作废或撤销凭证后重新生成凭证,从而修改对应电子凭证的状态;
业务系统在使用此接口时可根据业务需求选择查询全部退回类型的电子凭证,或者选择查询部分退回类型的电子凭证。
3.2.3.2 函数名
public Map<String,Object[]> batchQueryVoucherNosByBackStatus(String certID, String admDivCode,int stYear, String vtCode, String startDate, String endDate, String[] backStatus) throws Exception;
3.2.3.3 输入参数
3.2.3.4 输出参数
3.2.3.5 异常
3.2.4 指定凭证类型查询盖章位置及名称
3.2.4.1 功能说明
用于查询电子凭证库的盖章位置及名称。
3.2.4.2 函数名
public Map<String,String> queryStampPositionWithName (String certID, String admDivCode, int stYear, String vtCode);
3.2.4.3 输入参数
3.2.4.4 输出参数
3.2.4.5 异常
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
3.2.5 指定凭证号查询凭证
3.2.5.1 功能说明
指定电子凭证号查询有效的电子凭证,不过滤电子凭证的发送、签收、退回
等状态。
3.2.5.2 函数名
public byte[] readVoucherByNo(String certID, String admDivCode, int stYear,
String vtCode, String[] voucherNo) throws Exception;
3.2.5.3 输入参数
3.2.5.4 输出参数
3.2.5.5 异常
3.2.6 查询凭证打印次数
3.2.6.1 功能说明
用于查询指定凭证的打印次数,只支持单笔查询。
3.2.6.2 函数名
public int queryVoucherPrintCount(string certID, string admDivCode, int stYear,
string vtCode, String VoucherNo) throws Exception;
3.2.6.3 输入参数
3.2.6.4 输出参数
3.2.6.5 异常
3.2.7 查询凭证类型
3.2.7.1 功能说明
用于查询电子支付库中已配置的电子凭证类型。
3.2.7.2 函数名
public Map<String,String>
admDivCode, int stYear); queryVoucherType(string certID, string
3.2.7.3 输入参数
3.2.7.4 输出参数
3.2.7.5 异常
3.2.8.1 功能说明
指定凭证号查询电子凭证的已盖章列表。
3.2.8.2 函数名
public Map<String, String> queryVoucherSignStampPositions(String certID,
String admDivCode, int stYear, String vtCode, String voucherNo)
3.2.8.3 输入参数
3.2.8.4 输出参数
3.2.8.5 异常
3.2.9.1 功能说明
根据传入机构读取电子印章服务器中对应的印章列表,此接口仅适用于江南
科友的电子印章系统。
3.2.9.2 函数名
public List<Map<String,String>> getStampInfo
admDivCode, int stYear, String orgType); (String certID,String
3.2.9.3 输入参数
3.2.9.4 输出参数
3.2.9.5 异常
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
3.2.10 获取签名、签章证书SN
3.2.10.1 功能说明
根据凭证类型、区划码、年度、凭证号、凭证位置获取电子凭证的签名人或签章人证书
的SN。
3.2.10.2 函数名
public String getSnInfo(String certID, String admDivCode, int stYear,
String vtCode, String[] voucherNos, String stampNo)
3.2.10.3 输入参数
3.2.10.4 输出参数
3.2.10.5 异常
3.2.11 指定机构查询凭证状态接口
3.2.11.1 功能说明
指定目标机构查询电子凭证状态。适用与一对多的电子凭证转发,无此业务
不建议使用。
电子凭证在此接口中分为我方机构发起以及外部机构发起两类,
若电子凭证由我方机构发起,查询的状态结果参照输出参数中的“发送单状态”部分。
若电子凭证由对方机构发起,我方机构接收并发送回单,查询的状态结果参照输出参数中的“回单状态”部分。
3.2.11.2 函数名
public Map<String,Object[]> queryVoucherStatusByOrgType (String certID,String
admDivCode, int stYear, String vtCode, String[] voucherNo,String decOrgType);
3.2.11.3 输入参数
3.2.11.4 输出参数
3.2.11.5 异常
3.2.12 查询日志信息接口
3.2.12.1 功能说明
用于查询电子凭证库日志、盖章/签名信息。
3.2.12.2 函数名
public byte[] queryVoucherLogs (String certID,String admDivCode, int stYear,
String vtCode, String[] voucherNos);
3.2.12.3 输入参数
3.2.12.4 输出参数
3.2.12.5 异常
3.2.13
3.2.13.1 功能说明
凭证读取功能用于指定凭证数目读取电子凭证库中未读取的外部系统电子
凭证数据,若传入凭证读取数过大,则按电子凭证库设置的凭证读取数上限返回电子凭证数据。
业务系统调用此接口获取电子凭证时,电子凭证状态已修改为已读取。此时
业务系统若入库失败,将导致电子凭证丢失。
此接口需要 “查询未签收凭证”接口配合处理上述数据丢失的情况,处理
较为复杂,已不建议使用,请直接使用替代接口“查询未签收凭证”。
3.2.13.2 函数名
public byte[] readVoucher(String certID, String admDivCode, int stYear, String
vtCode, int voucherCount) throws Exception;
3.2.13.3 输入参数
3.2.13.4 输出参数
3.2.13.5 异常
3.2.14
3.2.14.1 功能说明
用于查询由本方机构发起的电子凭证发送后的状态。
此接口已不建议使用,请使用替代接口“批量查询凭证状态”。
3.2.14.2 函数名
public int querySentVoucherStatus(string certID, string admDivCode, int stYear, string vtCode, string voucherNo) throws Exception;
3.2.14.3 输入参数
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
3.2.14.4 输出参数
3.2.14.5 异常
3.2.15
3.2.15.1
功能说明
用于批量查询由本方机构发起的电子凭证发送后的状态。 此接口已不建议使用,请使用替代接口“批量查询凭证状态”。
3.2.15.2 函数名
public Map<String,String> batchQuerySentVoucherStatus (String certID,String admDivCode, int stYear, String vtCode, String[] voucherNos);
3.2.15.3 输入参数
57
3.2.15.4 输出参数
3.2.15.5 异常
3.2.16
3.2.16.1 功能说明
用于查询电子凭证库中的盖章位置编号。
此接口已不建议使用,请使用替代接口“指定凭证类型查询盖章位置及名称”。
3.2.16.2 函数名
public Object[] queryStampPosition(String certID, String admDivCode, int stYear, String vtCode);
3.2.16.3 输入参数
58
3.2.16.4 输出参数
3.2.16.5 异常
3.3 电子凭证状态更新接口
本章节描述电子凭证库在入库后的状态更新类接口,包含电子凭证的签收状态,退回状态、作废状态以及发送状态。下图描述了电子凭证状态的流转关系。
59
3.3.1 确认凭证签收成功
3.3.1.1 功能说明
业务系统处理未签收的电子凭证成功后,调用此接口反馈签收状态至发送方业务系统。
3.3.1.2 函数名
public void confirmVoucher(string certID, string admDivCode, int stYear, string vtCode, string[] voucherNo);
3.3.1.3 输入参数
3.3.1.4 输出参数
无。
60
3.3.1.5 异常
3.3.2 确认凭证签收失败
3.3.2.1 功能说明
业务系统处理未签收的电子凭证失败后,调用此接口反馈签收状态至发送方业务系统。
3.3.2.2 函数名
public void confirmVoucherFail(string certID, string admDivCode, int stYear, string vtCode, string[] voucherNo, string[] errMsg);
3.3.2.3 输入参数
3.3.2.4 输出参数
无。
61
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
3.3.2.5 异常
3.3.3 退回凭证
3.3.3.1 功能说明
凭证退回接口用于指定凭证号退回电子凭证至源机构,需说明退回原因。
需退回的电子凭证的状态应为签收成功。
3.3.3.2 函数名
Public void returnVoucher(string certid,string admDivCode, int stYear, string
vtCode, string[] voucherNo, String[] errMsg)
3.3.3.3 输入参数
3.3.3.4 输出参数
无
3.3.3.5 异常
62
3.3.4 作废凭证
3.3.4.1 功能说明
作废本方机构写入电子凭证的全部签名或签章记录。
外部机构写入的的电子凭证版本无法作废,可调用“退回接口”退回至源机
构。
3.3.4.2 函数名
public void discardVoucher(String certID, String admDivCode, int stYear, String
vtCode, String[] voucherNo) throws Exception;
3.3.4.3 输入参数
3.3.4.4 输出参数
无
3.3.4.5 异常
63
3.3.5 发送凭证
3.3.5.1 功能说明
将本方写入的电子凭证及其签名签章结果发送给指定的机构。
此接口建议使用,在电子凭证重复发送时的必要接口。
3.3.5.2 函数名
public void sendVoucher(String certID, String admDivCode, String srcOrgType,
String decOrgType, int stYear, String vtCode, String[] voucherNo) throws Exception;
3.3.5.3 输入参数
3.3.5.4 输出参数
无
3.3.5.5 异常
64
3.3.6 发送全版本凭证
3.3.6.1 功能说明
将凭证全版本签章记录发送到指定的机构;不区分电子凭证的签名签章结果写入方(本方机构或外部机构)。适用与一对多的电子凭证转发,无此业务不建议使用。
3.3.6.2 函数名
public void sendVoucherFullSigns(String certID, String admDivCode,
String srcOrgType, String decOrgType, int stYear, String vtCode,
String[] voucherNo) throws Exception;
3.3.6.3 输入参数
3.3.6.4 输出参数
无
3.3.6.5 异常
65
3.3.7 指定位置撤销凭证
3.3.7.1 功能说明
指定撤销电子凭证的签名或签章记录。
撤销的电子凭证必须是本方写入的,外部机构写入的的电子凭证版本不允许撤销,可调用“退回接口”退回至源机构。
3.3.7.2 函数名
public void cancelStampWithPosition(String certID, String admDivCode, int stYear, String vtCode, String voucherNo, String stamp_no)
3.3.7.3 输入参数
3.3.7.1 输出参数
66
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
3.3.8 撤销凭证(不建议使用)
3.3.8.1 功能说明
撤销凭证将作废凭证最后一次的凭证版本记录,与之相关的签名/签章信息将失效。
撤销的电子凭证必须是本方写入的,外部机构写入的电子凭证版本不允许撤销,可调用“退回接口”退回至源机构。
本接口已不建议使用,建议使用替代接口“指定位置撤销凭证”。
3.3.8.2 函数名
public void cancelStamp(String certID, String admDivCode, int stYear, String vtCode, String[] eVoucherList) throws Exception;
3.3.8.3 输入参数
3.3.8.4 输出参数
无
67
3.4 电子凭证库回调接口
3.4.1.1 电子凭证到达通知 3.4.1.1.1 功能说明
对方业务系统的电子凭证到达本方电子凭证库后,触发本方电子凭证库调用本方业务系统的到达通知接口。此接口读取的凭证与“查询未签收的凭证”接口返回结果同步;业务系统接收到到达通知后可调用“查询未签收的凭证”接口获取对应凭证类型的电子凭证。
3.4.1.1.2 函数名
Public void voucherArrivedNotify(String admDivCode,int stYear,String vtCode);
3.4.1.1.3 输入参数
3.4.1.1.4 输出参数
68
3.4.1.1.5 异常
3.5 电子凭证库绿色通道接口 3.5.1 数据请求
3.5.1.1 功能描述
本方业务系统与对方业务系统借用双方凭证库的消息中间件进行数据传输,数据请求为同步消息发送接收模式,本方业务系统发送数据后需接收到对方业务系统的确认接收回执后才完成数据发送操作。
3.5.1.2 函数名
public byte[] requestData(String certID, String admDivCode, String srcOrgType, String decOrgType, int stYear, byte[] message) throw Exception;
3.5.1.3 输入参数
69
3.5.1.5 异常
3.5.2 数据发送
3.5.2.1 功能描述
本方业务系统通过凭证库的消息中间件作为传输媒介发送数据给对方业务系统,发送完成后发送方即成功结束;对方凭证库检查到消息中间件中消息后异步通知接收方业务系统有消息到达。
3.5.2.2 函数名
public void sendData(String certID, String admDivCode, String srcOrgType, String decOrgType, int stYear, byte[] message) throw Exception;
3.5.2.3 输入参数
70
无
3.5.2.5 异常
3.5.3 获取数据
3.5.3.1 功能描述
获取业务系统通过借用凭证库消息中间件发送的数据(获取通过3.6.2数据发送接口发送的数据)。
3.5.3.2 函数名
public byte[] getData(String certID, int stYear, String admDivCode) throw Exception;
3.5.3.3 输入参数
3.5.3.4 输出参数
71
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
3.5.3.5 异常
3.5.4
数据请求回调(业务系统提供)
3.5.4.1 功能描述
接收方凭证库接收到业务系统发送的数据请求后通过webService接口回
调接收方业务系统获取对应数据并返回给发送方业务系统。
3.5.4.2 函数名
public byte[] requestData (byte[] requestMessage) throw Exception;
3.5.4.3 输入参数
3.5.4.4 输出参数
3.5.4.5 异常
3.5.5 数据发送到达通知(业务系统提供)
3.5.5.1 功能描述
接收方凭证库接收到业务系统发送的数据后通知业务系统有未处理的消
息,请处理该消息(通过3.6.3获取数据)
3.5.5.2 函数名
Public void dataArrivedNotify () throw Exception;
3.5.5.3 输入参数
3.5.5.4 输出参数
4 电子凭证业务报文格式
本章节描述了电子凭证业务中使用到的报文格式规范,“凭证原文”格式由
业务系统约定。
4.1 客户端待签名 (章)凭证报文
4.2 服务端待签名 (章)凭证报文
4.3 电子凭证报文
同”服务端待签名 (章)凭证报文”
4.4 凭证签名(章)位置报文
No=‘签名位置’或‘签章位置’
4.5 凭证签名(章)结果报文
4.6 业务系统与凭证库之间对账报文
4.7 业务系统与凭证库之间对账返回报文
同业务系统与凭证库之间对账报文
4.8 不带位置凭证服务端签名报文
同”服务端待签名 (章)凭证报文”
4.9 不带位置凭证服务端签名结果报文
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
4.10 不带位置凭证服务端验签报文
4.11 查询日志信息服务端返回报文
4.12 消息对账单报文
4.13 操作人证书列表
5 电子凭证库异常
5.1 客户端接口异常
5.2 服务端接口异常
本章节描述电子凭证库服务端接口的异常。
5.2.1 系统级异常
5.2.2 参数异常
5.2.3 报文异常
5.2.4 数据库访问异常
5.2.5 业务逻辑异常
5.2.6 签名服务异常
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
5.2.7 印章服务异常
5.2.8 消息中间件异常
5.2.9 接收凭证异常
5.2.10 回调异常
6 业务场景举例
6.1 直接支付业务
6.1.1 业务流程图
图6.1-1直接支付业务流程(反映与电子凭证库的调用关系)
6.1.2 流程说明
参见图6.1-1,直接支付凭证处理流程:
财政部门经办人在业务系统点击【签章】按钮,完成凭证签章操作:
1.1、 客户端调用:支付系统调用签章接口【getVoucherStamp生成电子凭
证签章报文】获取签章报文:
输出:【凭证签章返回报文】
签章接口完成证书PIN码输入验证,印章获取和签章动作处理。
1.2、 服务端:支付系统调用服务器签章入库接口【saveStampVoucher凭证
签章入库】保存【凭证签章返回报文】;同时保存业务系统操作。
财政部门复核人在业务系统点击【复核签章】按钮,完成凭证复核签章操作:
2.1、 客户端调用:支付系统调用签章接口【getVoucherStamp生成电子凭
证签章报文】获取签章报文:
输出:【凭证签章返回报文】
签章接口完成证书PIN码输入验证,印章获取和签章动作处理;签
章接口完成电子凭证验签(章)。
2.2、 服务端:支付系统调用服务器签章入库接口【saveStampVoucher凭证
签章入库】保存【凭证签章返回报文】;同时保存业务系统操作。
财政部门经办人在业务系统,完成凭证发送代理银行操作:
3.1、服务端:支付系统调用服务器发送接口【sendVoucher凭证发送】发送
电子凭证。
1、 代理银行读取直接支付凭证:
代理银行系统调用凭证库服务接口【readVoucherAgain未签收凭证读取】从
银行端电子凭证库获取直接支付凭证信息。
代理银行获取的直接支付凭证并解析入库
4.1、 如果是本行数据:调用凭证库服务接口【confirmVoucher凭证签收成
功】接口返回签收成功信息。
4.2、 如果不是本行数据:调用凭证库服务接口【confirmVoucherfail凭证签
收失败】接口返回签收失败信息。
2、 代理银行转账支付:
5.1、 转账失败:代理银行系统按照直接支付凭证中收付款人信息进行转账
处理。转账失败(如收款人错误):调用凭证库服务接口【ReturnVoucher
凭证退回】反馈签收失败信息,并作废直接支付凭证。
5.2、 转账成功: 代理银行在转账成功后,调用凭证库服务接口
【WriteVoucher凭证写入(发送)】接口上传直接支付凭证回单,“电
子凭证库”对直接支付凭证回单自动签章后发送给财政。
3、 财政部门登记直接支付凭证回单:
财政系统调用凭证库服务接口【readVoucherAgain未签收凭证读取】电子凭
证库获取直接支付凭证状态信息。如果状态=已回单,对财政端的数据进行相关业务处理,调用凭证库服务接口【confirmVoucher凭证签收成功】接口返回签收成功信息。
财政在支付系统回单登记界面,对未能通过自动任务读取到的凭证,通过调
用【querySentVoucherStatus】接口查询凭证的最新状态,如果状态=6被退回;财政对该凭证进行作废,并调用服务器接口【discardvoucher作废凭证】;如果状态=2接收失败或4签收失败,按照具体的业务情况对凭证进行处理。
可能存在以下情况:1)财政印章在银行没有备案,导致验章失败,无法接
收该凭证;2)如果将工行凭证错发至建行,建行会对该凭证签收失败;此类单据应及时备案印章,或将凭证重新发送至正确的接收银行(工行)等处理;3)如果是由于发送数据信息项不完整,财政需要作废该凭证。
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
6.2 授权支付业务
6.2.1 业务流程图
图6.2-1 授权支付业务流程(反映与支付系统、电子凭证库的调用关系)
6.2.2 流程说明
财政部门单位经办人在业务系统点击【发送】按钮,完成授权支付凭证写入和发送代理银行操作:
1.1、 服务端:支付系统调用服务器电子凭证【saveAndsendVoucher服务
器凭证写入发送】写入并发送【授权支付凭证报文】;同时保存业务
系统操作。
1、 代理银行系统读取授权支付凭证:
代理银行系统调用代理银行端凭证库服务接口【readVoucherAgain未签收凭
证读取】从代理银行端电子凭证库获取授权支付凭证信息。
代理银行系统获取的授权支付凭证解析入库
2.1如果是本行数据:调用凭证库服务接口【confirmVoucher凭证签收成功】
接口返回签收成功信息;继续资金转账处理。
2.2如果不是本行数据:调用凭证库服务接口【confirmVoucherfail凭证签
收失败】接口返回签收失败信息;
2、 财政部门单位经办人网银转账支付:
财政系统预算单位经办人在财政系统点击授权支付网银支付后跳转到银行
的网银支付界面。
单位使用代理银行颁发的证书登录网银系统后,代理银行网银界面查询
已下载的该单位的授权支付凭证信息,如下图所示
图15 网银转账支付界面
3.1、 用户确认支付:单位用户点击转账确认之后完成转账操作。
代理银行系统按照授权支付凭证中收付款人信息进行转账处理。转账失败
(如收款人错误):调用凭证库服务接口【ReturnVoucher凭证退回】反馈
签收失败信息,并作废直接支付凭证。
3、 资金转账成功:
代理银行在转账成功后,调用凭证库服务接口【WriteVoucher凭证写入(发
送)】接口上传授权支付凭证回单,“电子凭证库”对授权支付凭证回单自动签章后发送给财政。
4、 财政部门登记直接支付凭证回单:
财政系统调用凭证库服务接口【readVoucherAgain未签收凭证读取】电子凭
证库获取直接支付凭证状态信息。如果状态=已回单,对财政端的数据进行相关业务处理,调用凭证库服务接口【confirmVoucher凭证签收成功】接口返回签收成功信息。
财政在支付系统回单登记界面,对未能通过自动任务读取到的凭证,通过调
用【querySentVoucherStatus】接口查询凭证的最新状态,如果状态=6被退回;财政对该凭证进行作废,并调用服务器接口【discardvoucher作废凭证】;如果状态=2接收失败或4签收失败,按照具体的业务情况对凭证进行处理。
可能存在以下情况:1)财政印章在银行没有备案,导致验章失败,无法接
收该凭证;2)如果将工行凭证错发至建行,建行会对该凭证签收失败;此类单据应及时备案印章,或将凭证重新发送至正确的接收银行(工行)等处理;3)如果是由于发送数据信息项不完整,财政需要作废该凭证。
6.3 拨款业务
6.3.1 业务流程图
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
图6.3-1实拨支付业务流程(反映与支付系统、人民银行电子凭证库的调用关系)
6.3.2 流程说明
财政部门经办人在业务系统点击【签章】按钮,完成拨款单签章操作:
1.1、 客户端调用:支付系统调用签章接口【getVoucherStamp生成电子凭
证签章报文】获取签章报文:
输出:【凭证签章返回报文】
签章接口完成证书PIN码输入验证,印章获取和签章动作处理。
1.2、 服务端:支付系统调用服务器签章入库接口【saveStampVoucher凭证
签章入库】保存【凭证签章返回报文】;同时保存业务系统操作。
1、 财政部门复核人在业务系统点击【复核签章】按钮,完成凭证复核签章操作:
2.3、客户端调用:支付系统调用签章接口【getVoucherStamp生成电子凭证
签章报文】获取签章报文:
输出:【凭证签章返回报文】
签章接口完成证书PIN码输入验证,印章获取和签章动作处理;签
章接口完成电子凭证验签(章)。
2.4、服务端:支付系统调用服务器签章入库接口【saveStampVoucher凭证
签章入库】保存【凭证签章返回报文】;同时保存业务系统操作。
2、 财政部门经办人在业务系统,完成凭证发送人民银行操作:
3.1、服务端:支付系统调用服务器发送接口【sendVoucher凭证发送】发送
电子凭证。
3、 人民银行电子支付客户端签收拨款单
4.1、人行端电子凭证库调用【readVoucherAgain未签收凭证读取】自动
接收财政端发送过来的拨款单凭证,人行电子支付客户端查询到后进行签
收。
4.2、凭证签收成功调用电子凭证库【凭证签收】接口签收凭证
4.3、 凭证签收失败调用电子凭证库【凭证退回】接口退回凭证。
4.4、 凭证签收成功后调用人行业务系统【凭证接收】接口将电子凭证
发送给人行业务系统,如果是资金凭证自动生成回单写入电子支付安全控件
凭证待签章表。
资金转账:
人行业务系统进行资金转账。
回单签章发送
1) 从待签章凭证表读取待签章的拨款单回单。
2) 对待签章拨款单回单进行签章,调用【凭证写入】保存签章后的
拨款单凭证。
3) 签章完成以后调用【凭证发送】接口发送回单给财政。
4、 财政读取回单
财政系统调用凭证库服务接口【readVoucherAgain未签收凭证读取】电子凭
证库获取直接支付凭证状态信息。如果状态=已回单,对财政端的数据进行相关业务处理,调用凭证库服务接口【confirmVoucher凭证签收成功】接口返回签收成功信息。
财政在支付系统回单登记界面,对未能通过自动任务读取到的凭证,通过调
用【querySentVoucherStatus】接口查询凭证的最新状态,如果状态=6被退回;财政对该凭证进行作废,并调用服务器接口【discardvoucher作废凭证】;如果状态=2接收失败或4签收失败,按照具体的业务情况对凭证进行处理。
可能存在以下情况:1)财政印章在银行没有备案,导致验章失败,无法接
收该凭证;2)如果将工行凭证错发至建行,建行会对该凭证签收失败;此类单据应及时备案印章,或将凭证重新发送至正确的接收银行(工行)等处理;3)如果是由于发送数据信息项不完整,财政需要作废该凭证。
7 调用示例代码
7.1 客户端接口
7.1.1 JAVA调用
7.1.1.1 Ocx封装 //OCX封装(Java)
建议采用SWT框架封装OCX,封装步骤如下:
1、 获取OCX实例
private OleFrame _frame; //盛放ocx的最外层容器
private OleControlSite _site; // 存放ocx的空间 最后会放入oleframe 中去 private OleAutomation _auto; //用于执行方法
public AsspOcx ( Shell shell ){
this.shell = shell;
} _frame = new OleFrame(shell, SWT.BORDER); _site = new OleControlSite(_frame, SWT.NONE, _auto = new OleAutomation(_site); execActivexMethod(“Initialize”, new Object[]{url}); //初始化OCX "{4FC4CDDF-84E5-437C-8527-B23F6D70866C}");
2、 封装获取签章信息方法
public String getVoucherStamp(String certID, String admDivCode,
long stYear, String vtCode, String stamp, String voucher){
AsspOcx.GETVOUCHERSTAMP, new Object[]{ certID, admDivCode,new Variant v = execActivexMethod(
Long( stYear),vtCode,stamp,voucher } );
if(null==v){
}
}
3、封装执行OCX方法
public Variant execActivexMethod(String methodName, Object[] params){
return null; return v.getString(); }else{ int[] methodIDs = _auto.getIDsOfNames(new String[] int activeXMethodID = methodIDs[0]; { methodName });
} Variant[] paramVariant = null; if( params == null ){ } for(int
i=0,n=params.length; i<=n-1; i++){ } Variant variant = _auto.invoke(activeXMethodID, paramVariant); return variant; if( params[i] == null ){ } paramVariant[i] = Variant.NULL; paramVariant[i] = new Variant((String)params[i]); Long l = (Long)params[i]; paramVariant[i] = new Variant( l.longValue() ); Short l = (Short)params[i]; paramVariant[i] = new Variant( l.shortValue() ); Integer l = (Integer)params[i]; paramVariant[i] = new Variant( l.intValue() ); }else if( params[i] instanceof String ){ } else if( params[i] instanceof Long ){ paramVariant = new Variant[0]; paramVariant = new Variant[params.length]; }else{ }else if( params[i] instanceof Short ){ }else if( params[i] instanceof Integer ){
7.1.1.2 签章操作
7.1.2 C++调用
7.1.2.1 OCX控件注册
1、注册OCX
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
2、将OCX控件引入项目(建议使用MFC调用OCX)
在对话框界面点击鼠标右键,选择“插入ActiveX控件(X)”
选择EstampOcx.Control项 点击确定
在类向导中点击“添加类(C)”选择ActiveX控件中的MFC类(A)
在弹出的对话框中按图选择,点击完成会自动生成CDEstampOcx类。
7.1.2.2 签章操作
定义一个OCX变量:在ocx控件上点击右键添加变量。
7.1.3 C#调用
7.1.3.1 OCX控件注册
1、注册OCX
2、将OCX控件引入项目
工具栏-选择项
选择COM组件tab页,勾选EstampOcx.Control
确定
3、使用OCX控件
将OCX控件拖入设计视图,项目解决方案的引用中,会出现两个新的项
AxEstampOcxLib和EstampOcxLib
7.1.3.2 签章操作 签章操作
2、 签章
/// <summary>
/// 定义OCX私有变量
/// </summary>
private AxEstampOcx axEstampOcx = null;
1.1、控件初始化
private void ininAxEstampOcx()
{
try
{
axEstampOcx = new AxEstampOcx();
((System.ComponentModel.ISupportInitialize)(axEstampOcx)).BeginInit();
this.Controls.Add(axEstampOcx);
axEstampOcx.Visible = false;
((System.ComponentModel.ISupportInitialize)(axEstampOcx)).EndInit();
}
catch (Exception ex)
{
BaseMessageBox.ShowError("", "", "无纸化OCX控件-axEstampOcx在界面构造方法中初始化失败" + ex.Message);
}
}
1.2、获取签章结果并保存到凭证库
try
{
string vtCode ="2301";
int iYear;
string rgCode; //行政区划
string vouType;
string url; //凭证服务地址。
XMLGeneratorWithDetail<PayClearVoucher, PayRequest> generator =
new AuthClearVoucherXML(vtCode);
string xmlStr = generator.generatorXMLData(bills);//签章原文
string StampInfo;
string certID = stampService.getCerId(Global.userSession);
Organization org = ElementContainer.GetOrganizationById(Global.userSession.getTop_org());
string stampXML = axEstampOcx.GetVoucherStamp2("certid, rgcode, iYear, vouType,StampInfo, xmlStr,url);
if (stampXML == null || stampXML.Equals("(null)"))
{
return;
}
//调用后台保存凭证服务接口,后台实现参考java代码示例
stampService.sendAuthClearVoucherWithStamp(Global.userSession, bills, stampXML, true);
BaseMessageBox.ShowInfo("", "", "签章审核成功!");
this.listBill.RefreshData();
}
catch (Exception ex)
{
BaseMessageBox.ShowError("", "", ex.Message);
}
7.2 服务端接口
7.2.1 JAVA调用
本示例依赖axis.jar.
财政国库电子支付电子凭证库接口说明【2014.04.30.00】74_电子凭证
} } call = (Call) service.createCall(); // 设置远程地址 call.setTargetEndpointAddress(url); // 设置调用函数 call.setOperationName("queryVoucherType"); // 设置参数 String param1CertID = "000000"; String param2AdmdivCode = "500000"; int param3Year = 2012; // 调用接口 call.invoke(new Object[] { param1CertID, param2AdmdivCode, param3Year }); System.out.println("调用成功");
} catch (Exception ex) { } System.out.println("调用失败"); ex.printStackTrace();
7.2.2 C/C++调用
本示例代码依赖GSOAP.
102
} //凭证类型编码 char* vtCode="1101"; //凭证号 char *_voucherNo="201201004"; //返回值 int _querySentVoucherStatusReturn; // 初始化运行环境(只执行一次) soap_init(&soap); //调用凭证库业务接口 if(soap_call_ns1__querySentVoucherStatus(&soap, soap_endpoint, NULL, _certID, } // 清除运行环境变量 soap_end(&soap); // 卸载运行环境变量 soap_done(&soap); return 0; //打印错误信息 printf("%s",soap.fault->faultstring); //打印返回值 printf("%s",&_querySentVoucherStatusReturn); _admDivCode, _stYear,vtCode, _voucherNo, &_querySentVoucherStatusReturn)){ }else
{
7.2.3 C#调用
103
{
static void Main(string[] args)
{
object service = null;
//获取Web Service描述
WebClient wc = new WebClient();
string url =
"http://127.0.0.1:8080/realware/services/AsspFinanceService?wsdl";
Stream stream = wc.OpenRead(url);
ServiceDescription sd = ServiceDescription.Read(stream);
string sname = sd.Services[0].Name;
ServiceDescriptionImporter sdi = new ServiceDescriptionImporter();
sdi.ProtocolName = "soap";
sdi.Style = ServiceDescriptionImportStyle.Client;
sdi.AddServiceDescription(sd, null, null);
//指定命名空间
CodeNamespace cn = new CodeNamespace("WebServiceAgent"); //这里随便指定一个命名空间,但要与后面的一致
CodeCompileUnit ccu = new CodeCompileUnit();
ccu.Namespaces.Add(cn);
sdi.Import(cn, ccu);
//建立C#编译器
CSharpCodeProvider csc = new CSharpCodeProvider();
CodeDomProvider cdp = CodeDomProvider.CreateProvider("CSharp");
CompilerParameters cp = new CompilerParameters();
cp.GenerateExecutable = false;
cp.GenerateInMemory = true;
//添加编译条件
cp.ReferencedAssemblies.Add("System.dll");
cp.ReferencedAssemblies.Add("System.XML.dll");
cp.ReferencedAssemblies.Add("System.Web.Services.dll");
//编译程序集
CompilerResults cr = cdp.CompileAssemblyFromDom(cp, ccu);
//检查是否编译成功
if (cr.Errors.HasErrors)
{
MessageBox.Show("编译对象有错误。");
return;
}
//编译成功
//获取程序集
Assembly assembly = cr.CompiledAssembly;
//获取程序集类型
//前面的Test就是命名空间,必须要与前面指定的一致
104
//后面的TestService就是service的类名
//如果所有的服务器都是一致的类名,这里就可以写死,否则要动态提供类名
List<Type> serviceList = assembly.GetTypes().ToList();
string typeStr = "";
foreach (Type tp in serviceList)
{
if (tp.FullName.Contains("Service"))
{
typeStr = tp.FullName.Trim();
break;
}
}
if (string.IsNullOrEmpty(typeStr))
{
MessageBox.Show("未找到对应的WebService服务。");
return;
}
Type type = assembly.GetType(typeStr, true);
service = Activator.CreateInstance(type);
////获取方法
////如果所有的服务器都是一致的方法名,这里可以写死,否则就要动态提供方法名 MethodInfo mi = type.GetMethod("queryVoucherType");
////调用方法
////如果方法没有参数,第二个参数可以传递null,否则就要传递object数组,数组元素的顺序要与参数的顺序一致
try
{
object obj = mi.Invoke(service, new object[] { "000000", "500000", 2012 }); Console.Out.WriteLine("调用成功");
}
catch (Exception ex)
{
Console.Out.WriteLine("调用失败" + ex.Message);
}
}
}
}
105
本文标题:财政局国库支付中心-支付宝的“大野心”:中国金融“搅局者”61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1