java解析MT940报文,swift MT报文解析处理

swift 官方资料:https://www2.swift.com/knowledgecentre/publications/us5mc_20180720/2.0?topic=alec.htm#genalec

swift 百科:https://baike.baidu.com/item/SWIFT/1108075

prowide - swift 报文处理 开源框架:https://www.prowidesoftware.com/resources/quickstarts

pom.xml引用包:

com.prowidesoftware

pw-swift-core

SRU2018-7.10.4

如下解析MT940类型报文:

import com.prowidesoftware.swift.io.parser.SwiftParser;

import com.prowidesoftware.swift.model.*;

import com.prowidesoftware.swift.model.field.Field;

import com.prowidesoftware.swift.model.field.Field61;

import com.prowidesoftware.swift.model.mt.mt9xx.MT940;

import java.io.IOException;

public class MT940Test {

public static void main(String[] args) throws IOException {

String mt940 = "{1:F01AAAABB99BSMK3513951576}"+

"{2:O9400934081223BBBBAA33XXXX03592332770812230834N}" +

"{4:\n"+

":20:0112230000000890\n"+

":25:SAKG800030155USD\n"+

":28C:255/1\n"+

":60F:C011223USD175768,92\n"+

":61:0112201223CD110,92NDIVNONREF//08 IL053309\n"+

"/GB/2542049/SHS/312,\n"+

":62F:C011021USD175879,84\n"+

":20:NONREF\n" +

":25:4001400010\n" +

":28C:58/1\n" +

":60F:C140327EUR6308,75\n" +

":61:1403270327C3519,76NTRF50RS201403240008//2014032100037666\n" +

"ABC DO BRASIL LTDA\n" +

":86:INVOICE NR. 6000012801 \n" +

"ORDPRTY : ABC DO BRASIL LTDA RUA LIBERO BADARO,293-SAO \n" +

"PAULO BRAZIL }";

// 方法一

SwiftParser parser = new SwiftParser(mt940);

SwiftMessage swiftMessage = parser.message();

System.out.println("getSender:" + swiftMessage.getSender());

System.out.println("getReceiver:" + swiftMessage.getReceiver());

System.out.println("getType:" + swiftMessage.getType());

System.out.println("getMtId:" + swiftMessage.getMtId());

System.out.println("getSignature:" + swiftMessage.getSignature());

System.out.println("*******************************************");

SwiftBlock1 swiftBlock1 = swiftMessage.getBlock1();

System.out.println("getApplicationId:" + swiftBlock1.getApplicationId());

System.out.println("getServiceId:" + swiftBlock1.getServiceId());

System.out.println("getLogicalTerminal:" + swiftBlock1.getLogicalTerminal());

System.out.println("getSequenceNumber:" + swiftBlock1.getSequenceNumber());

System.out.println("*******************************************");

SwiftBlock2 swiftBlock2 = swiftMessage.getBlock2();

System.out.println("getBlockValue:" + swiftBlock2.getBlockValue());

System.out.println("*******************************************");

SwiftBlock4 swiftBlock4 = swiftMessage.getBlock4();

Field[] fields = swiftBlock4.getFieldsByName("61");

for (Field field : fields) {

System.out.println("getTagValue:" + field.getValue());

System.out.println("AMOUNT:" + field.getComponent(5));

}

System.out.println("*******************************************");

// 方法二

MT940 mt = MT940.parse(mt940);

for (Field61 tx : mt.getField61()) {

System.out.println("Amount: " + tx.getComponent(Field61.AMOUNT));

System.out.println("Transaction Type: " + tx.getComponent(Field61.TRANSACTION_TYPE));

System.out.println("Reference Acc Owner: " + tx.getComponent(Field61.REFERENCE_FOR_THE_ACCOUNT_OWNER));

}

}

}

运行结果:

getSender:BBBBAA33XXXX

getReceiver:AAAABB99BSMK

getType:940

getMtId:fin.940

getSignature:null

*******************************************

getApplicationId:F

getServiceId:01

getLogicalTerminal:AAAABB99BSMK

getSequenceNumber:951576

*******************************************

getBlockValue:O9400934081223BBBBAA33XXXX03592332770812230834N

*******************************************

getTagValue:0112201223CD110,92NDIVNONREF//08 IL053309

/GB/2542049/SHS/312,

AMOUNT:110,92

getTagValue:1403270327C3519,76NTRF50RS201403240008//2014032100037666

ABC DO BRASIL LTDA

AMOUNT:3519,76

*******************************************

Amount: 110,92

Transaction Type: N

Reference Acc Owner: NONREF

Amount: 3519,76

Transaction Type: N

Reference Acc Owner: 50RS201403240008

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php怎么实现匿名评论,PHP-匿名对象与匿名类的实现过程-0905

* 匿名类:* 1. php 7.0 才支持* 2. 类似于匿名函数,就是没有名称的类* 3. 匿名类适合于一次性的创建与引用* 4. 匿名类总是与: new 配套使用类的三种访问方式实例/*** 匿名类:* 1. php 7.0 才支持* 2. 类似于匿名函数,就是没有名称的类* 3. 匿名类适合于一次性的创建与引用* 4.…

php cli 编程,php-cli下编程如何分层架构、面向对象、统一入口文件?

以往写cli下运行的业务或者测试代码,总是新建文件,面向过程编写代码。几次之后,cli目录下好多文件,即便勉强在一个cli测试文件中写了一个类,也是让其中的一个方法自启动,要测试别的方法,总是要修…

matlab中平均函数用法,matlab中怎样在X的指定范围内求y的平均值

有两组数据,前面一组值设为x后面一组设为y。x是坐标的变化范围,y是每个坐标下力的大小,怎样在X的指定范围内求y的平均值??比如下面x范围是从-18.19959641到-18.00003052之内的 怎样求得-18.19959641到-18.18049049这个…

php中gd为什么是乱码的,php gd库中文乱码怎么解决?

php gd库中文乱码怎么解决?,中文,乱码,字符,选项,字体php gd库中文乱码怎么解决?易采站长站,站长之家为您整理了php gd库中文乱码怎么解决?的相关内容。解决方法:1、网站整站使用UTF8编码,如果已使用GB2312…

php观察者模式和注册数模式,PHP观察者模式

观察者模式的核心是允许你的应用程序注册一个回调,当某个特定的事件发生时便会触发它。实现观察者模式,我们使用一个名为Event的类实现它,这个类有2个公共的方法。1. registerCallback() :这个方法允许你用规定的名称附加许多回调到一个事件中…

php实现飘窗,JS实现网站图片飘窗效果,JavaScript悬浮广告(附详细代码)

原标题:JS实现网站图片飘窗效果,JavaScript悬浮广告(附详细代码)JS实现网站图片飘窗效果,Java悬浮广告,郑州SEO提供以下代码,仅供参考:飘窗效果-丁光辉博客(www.dingguanghui.com)*{margin:0px;padding:0px…

php spss,spss新手入门

随着速度越来越快,计算机的功能越来越多,计算统计功能反而已经成为了计算机的一个次要部分.不过,对于我们这些从事社会学学习和研究的人来说,快速的计算和统计仍旧是我们使用计算机的主要功能,所以我们平日的工作总是离不开SPSS(Statistical Package for the SocialScience社会…

load out mysql,快速的mysql导入导出数据(load data和outfile)

当读取位于服务器上的文本文件时,文件必须处于数据库目录或可被所有人读取。1 指定关键词low_priority,MySQL将会等到没有其他人读这个表的时候,才把插入数据。可以使用如下的命令:load data low_priority infile "/home/m…

matlab rem和mod,Matlab的mod和rem

通常取模运算也叫取余运算,它们返回结果都是余数.rem和mod唯一的区别在于:当x和y的正负号一样的时候,两个函数结果是等同的;当x和y的符号不同时,rem函数结果的符号和x的一样,而mod和y一样。这是由于这两个函数的生成机…

php sslv3握手失败,Boost Beast握手:sslv3警报握手失败错误

我正在使用Boost Beast连接到一个Web Socket服务器,但是我一直收到一个错误Resolving push-private.kucoin.com:443...Performing SSL handshake...terminate called after throwing an instance of boost::wrapexcept<:system::system_error>what(): handshake: sslv3 a…

python猜猜我是几,我在python中猜数游戏的问题

我是新手&#xff0c;所以请原谅下面的混乱…我正试图写一个数字猜谜游戏。计算机应该随机生成一个介于1到10之间的数字。用户只允许3次尝试正确猜测数字。一个用户要么猜对了&#xff0c;要么尝试完了&#xff0c;我应该让程序问用户&#xff0c;如果他们想再次玩&#xff0c;…

php pc_base,phpcms二次开发之base.php的桥梁作用_PHP教程

PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问&#xff0c;采用单一入口模式进行项目部署和访问&#xff0c;无论访问任何一个模块或者功能&#xff0c;只有一个统一的入口。入口程序是在前期处理用户请求的引导程序。它是唯一一个可以被最终用户可以直接请求运行…

oracle 表访问,向oracle导入访问表

我在将表导入到oracle时遇到问题。当我导入一个字段是例如导入&#xff1a;在访问我已经20&#xff0c;200 和进口到Oracle‘‘中访问和导入oracle作为‘12535’向oracle导入访问表在访问20’或’125.35它被声明作为数字&#xff0c;并在oracle中它已经改为文本&#xff0c;浮动…

oracle中orand使用,Postgres兼容Oracle研究——orafce调研

一、背景PostgreSQL是和Oracle最接近的企业数据库&#xff0c;包括数据类型&#xff0c;功能&#xff0c;架构和语法等几个方面。甚至大多数的日常应用的性能也不会输给Oracle。但是Oracle有些函数或者包&#xff0c;默认PostgreSQL是没有的&#xff0c;需要安装orafce包来实现…

oracle脚本审核平台,Oracle 脚本(适应各种业务需要)

Oracle 脚本(适应各种业务需要)1. 取A表的数据&#xff0c;更新B表字段update m_build bset b.district_id(select d.district_idfrombjhouse.d_district dwhereb.build_name_jqd.district_name)where exists(select 1frombjhouse.d_district dwhereb.build_name_jqd.district…

linux 文件mtime,linux 文件的atime,ctime,mtime查看與修改

查看ls -a默認顯示的是修改時間ls -c / --timestatus / --timectime顯示的是狀態修改時間(即權限修改時間)ls -u / --timeuse / --timeaccess / --timeatime表示的是文件訪問時間修改touch: 缺少了文件操作數請嘗試執行“touch --help”來獲取更多信息。[weilocalhost ~]$ touc…

linux 内核系统优化,Linux系统内核优化(一)

Linux内核参数调整(用于大并发的WEB服务器)cat > /etc/sysctl.conf net.ipv4.tcp_syncookies 1fs.file-max 999999net.ipv4.tcp_tw_reuse 1net.ipv4.tcp_keepalive_time 600net.ipv4.tcp_fin_timeout 30net.ipv4.tcp_max_tw_buckets 5000net.ipv4.ip_local_port_range…

labview linux 内核 不匹配,Linux CentOS7(或Ubuntu)中安装NI-VISA后一打开范例Simple Serial.vi就闪退,LabVIEW就崩溃。...

Linux CentOS7(或Ubuntu)中安装NI-VISA后一打开范例Simple Serial.vi就闪退&#xff0c;LabVIEW就崩溃。我安装了LabVIEW pro 2017 for Linux(另外也试了2016版的都是一样的效果)&#xff0c;VISA也试了4.1.0、4.4.0、5.1.1、15.0.0、15.5.0、16.0.0、17.0.0版本都试过了&#…

linux内核编译的image,内核编译时生成uImage的办法

有一个很简单的办法u-boot编译结束时&#xff0c;会在tool文件夹下面生成一个mkimage文件&#xff0c;将这个文件复制到交叉编译器目录下的bin文件夹下面&#xff0c;以后编译时就会生成uImage文件&#xff0c;省的用命令行的方式转了&#xff1b;另外将采用命令行的方式也贴出…

linux系统平均价格,简单认识Linux系统平均负载

第一次认识“系统平均负载”是在探针中见到的&#xff0c;一直不明白是什么意思&#xff0c;不明白貌似也不影响使用&#xff0c;就在意了。后来与“系统平均负载”接触的更多&#xff0c;无意间看到了一个形象的比喻&#xff0c;算是对“系统平均负载”有一个简单的认识。load…