【问题标题】:Handle 121 and 111 swift tag using Prowide Software API(WIFE)使用 Prowide Software API(WIFE) 处理 121 和 111 swift 标签
【发布时间】:2018-04-05 10:25:31
【问题描述】:

我们正在使用 Prowide Software (WIFE) API 来解析 swift 消息。在处理 swift 消息时,我们在 MT103 swift message.due 中获得标签 111 和 121,因为解析器代码失败。 谁能帮我知道如何使用 WIFE API 处理这个问题?

【问题讨论】:

    标签: parsing swift-mt


    【解决方案1】:

    我是图书馆的作者之一。字段 111 和 121 是可选用户标头(块 3)的一部分,因此为了获取这些字段值,您必须执行以下操作:

    String msg ="{1:F01CCRTIT2TA15A0000000000}{2:I103CCRTIT2TXXXXN}{3:{103:TGT}{113:NNBI}{108:FOO123}{111:001}{121:8579f4a4-a547-463e-ae63-e7c6620d59b4}}{4:\n" +
       ":20:0013355630808057\n" +
       etc
       ":71A:SHA\n" +
       "-}";
    MT103 mt = MT103.parse(msg);
    String UETR = mt.getSwiftMessage().getBlock3().getTagValue("121");
    

    为了将来参考,自 SRU 2018 起,对 SWIFT gpi(SWIFT 全球支付创新)字段的支持已成为强制性要求。因此,即将发布的 Prowide Core 版本(自 2018 年 10 月起)包含许多新的 API 来处理这些领域。

    Setter 和 getter 已添加到 SwiftMessage 对象中,包括一个空的 setter setUETR(),它将自动生成一个有效的唯一标识符。

    SwiftMessage m = new SwiftMessage();
    String uetr = m.setUETR();
    // the uetr will contain the generated identifier such as //"eb6305c9-1f7f-49de-aed0-16487c27b42d"
    

    此外,如果消息是使用 MT103、MT103_STP、MT103_REMIT、MT202、MT205、MT202COV 或 MT205COV 类创建的,其中 UETR 是强制性的,则 block3 将已使用适当的字段 121 (UETR) 初始化。

    MT103 mt = new MT103(sender, receiver);
    mt.append(new Field20("MYREF"));
    String uetr = mt.getSwiftMessage().getUETR()
    

    最后,在处理收款时,gpi 字段可以直接用 getter 检索:

    MT103 mt = MT103.parse(fin);
    if (mt.getSwiftMessage().isGpi()) {
        System.out.println(mt.getSwiftMessage().getServiceIdentifier());
        System.out.println(mt.getSwiftMessage().getUETR());
    }
    

    【讨论】:

      猜你喜欢
      • 2019-08-31
      • 2017-01-05
      • 2015-04-28
      • 2018-04-26
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      • 2014-12-27
      • 2010-09-12
      相关资源
      最近更新 更多