本主题提供关于虚拟化 ISO 8583 服务的技巧。
本章包含:
概要
ISO 8583 是一个通用接口。通过该接口,金融交易卡发出的信息可以在收购者和发卡者之间交换。
Parasoft Virtualize 可以使用多种消息打包配置对 ISO 8583 消息类型上的应用程序行为进行虚拟化。Parasoft Virtualize 允许对这类消息进行可视化建模,以及相关和动态响应逻辑的可视化配置(包括使用数据源)。
跨内置传输(如 HTTP 或 Mq)支持 ISO 8583 消息传递。若要通过 ISO 8583 传输发送消息,首先安装 ISO 8583 监听器插件,它可以在 Parasoft 应用市场上下载。此插件使用了 Using Custom Transports, Message Formats, and Tools 中描述的可扩展性 API。
录制 ISO 8583 消息
如果通过 HTTPS、MQ 或 JMS 交换 ISO 8583 消息,则使用相关向导记录它们。有关更多详情信息,请查阅:
目前不支持通过其他传输通道进行记录。
为 ISO 8583 配置消息响应器
配置一个 ISO 8583 消息包装程序
在为 ISO 8583 配置消息响应器之前,需要选择合适的包装程序。为此:
- 请打开消息响应程序配置面板。
- 在 Service Options 选项卡中,选择 ISO 8583 Packager 并选择合适的包装器。可用的选项基于 jPOS 提供的配置(www.jpos.org)。每个配置都建立消息中允许的字段 Id,以及它们应该具有的数据类型和长度。
从下拉菜单中选择 Custom 将允许你浏览到用于描述特定消息配置的 packager 文件。自定义打包器是基于 JPOS 的 XML 文件。有关此类 packager 文件的示例,请参阅 www.jpos.org。可以在以下位置找到各种 XML 打包器配置: http://jpos.svn.sourceforge.net/viewvc/jpos/trunk/jpos6/modules/jpos/cfg/packager/。
配置响应消息
如果可用 ISO 8583 消息的文字(文本)表示,可以将其粘贴到消息响应器的文字视图中,然后切换到表单 ISO 8583 视图。如果所提供的消息与所选的 packager 不一致,则会显示一条错误消息,向表单视图的转换将失败。
或者,如果样例消息不可用或格式是二进制的,则可以使用表单 ISO 8583 视图从头构建响应消息。此视图包含用于定义消息主体和消息头的单独选项卡。
当数据源可用时,可以参数化这些选项卡中的字段值;请查阅see Parameterizing Tools with Data Source Values, Variables, and Extracted Values。
可以使用 Add 按钮添加新字段。选择一个或多个字段(选择多个字段时按住 CTRL),然后单击 Remove 以删除所选字段。当选择一个字段时,也可以拖动它。
字段在任何 ISO 8583 消息视图中声明时的顺序并不影响字段的实际发送方式。字段总是根据数字字段 ID 按升序发送。这与 ISO 8583 消息规范一致。但是,在使用脚本时,可以根据首先初始化的值来考虑顺序。有关更多详情信息,请查阅 Scripting ISO 8583 Header Message Fields。
消息子选项卡
以下选项在 ISO 8583 视图中可用:
- Field ID: 输入一个数值。只允许消息字段配置(或 packager 文件)声明的值。但是,可以在 packager 中声明比实际使用的字段更多的字段。
- Value: 单击特定字段值区域时,可以在 Fixed 或 Script之间进行选择。当数据源在响应程序中可见时,参数化也是一个可用的选项。
- Type: 允许在 String 和 Binary之间进行选择。当它被设置为 Binary时,它表示该值包含内容的十六进制文本表示,其中每两个十六进制数字表示一个字节。String 指示应根据该特定字段(消息字段配置)的消息包装程序中指定的类型解释该值。
- Description: (可选)允许你为清晰起见指定消息的描述。此选项不以任何方式影响发送的消息。
- Use Data Source: 使用空字符串排除:(只有在数据源可用时才可见。)选中此单元格中的复选框后,可以将值映射到数据源列。当响应程序在数据源行上执行和迭代时,它将根据该列上的数据源行是否为空,包含或排除指定的 ISO 字段。当数据源值为空时,字段将被排除。
Header 选项卡
Header 选项卡可用于为 ISO 8583 消息配置自定义二进制头。数据头字段可以重新排列(通过拖放),并且可以使用相应的按钮添加和删除新字段。按住 CTRL 键选择多个字段,以便同时删除多个字段。按钮旁边显示的总体大小是所有字段大小的总和。
可以在 Header 选项卡中配置以下选项:
- Name: 指定数据头的名称。
- Value: 单击特定字段值区域时,可以在 Fixed 或 Script之间进行选择。当数据源在响应程序中可见时,参数化也是一个可用的选项。
- Type: 指定数据头字段的数据类型。可用类型影响如何通过网络发送值单元格中的内容。 Binary (hex) 选项指示值单元格以十六进制表示原始二进制内容,应该按原样发送。十六进制表示假设每个字节有两个十六进制数字。
- Size: 指示字段的大小。
- Exclusion: (只有在数据源可用时才可见。)选中此单元格中的复选框后,可以将值映射到数据源列。当响应程序在数据源行上执行和迭代时,它将根据该列上的数据源行是否为空,包含或排除指定的 ISO 字段。当数据源值为空时,字段将被排除。
编写 ISO 8583 数据头消息字段脚本
当在值单元格中选择 Script 时,可以编写自定义代码来生成字段值。这种用法的例子是加密内容或生成 MAC 值。
脚本方法将接受零个、一个或两个参数。
当声明一个参数时,它引用当前请求 ISO 8583 消息的 ISOMsg 对象表示。ISOMsg 对象的字段初始化为当前字段。
例如,如果你正在编写第十个字段的脚本,那么 ISOMsg 对象将根据这些字段值设置所有之前的 9 个字段(如果有的话)。这就是重新排列 ISO 字段的不同之处,尽管重新排列顺序并不影响发送消息的实际字段顺序。当声明第二个参数时,它将引用上下文,这允许访问环境变量、数据源值等。
有关详细信息,请参阅 Virtualize 扩展 API 文档。可以通过 Parasoft> Help 菜单访问扩展框架 API 的文档(查找名为“Parasoft Virtualize 扩展 API”的书籍)。
配置响应器的相关性
如果使用多个消息响应器,你需要配置响应器关联如下:
- 在消息响应程序的 Responder Correlation 选项卡中,请打开 ISO 8583 Correlation。
- 选择 Enable correlation。
- 将字段值添加到该列表,以确定此消息响应程序应该处理哪些传入消息。
- 例如,如果你提供值为 0200 的字段 ID 0,那么你将添加一个相关准则,该准则从传入的 ISO 8583 消息中检索字段 0 的值,并将其与 0200 进行比较。如果传入值匹配 0200,则使用响应程序响应此消息。如果不匹配,则对响应程序套件中的下一个消息响应器执行评估(如果存在更多的消息响应器;否则将返回错误响应消息)。
- 其他匹配的字段可以添加到列表中:
基于字段 ID 的存在(或不存在)进行匹配
你可以配置响应程序,使其在传入的 ISO 8583 请求消息中使用字段 ID 的存在(或不存在)作为相关标准。
- 如果希望响应器在指定字段 ID 存在时响应消息,请将值设置为 Occurrence,然后选择 Present。
- 如果希望响应器在指定字段 ID 不存在时响应消息,请将值设置为 Occurrence,然后NOT选择 Absent。
例如,如果传入的 ISO 8583 请求消息不包含字段 ID 7,则具有以下配置的响应程序将进行响应。
使用 ISO 8583 数据源关联
有关消息响应程序中的数据源相关性的一般细节,请参见 Data Source Correlation Tab。
字段 Id(为传入消息提供)可以与一个或多个数据源列名匹配(类似于 XPaths、URL 参数等的处理方式)。然后,可以使用各种数据源列参数化 ISO 8583 字段。
注意,表单 ISO 8583 字段支持 Use Data Source: Exclude with empty string 特性。这允许你使用动态字段生成 ISO 8583 消息,并根据对应数据源行中的数据包含/排除这些消息。请查阅 Using Data Sources with Form XML:表单 XMLExcluding Elements and Attributes 以获得该功能的详细信息。