Im trying to add the x_duplicate_window option to a simple php payment page that has been working great for months. The setting seems to be ignored by authorize.net as i can resubmit the same payment over and over again. Ive tested this in both live and test mode. We are using code pretty much out of the auth.net php sample book. here is the snippet of my settings
dont worry about $x_login, x_tran_key, x_test_request those are all defined outside of this and work correctly (allows us to put it in and out of test mode with one case statement)
we dont get any errors, all payments go through well within the 3 minute window. Im wondering if this is a setting within auth.net or the merchant setup? I havent been able to find much documentation on this.
// the API Login ID and Transaction Key must be replaced with valid values
"x_login" => $x_login,
"x_tran_key" => $x_tran_key,
"x_test_request" => $x_test_request,
"x_duplicate_window" => "180",
"x_version" => "3.1",
"x_delim_data" => "TRUE",
"x_delim_char" => "|",
"x_relay_response" => "FALSE",
"x_type" => "AUTH_CAPTURE",
01-23-2012 12:56 AM
Duplicate transactions are determined by looking at a variety of information, including (assuming you're using SIM):
The SIM API allows you to specify the window of time after a transaction is submitted during which the payment gateway checks for a duplicate transaction (based on credit card number, invoice number, amount, billing address information, transaction type, etc.) using the duplicate window field (x_duplicate_window). The value for this field can be between 0 and 28800 seconds (maximum of 8 hours).
So if any of that information changes, it probably wouldn't be counted as a duplicate. It's also supposed to pass you the original authorization code if it detects a duplicate, so it's theoretically possible it's saying the transaction is ok but giving you the status from the first run. Or you might have messed up your variable settings and it could be running permanently in test mode, which is probably not going to generate duplicates because it isn't actually processing the transaction, just doing the most basic surface checks.
Please (1) print out all data you're passing and post everything except your login ID and transaction key, (2) post the code surrounding what you pasted here, and (3) post a var dump of the entire response using print_r(). Use code boxes, fourth option from the left in Rich Text mode.
01-23-2012 02:09 AM