How to handle Issuer Scripts un an EMV transaction?
Everything that you provide to the emv_completeEMVTransaction comes from the HOST (assuming you could contact the host where commError = FALSE).
71/72 does not come back from Authenticate Transaction (results from the transaction/card).
Example:
After authenticateTransaction, you get all the data you need to provide the HOST to make a decision (or you need to retrieveTransactionResults if the tags you need are not provided by default).
You then send to host.
Host responds back with a response code (Tag 8A, two bytes of value), probably IAD (tag 91, 10 bytes of data), and in some cases issuer scripts, which can be either tag 71 or 72 (or they may be both provided back.
The host responds back with:
8A023030910A010203040506070830307103010203720401020304
We see:
8A 02 3030
91 0A 01020304050607083030
71 03 010203
72 04 0102030
So, we complete complete EMV Transaction with the following values:
commError = False
authCode = 0x3030
IAD = 0x01020304050607083030
tlvScripts = 0x7103010203720401020304
tlv = null
NOTE: Some processors only return 91 (IAD), instead of both 8A + 91. This is because the last two bytes of IAD = the value of 8A. So they just want you to use the last to digits of tag 91 for authCode if they don't provide 8A.