我一直在使用j8583来解析和构建Java中的ISO 8583消息.一切似乎都很好,直到其中一条消息中包含字段128.当我构造或解析具有位128的消息时,该字段总是丢失,但是另一位(2 ... 127)很好.
我仔细检查了xml配置,没有错.
它只是我还是j8583中确实存在错误?谁知道怎么解决这个问题?我的时间表非常紧张,因此更换iso 8583的库是不太可能的
我在WIKI和Code Project上阅读了ISO 8583消息; 我理解ISO 8583消息基本上可以分为3部分:
1.1.版
1.2.消息类
1.3.消息功能
1.4.消息来源
指出存在哪些数据元素.
整个ISO消息的本质,包含有关事务的信息,例如:
交易类型
量,
客户等
因此,在阅读这两个Web引用之后,我想将我的ISO消息传递日志划分为MTI,位图和数据元素.
例如:
(0800 2020000000800000 000000 000001 3239313130303031)
MTI: 0800 (1987 version, Network Management Message, Request, Acquirer)
Bitmap: 20 20 00 00 00 80 00 00 (eg. 20 = 0010 0000 ,so position 3 is on)
DataElement:(by seeing Bitmap , we can defined data element as follow)
field 03:000000 (Processing Code)
field 11:000001 (Systems trace audit number)
field 41:3239313130303031 (Card …Run Code Online (Sandbox Code Playgroud) 我想知道是否有人可以帮助我理解ISO 8583 Field 22POS输入模式之间的区别.我已经知道了:
52 指ICC卡80 在后退的情况下但我想知道的是两者之间的区别
22 (磁条)90谁可以帮我这个事?
我有一个项目,我需要与POS交互 - 终端设备和磁/芯片卡.假设客户从我的百货商店购买商品时,该商店的员工将对客户的金融卡进行分类并进行支付交易.
对于那些类似的系统,大多数论坛都说应该考虑使用第三方API,例如:
但我认为这些API应该用于那些将用于国际支付处理的系统.至于我,我认为我的系统没有国际支付处理那么大,并且将开始作为国内小型系统工作.
那么我想知道哪个是最佳解决方案以及系统架构将如何?
当我阅读Authorize.Net页面时,我找到了信用卡处理的例程.
无论我的项目是大型还是小型,国际运行还是国内运行,我都需要遵循这整个程序吗?
我是否真的需要按照此程序使用POS - 终端设备进行支付流程?
我知道的一件事是ISO 8583是必不可少的金融消息传递协议,因为我所在地区的大多数银行交换软件系统只使用这些消息传递格式.这意味着我不能使用其他消息格式,例如我们的NDC或D912.
在我目前的公司,我们正在考虑使用jPOS与其他系统进行ISO 8583集成.我已经阅读了一段时间的免费文档,但我仍然有很多差距.例如:
jPOS如何在prod中工作?我应该只是启动一个Q2服务器,它会像接收或发送ISO8583消息一样端点吗?我怎么想把它与我的应用服务器集成?
在哪些情况下我应该如何使用jPOS Space?
我的基本用例是发送/接收ISO消息.我需要所有这些东西吗?
是否有其他参考或这个基本系统的例子接收ISO 8583消息,做一些东西,然后回复ISO8583消息?
谢谢,
我想制作带有字段 64 消息验证代码 (MAC) 的 ISO 消息。我想知道用什么来制作mac,没有字段64的ISO消息的二进制文件?或者 ISO 消息的二进制文件,在字段 64 上设置了注释,但位图末尾有一个 1,表明字段 64 中有内容?
我正在尝试使用 Java 中的 JPOS 创建 ISO8583 消息,使用 ASCII 通道发送消息并使用 iso93ascii 打包器打包 ISO 消息。
但是在发送消息后,我从服务器收到无效的标头错误。
所以我的问题是标题究竟是由什么组成的,以及如何为 MTI 值 1200 构建标题。
ISOMsg.setHeader("HEADER".getBytes());
Run Code Online (Sandbox Code Playgroud)
我应该如何框住我的 HEADER?
新发展:
查看服务器配置后,我需要发送由 ISO8583 消息长度(以十六进制转换为字节的 2 字节长度)作为前缀的标头。我怎样才能使用 JPOS 做到这一点?也无法使用channel.setHeader("xxx").getBytes()).
我如何查看从我的终端发送到服务器的原始消息。
以下是部分代码摘录
部署文件
filename : 10_clientsimualtor_channel.xml
<?xml version="1.0" ?>
<channel-adaptor name='jpos-client-adaptor'
class="org.jpos.q2.iso.ChannelAdaptor" logger="Q2">
<channel class="org.jpos.iso.channel.ASCIIChannel" logger="Q2"
packager="org.jpos.iso.packager.ISO93APackager" header= "ISO026000075">
<property name="host" value="xxx.xx.xx.xx" />
<property name="port" value="xxxxx" />
</channel>
<in>jpos-client-send</in>
<out>jpos-client-receive</out>
<reconnect-delay>10000</reconnect-delay>
</channel-adaptor>
Run Code Online (Sandbox Code Playgroud)
代码 :
packager = new ISO93APackager();
ISOMsg m = new ISOMsg();
m.setPackager(packager);
System.out.println(packager);
m.setHeader("ISO026000075".getBytes());
System.out.println("Head err..........."+newString(m.getHeader())); …Run Code Online (Sandbox Code Playgroud) 在学习支付技术时,我查阅了一些发行人关于 ISO 8583 实施的文档,尽管我已经了解了这种消息传递的工作原理,但我还没有完全理解授权消息 (MTI x1xx) 的真正工作原理。
我发现的一般定义是此消息“确定资金是否可用,获得批准但不发布到帐户进行对账”,但我想了解此消息的一般生命周期。
如果授权中请求的金额获得批准,是否意味着资金将被保留,直到发送另一条消息为止?如果资金未被持有,为什么撤销消息 (MTI x4xx) 提供撤销授权的可能性?如果未发送另一个请求,那么“不发布它以进行对账”会怎么样?发行人是否必须按照到期时间作为标准来取消授权请求?
我知道这些问题可能取决于每个发行人的规范,但每次我搜索授权消息的定义时,我总是得到相同的一两行描述(就像我之前写的那样),仅此而已。
我想获得此消息的完整解释和一些示例。我真的很想主宰这个学科,因为我不想使用我不理解的东西。
我更新了我的旧 spring/java 应用程序,它将事务推送到远程 ISO 服务器(银行)。使用经典方法(channel.seng(isoMsg))通过同步方法,因为通过同一通道发送多个 ISO 请求很难映射请求和响应。过去有太多事务留在队列中,因为每个事务需要 5 秒才能从远程服务器接收响应。因此,所有即将进行的事务都会超时。为了解决这个问题,我开始实施 QMUX。该系统现已上线。
现在我的问题是,如果已经有 50 笔交易的响应未到达或超时,银行告诉我不要发送交易。
所以,现在我需要配置 MUX 框架,以便一旦系统等待 50 个响应,框架应该停止发送并应该在我的末尾排队,当它收到 1 个响应时,它可以再次发送一个事务以保持等待总数响应小于或等于 50。如何使用 jpos QMUX 实现此目的?