Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Whatever code you're using to parse the "Transaction Id" that Authorize.net gives back to you after a successful transaction is converting that transaction id into an integer. It should be treated as a string, not an integer. In 2008, Authorize declared that they were switching from an integer to a string-based transaction ID because they ran out of 32-bit integers.</p> <p>2147483647 is the largest base-10 integer you can make with 32 binary bits (1111 1111 1111 1111 1111 1111 1111 1111). It means that Authorize is returning a transaction id > 2147483647 (3000000000 for example) and your programming language is truncating the bits to the maximum value allowed, 2147483647.</p> <p>Examine your PHP code and make sure the transaction id is being cast the value as a string. To be sure, you might want to go through your code and cast it yourself. For example:</p> <pre><code>(string)$transaction_id </code></pre> <p>Also make sure your code is not doing things that automatically cast strings as integers. For example:</p> <pre><code>$transaction_id + 1 </code></pre> <p>Lastly, if the transaction ID is being read from a database, make sure the database is storing the transaction ID as a string datatype. For instance, with mysql, use CHAR, or VARCHAR and make it bigger than 10. Try 16 or 24 to be safe.</p> <p>References:</p> <ul> <li><a href="http://answers.yahoo.com/question/index?qid=20080503144541AAqrW0D" rel="nofollow">http://answers.yahoo.com/question/index?qid=20080503144541AAqrW0D</a></li> <li><a href="http://groups.drupal.org/node/14891" rel="nofollow">http://groups.drupal.org/node/14891</a></li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload