Hello. I have a successful integration up and running with the following platform details:
Integration method: CIM
Platform: .NET/C#
IDE: Visual Studio 2008
Proxy: WCF web service (ServiceSoapClient)
When using the CreateCustomerProfileTransaction method I am taking advantage of the ability to specify transacton options using the extraOptions parameter in the method call as in the following:
... CreateCustomerProfileTransactionResponseType response = cimProxy.CreateCustomerProfileTransaction( credentials, transaction, "x_test_request=FALSE&x_delim_data=TRUE&x_delim_char=|&x_encap_char=;&x_email_customer=FALSE&x_relay_response=FALSE&x_version=3.1&x_duplicate_window=30" ) ...
The x_duplicate_window parameter here works great - does exactly what I expect it to. What I'm noticing, however, is that I'm still encountering the default two minute duplicate time window when calling the CreateCustomerProfile method as in the following:
... CreateCustomerProfileResponseType response = client.CreateCustomerProfile( this.Credentials, profile, ValidationModeEnum.liveMode ); ...
The problem is that if users make a mistake, say, entering their CVC, when attempting to save their card info, they have to wait two minutes in order to try again.
Based on this, here are my questions:
Thank you.
โ04-09-2010 09:12 AM
1. No, you must include <validationMode>testMode</validationMode> in order to prevent a transaction from being attempted during the profile creation if you want to bypass the duplicate window.
2. No, the XML would be the same. You can only use the <extraOptions> element with the createCustomerProfileTransaction function.
3. No, you cannot. Again, the best way to bypass the duplicate window would be to process test mode transactions using the <validationMode> element when submitting the create profile function and then follow it with a createCustomerProfileTransaction function to charge the customer, if needed.
Thanks,
Elaine
โ04-13-2010 11:07 AM
Elaine,
I am using the API examples for C# dotnet and I try adding the extra options when creating a transaction but it doesn't work. I still get the "A duplicate transaction has been submitted" message. Below is the code from the sample. All I did was add the extra options string
CreateCustomerProfileTransactionResponseType response = Service.CreateCustomerProfileTransaction(MerchantAuthentication, trans, "<extraOptions><x_duplicate_window=1></extraOptions>");
When I try to bill the same profile 2 times with the same amount within seconds of each other, I get the duplicate message. Am I doing something wrong?
Thanks
โ07-16-2010 01:59 PM
For C#,
CreateCustomerProfileTransactionResponseType response = Service.CreateCustomerProfileTransaction(MerchantA
uthentication, trans, "x_duplicate_window=1");
If you have more options just add and & in between. e.g. "x_version=3.1&x_delim_char=|"
โ07-16-2010 02:13 PM
Raynor,
Thanks! That worked like a charm.
โ07-16-2010 02:22 PM
So, just to make sure I understand this, are you suggesting that if we actually want to run a transaction to fully validate the customer's card info (including CCV check, AVS check) AND we want to make this a repeatable process in case the customer makes a mistake, we need to do the following?
Is this what everyone does, or do people just cross their fingers and hope that the customer won't make a mistake? That seems a little crazy to me.
Thanks,
Jon
โ08-15-2012 09:32 AM
I am wondering the same thing as #jonathanmgrimm. I understand that for his step #2, we can send our own test $.01 transaction with the duplicate transaction window set to 0, and we won't have to increment like he suggested. But other than that, his solution is the same one I'm looking at right now since we have people who enter their CCV incorrectly who are then unknowingly blocked for 2.5 minutes since we can't send a duplicate transaction window with the CreateCustomerPaymentProfile call. If there is really no other way around it than that, then I understand, but would like someone to confirm.
โ12-10-2012 04:57 PM
As far as I know, that is still the only workaround.
โ12-11-2012 04:15 AM
Has anyone found a better way to deal with this?
One way around this is to use a field in the customer that is not needed like 'Company' and put a variable value in that fields on every CreateCustomerPaymentProfile or UpdateCustomerPaymentProfile call to ensure that its not a duplicate transaction each time. But this is a hack
I would like to find a way to keep the liveMode for validation mode so certain aspects are validated like CVV but be able to not have this Duplicate Transaction Window used.
I am using the CIM SOAP API and have found no way to pass the x_duplicate_window parameter into the CreateCustomerPaymentProfile method
I spoke with Auth.net and they referred me to this forum for help
Anyone have any new ideas on this topic?
โ06-23-2014 01:15 PM
I don't have a better solution for you with the existing API. However, I would be interested in suggestions on how we could improve the response if we find an existing profile matching the submission.
Richard
โ06-23-2014 01:44 PM