-
Notifications
You must be signed in to change notification settings - Fork 91
Card present support for AIM & CIM #36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Conflicts: src/Message/AIMAuthorizeRequest.php tests/Message/CIMAuthorizeRequestTest.php
Fix JSCS issue (120 char limit)
…sent * 'master' of github.com:anushr/authorizenet: Fix JSCS issue (120 char limit)
Consolidate common functionality between AIM and CIM
Conflicts: composer.json src/Message/AIMAbstractRequest.php
… into card-present
👍 |
There are still a few merge conflicts to resolve. |
Hi @anushr I know this is very old, but I am working on merging it in. I've fixed the conflicts, but - if you are still here and know the answer to this - have a question. The AIM authorisation will assert that a CreditCard has a CC number and an expiry date before it checks whether tracks have been supplied. The way I understand the way the tracks work, is that the tracks completely replace the need for a CC number of expiry dates to be sent to the gateway. So a CreditCard object with just tracks but no CC number will fail. It happens that the test suite always provides a "valid" credit card object, which includes valid CC number and expiry date, so the tests may not have caught this as a problem. But I may be misunderstanding this entirely? The line in question is here: https://github.com/academe/omnipay-authorizenet/blob/pr36/src/Message/AIMAuthorizeRequest.php#L43 I think that check needs to be moved to the Thank you for your effort here - it is all good stuff :-) |
So I guess the card number is not required if the tracks are supplied. Or maybe more accurately, if track 2 is supplied. From what I have seen, either track 1 or track 2 can be given in the transaction, but not both. The Authorize.Net documentation states that the card number and expiry are in both track 1 AND track 2. It also states:
So that probably settles it: the Omnipay |
Adds support for card present transactions for the AIM & CIM gateways. Card present transactions typically offer better rates and lower declines.
A card present transaction means that the physical card is present and the magnetic track data is available to you. For the card present logic to kick in, just set the
tracks
property into the credit card object.