ISO8583 for Amex

断了今生、忘了曾经 提交于 2019-12-04 18:43:03

1. ISO8583-like specifications used by American Express.

They used several customized ISO 8583 dialects, for sample:

  • Global Credit Authorization Guide (GCAG),
  • Global Electronic Data Capture (GEDC) Terminal Message Specification,
  • Plural Interface Processing (PIP) Terminal Interface.

Looking to your MTI 1804 I guess it is GCAG and, yes, the message usually EBCDIC encoded.

From your request is not clear exactly the message body. Please Add the hexadecimal representation of your network message. It could show the potential issue with the message body encoding.

We are supporting online services around ISO8583 dialects and financial data. Here is the GCAG ISO 8583 message body parser. You can check the outgoing message structure and your EBCDIC encoding.

2. About American Express hosts.

I could agree that there are many TCP/IP Socket services which may forward and exchange message data with Amex or process message themselves, but in fact Amex uses Global Web Services (GWS) IP Payments Gateway in most cases, which is HTTPS connection with specific HTTP Headers.

Because of HTTP/HTTPS data transferring thru GWS the message, even EBCDIC encoded, processed as ASCII hexadecimal string.

TCP/IP Socket connections may have additional message headers, length bytes, starting and ending packet data. Ensure connection requirements for your TCP/IP host.

As an working example of Amex ISO 8583 message processing with test cards authorizations you can try GCAG host simulator posting your request messages directly thru the form or starting HTTPS host simulator service.

3. Example as a bonus

Here is your 1804 message corrected with primary bitmap processed thru Amex GCAG host simulator. Messages structure represented in YAML.

---
# Cheef's parser.
# Copyright (C) 2008-2017 Alexander Shevelev. https://iso8583.info/
# lib   : "/lib/AMEX/GCAG/" - Global Credit Authorization Guide
# tool  : "host"
# stat  : 28 nodes, 14 lookup tables, 92.86% passed (13/14)

host: # AMEX GCAG host simulator
- rq:#"F1F8F0F42030018000000000F0F0F0F0F0F0F1F1F2F2F3F3F1F7F0F9F1F4..F0F0" # AMEX GCAG message
  - MTI: "1804" # Message Type ID. // network management request
  - DE000: "2030018000000000" # Primary bitmap // 3.11.12.24.25.
  - BM0:#"F0F0F0F0F0F0F1F1F2F2F3F3F1F7F0F9F1F4F1F2F0F5F1F0F8F3F1F8F7F0F0" # Fields at Primary Bitmap
    - DE003:#"000000" # PC // System Audit Control/Echo Message
      - S01: "00" # Transaction Code. // Goods and service
      - S02: "00" # Account, from. // unspecified
      - S03: "00" # Account, to. // unspecified
    - DE011: "112233" # STAN.
    - DE012:#"170914120510" # Date and time, local transaction
      - date: "170914" # Date, local transaction. // 2017.09.14
      - time: "120510" # Time, local transaction. // 12:05:10
    - DE024: "831" # Function code. // echo test.
    - DE025: "8700" # Message reason code (MRC).
- rs:#"F1F8F1F42030010002000000F0F0F0F0F0F0F1F1F2F2F3F3F1F7F0F9F1F4..F0F0" # AMEX GCAG message
  - MTI: "1814" # Message Type ID. // network management request response
  - DE000: "2030010002000000" # Primary bitmap // 3.11.12.24.39.
  - BM0:#"F0F0F0F0F0F0F1F1F2F2F3F3F1F7F0F9F1F4F1F2F0F5F1F0F8F3F1F0F0F0" # Fields at Primary Bitmap
    - DE003:#"000000" # PC // System Audit Control/Echo Message
      - S01: "00" # Transaction Code. // Goods and service
      - S02: "00" # Account, from. // unspecified
      - S03: "00" # Account, to. // unspecified
    - DE011: "112233" # STAN.
    - DE012:#"170914120510" # Date and time, local transaction
      - date: "170914" # Date, local transaction. // 2017.09.14
      - time: "120510" # Time, local transaction. // 12:05:10
    - DE024: "831" # Function code. // echo test.
    - DE039: "000" # Action Code // approved.

I don't understand C#, but I implemented AMEX in JAVA. I guess you shouldn't encode bitmap in EBCDIC, but instead only unhex its content. As the bitmap, I mean '2030018000000000'.

I hope this will help.

Braulio Guzman

Message needs to contain the two-bytes describing the length of the message content. The said two bytes were missing from the message.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!