10-20-2009 02:04 PM - edited 10-20-2009 02:04 PM
Thanks! I did think of that, but wasn't sure if it was a good solution. According to the CIM guide, various fields are matched to see if the customer profile already exists: merchantCustomerId, description, email. All I can think of is passing a GUID to the description field to throw off the checking. How did you handle this?
10-20-2009 04:21 PM
Thanks for the heads up. It does appear that our documentation needs to be updated. Right now, using CIM, you can only get the error code with the duplicate ID for createCustomerProfileRequest, not createCustomerPaymentProfileRequest or createCustomerShippingAddressRequest. I'll send that on to documentation to get the corrected.
I'm also forwarding a request to product to let them know you all would like to receive the duplicate ID for payment profiles and shipping addresses as well. In the meantime though, it looks like Steve and Jacob have given you some really useful info to help out. Thanks much everyone!
10-20-2009 07:33 PM
>> (I'm working with an off the shelf e-commerce system and I'd have to do quite a lot of recoding
>> to implement stored payment profiles/management so I'll save that task for later.)
AHA! So you're facing THAT can of worms... yes... been there, done that way too many times... Not necessarily with payment gateways, though too many of those too....
>>It seems to me the only way I can possibly proceed with this is to dig in a spend a large
>>amount of time trying to add customer payment profile management to the e-commerce system.
Pretty much, looks like.....
I'm with you, I usually loathe trying to integrate into other peoples programs almost as much as they hate integrating into mine. The biggest problem is figuring out where things are, seems like. Especially when global variables are.... well, no need to get started on that subject. :-)
OK Augie, keep plugging away, it sounds like the folks at authnet have noted the problem, hopefully we can get a change on this behavior sometime soon...
10-22-2009 02:24 PM
That will be great, thanks Mimi.
The Customer Profile dup message, "A duplicate record with id %d already exists.", is parsable but I would preferr to have customerProfileId be the duplicate number instead of zero. The same for the address and payment profile errors.
I would know it isn't a new ID because the resultCode is Error, and the MessagesTypeMessage code is E00039.
01-04-2010 08:11 PM
New to CIM as of today - and immediately ran up against this very irritating issue - which is incredibly easy to fix and a tremendous pain to work around.
At least in the case of duplicate payment profile detection you can go through all the profiles (from GetCustomerProfile) and check these fields to find the one that corresponds to your new profile. Fortunately in the implementation guide they tell you which fields are the 'primary key' of a payment method : http://www.authorize.net/support/CIM_SOAP_guide.pdf
Just check these fields to find the dupe. If there are more than 1 records found then error out (this will be the case if two cards end in the same 4 digits at the same address - which hopefully is very unlikely).
customerProfileId, cardNumber, accountNumber, routingNumber, billToFirstName, billToLastName, billToAddress, and billToZip
12-25-2012 11:29 PM
Did you have any update or any solution regarding this issue, As we are facing some critical issue in our design due to this. Also is there any way of to get the CustomerPaymentProfileExType ??
Please reply back ASAP.
Thanks & Regards,
03-13-2013 06:08 AM
I also find it very irritating, cause it's possible for user to create multiple PaymentProfiles with the same credit card number and some different keyFields, so that finally it's even not possible to figure out, what PaymentProfile is being actually duplicated. It's 2013 now, and still no solution to this issue... Why?
07-03-2013 12:12 PM
As someone who just hit this problem today, it's a little annoying to see Authorize.NET has ignored a simple request for years now. I guess I'll loop through the last 4 and hope for the best?