Ok, my code looks at the Card Type field 52 in the direct response to get the card type to store in a database for reporting purposes. Due to compatibility with existing programs, the code evaluates the value and translates it into 1 character as such:
select case Ucase(arrDirectResponse(51))
case "VISA"
strCC_Type = "V"
case "MASTERCARD"
strCC_Type = "M"
case "DISCOVER"
strCC_Type = "D"
case "AMERICAN EXPRESS"
strCC_Type = "A"
case "BANK ACCOUNT"
strCC_Type = "B"
case else
strCC_Type = "O"
end select
The issue is that this list is incomplete. I get around 5% marked as "O". About two thirds of those are clearly eCheck transactions which appear to be business checking. Does anybody know off the top of their head what value is returned for Business Checking?
Looking at some of the credit cards marked as "O", I have seen Visa and Discover when looking up the transactions in the merchant interface. Note that I did not look up all of the "O" transactions, so there could be Mastercard and American Express. Is there another possible value that could come through in the card type field for a card such as Visa or Discover?
I am going to have to set up something to log the responses, but it is going to take a little while. Please let me know if anyone already knows the answer and can help. Thanks.
08-28-2012 09:54 AM - edited 08-28-2012 09:56 AM
Ok, here is what is happening. The arrDirectResponse array is created with this:
arrDirectResponse = Split(objResponse.selectSingleNode("/*/api:directResponse").Text,",")
Some customers (mostly businesses) have a comma in one of their name fields. This causes the entire array to be off by 1. I will change the delimit character in the account settings and change the programming to split on that character.
I figured I would post the solution in case anybody else runs into this.
08-31-2012 09:11 AM
One other option to be aware of is the Encapsulation character. In addition to the delimiter, you can set an encapsulation character around each field which makes it easy to identify if it is not a true delimiter. For example, if you set the delimiting character to comma (,) and the encapsulation character to a quotation mark("), you would have a response something like this:
"Data value 1","Data value 2","Data value 3",
08-31-2012 01:03 PM