05-24-2013 09:06 AM - edited 05-24-2013 09:09 AM
but it seems, this will return the masked payment profile ID
no. it return a masked credit card#.
We don't want to store customer profile ID and payment profile IDs
If you don't stored them, how are you going to know who and which card to charge?
read the "Output for CreateCustomerProfileResponse" section on the documentation @
http://developer.authorize.net/api/cim/
There is the validationDirectResponseList where it would have the response from the validation request of the credit card
05-24-2013 09:35 AM
thanks for your feedbac.
Is it a common practice to store the customer and payment profile ID inside of a source application (that initiate and call the authorize api)? Is it not possible to encrypt ?
Obviously we cannot store the full credit card number so how to retreive the masked credit card numbers once the payment profile is created in authorize.net?
05-24-2013 11:51 AM
Is it a common practice to store the customer and payment profile ID inside of a source application (that initiate and call the authorize api)? Is it not possible to encrypt ?
The customer profile id/payment profile id only work with your merchant account. So you should be worry about someone gaining access to your loginID and transactionKey.
Obviously we cannot store the full credit card number so how to retreive the masked credit card numbers once the payment profile is created in authorize.net?
Use GetCustomerPaymentProfile with the customer profile id and customer payment profile id
05-24-2013 12:03 PM
Ok. thanks for clarification. Now, could I run the validatecustomerpaymentProfile or does GetCustomerPaymentProfile would confirm whether the card is valid, before I run through the transaction.
05-24-2013 12:26 PM
Also how to retreive the authorization # or transaction code etc., (that is being sent as email) but capture that inside the application? looks like its directresponse but what is CustomerProfileWS method that provide the values?
05-24-2013 12:27 PM - edited 05-24-2013 12:28 PM
When you do the createcustomerproifle/CreateCustomerPaymentProfile, you can set the validationmode to livemode which will run a auth_only transaction to test the CC#(fees). Or you can run the ValidateCustomerPaymentProfile later, which does the same thing(fees).
Just want to make sure you know that there will be transaction fee for the validation.
Also how to retreive the authorization # or transaction code etc., (that is being sent as email) but capture that inside the application? looks like its directresponse but what is CustomerProfileWS method that provide the values?
the depend of which methods you can calling. Anything that create a transaction would have a(or a list of) directresponse in their response object.
05-24-2013 01:34 PM
Hi I am calling the CreateTransaction Method as below. as you can see it returns "OK" and "Successful" that's all. I am not able to get the transaction code, authorization, payment, customer etc.,
public void CreateTransaction(long profile_id, long payment_profile_id, decimal amount) { CustomerProfileWS.ProfileTransAuthCaptureType auth_capture = new CustomerProfileWS.ProfileTransAuthCaptureType(); auth_capture.customerProfileId = profile_id; auth_capture.customerPaymentProfileId = payment_profile_id; auth_capture.amount = amount; // 1.00m; auth_capture.order = new CustomerProfileWS.OrderExType();
auth_capture.order.invoiceNumber = "invoice" + DateTime.Now.ToShortTimeString(); CustomerProfileWS.ProfileTransactionType trans = new CustomerProfileWS.ProfileTransactionType(); trans.Item = auth_capture;
CustomerProfileWS.CreateCustomerProfileTransactionResponseType response = SoapAPIUtilities.Service.CreateCustomerProfileTransaction(SoapAPIUtilities.MerchantAuthentication, trans, null);
Console.WriteLine("Response Code: " + response.resultCode);
for (int i = 0; i < response.messages.Length; i++)
{ Console.WriteLine(response.messages[i].text); } }
05-24-2013 01:56 PM - edited 05-24-2013 01:57 PM
is the response.directResponse
but it is in delimited format.
do something like this, check your delimited char
string[] AIMresponse = response.directResponse.Split(',');
read the index seq
05-24-2013 02:19 PM - edited 05-24-2013 02:20 PM