Page 1 of 1

Empty error when using authorize.net AIM payment in test

Posted: 28 Jul 2016, 06:14
by jossnaz
i have attached a screenshot, what should i do now? that's a really frustrating error...

running 2016.7.2 in laravel aimeos and ai-payments 2016.7.2. I ran it locally and I ran it as well on a testserver in the internet. It's an authorize.net test account and I used a test visa credit card, tried test mastercard as well.

I use php 7


some ideas where I should be heading now? where to search?

Re: Empty error when using authorize.net AIM payment

Posted: 28 Jul 2016, 06:46
by jossnaz
I am still stuck with an error, but now I at least found it


the way to access the error message was this:
in file

Code: Select all

ff-laravel/ext/ai-payments/lib/custom/src/MShop/Service/Provider/Payment/OmniPay.php

Code: Select all


at line 708 before
[code]	throw new \Aimeos\MShop\Service\Exception( $response->getMessage() );
the response message should be retrieved like this, if the response message is empty that is:

$response->getData()->messages->message->code->__toString()
$response->getData()->messages->message->text->__toString()[/code]

now I would create a pull request if i knew how. I really would.


The error reads like this:

Code: Select all

E00007
User authentication failed due to invalid authentication values.

at least now I am stuck with a proper error...

Re: Empty error when using authorize.net AIM payment

Posted: 28 Jul 2016, 07:35
by jossnaz
hours later...

now I found in the interwebs that one has to regenerate the transaction Key. That is possible when logging in to authorize.net and then doing the change there, note: the answer to the security question for me was Simon and is called "Secret key" in the login creds they give you.

This did not solve my problem though (or i at least guess, that it was not part of the solution)

but something else...
is it eventually possible there is a mistake in the docs?

https://aimeos.org/docs/User_Manual/Adm ... ze.net_AIM

lists

Code: Select all

authorizenet.testmode (boolean, optional) 
Use "1" for test payments without real money
this _seems_ to be wrong.

What I ended up doing when looking at the code I figured out there is:

Code: Select all

developerMode
so i added

Code: Select all

developerMode 1
in the configuration. This seems to work.

this changes the endpoint to apitest.authorize.... instead of the live one. basically, that is, i think, what should have been set with `authorizenet.testmode`

shit man, what, like 2 hours of my life for this.

there is as well:

Code: Select all

testMode
i am not sure what it does. developerMode is what makes things work in sandbox
I found this note:

Code: Select all

 // The test mode setting indicates whether or not this is a live request or a test request
in

Code: Select all

AIMAbstractRequest.php
folder:

Code: Select all

ff-laravel/vendor/omnipay/authorizenet/src/Message/AIMAbstractRequest.php

so maybe you can send test requests to the live account, maybe thats what it is good for.