本主题提供关于虚拟化 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。
如果通过 HTTPS、MQ 或 JMS 交换 ISO 8583 消息,则使用相关向导记录它们。有关更多详情信息,请查阅:
目前不支持通过其他传输通道进行记录。
在为 ISO 8583 配置消息响应器之前,需要选择合适的包装程序。为此:
如果可用 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 视图中可用:
Header 选项卡可用于为 ISO 8583 消息配置自定义二进制头。数据头字段可以重新排列(通过拖放),并且可以使用相应的按钮添加和删除新字段。按住 CTRL 键选择多个字段,以便同时删除多个字段。按钮旁边显示的总体大小是所有字段大小的总和。
可以在 Header 选项卡中配置以下选项:
当在值单元格中选择 Script 时,可以编写自定义代码来生成字段值。这种用法的例子是加密内容或生成 MAC 值。
脚本方法将接受零个、一个或两个参数。
当声明一个参数时,它引用当前请求 ISO 8583 消息的 ISOMsg 对象表示。ISOMsg 对象的字段初始化为当前字段。
例如,如果你正在编写第十个字段的脚本,那么 ISOMsg 对象将根据这些字段值设置所有之前的 9 个字段(如果有的话)。这就是重新排列 ISO 字段的不同之处,尽管重新排列顺序并不影响发送消息的实际字段顺序。当声明第二个参数时,它将引用上下文,这允许访问环境变量、数据源值等。
有关详细信息,请参阅 Virtualize 扩展 API 文档。可以通过 Parasoft> Help 菜单访问扩展框架 API 的文档(查找名为“Parasoft Virtualize 扩展 API”的书籍)。
如果使用多个消息响应器,你需要配置响应器关联如下:
你可以配置响应程序,使其在传入的 ISO 8583 请求消息中使用字段 ID 的存在(或不存在)作为相关标准。
例如,如果传入的 ISO 8583 请求消息不包含字段 ID 7,则具有以下配置的响应程序将进行响应。 |
有关消息响应程序中的数据源相关性的一般细节,请参见 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 以获得该功能的详细信息。