I even reset the transaction key in Authorize.net, but it's still not working. When I run the tool that page the generated fingerprint it produces does not match the x_fp_hash that is produced by my page.

I've noticed Authorize.net has a place to set a MD5 Hash value in their merchant tools is this something I need to set, or should set?

Based on what you have posted and that info on the page you linked to it seems that the problem is the mismatched x_fp_hash. Have you been able to check the values and compare them yourself? If you can see the mismatch yourself please let us know.

Also, have you made sure to update all of the credentials that are used by the checkout to your newly requested ones like the transaction key and login?

I believe it's definitely a mismatched x_fp_hash. I confirmed that I had the correct API Login ID and Transaction Key and when I used their tools the numbers being generated did not match what their tools said it should be.

Do you have any suggestions on what what could be wrong? I need to get this working pretty quickly and I have no idea why it would be wrong.

Is what I changed the code to for hash correct?

return (bin2hex (hash(MD5, $data, $key)));

I saw on their help pages that the server time has to be set correctly. I generally set my server to my local time and not where the server is located. I changed this temporarily but it didn't seem to help. Can you tell me how it need to be set?

If the Auhorize.NET checkout is using a different hashing technique to compare the values then an error like this might occur. Do you have access to any other server that has the mhash available for a test? I have a feeling that it is this hashing of the value that is not matching correctly.

I have opened a ticket for you on this issue, please login to the site and visit your support history to update the ticket or check it's status.