cancel
Showing results for 
Search instead for 
Did you mean: 

Perform new CIM transaction with existing customerProfileId & customerPayamentProfileId

Hi,

When we perform a CIM transaction and for that we need customerProfileId & customerPayamentProfileId using follwing process:

CustomerProfile.createCustomerProfile();
and 
Result<Transaction> result = (Result<Transaction>) merchant.postTransaction(transaction); 
//(above transaction contains customers credit card information)

When we post our transaction we get customerPayamentProfileId.

 

I want to perform another new trasaction with same credit card information in future.

 

Now my question is can we use same customerProfileId and customerPayamentProfileId to perform another transaction ?

 

I believe authorize.net will keep customers credit card details, and using customerProfileId & customerPayamentProfileId we can perform another new
transaction without asking customer credit card information again if he wants to continue with same credit card information.

 

I tried to perform another transaction with same customerProfileId & customerPayamentProfileId but I am getting error as
'A duplicate transaction has been submitted'.

 

Please give me suggestions.

 

aryansds
Member
8 REPLIES 8

Hi,

 

Is there any way to get either user's credit card information against transactionId  as I don't want to force user again to submit same credit card information ?.

aryansds
Member

sound like you did two transaction using the same customerprofileid and paymentprofileid within the 2 min.

From doc

You can 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 range from 0 to 28800 seconds (maximum of 8 hours).

If you read the doc, you can only get the last 4 digit from transactionID using the http://developer.authorize.net/api/transaction_details/

Hi,

 

Thanks for reply :)

 

Yes I am trying to perform 2 transactions using same customerprofileid and paymentprofileid .

 

Is it possible? I am doing this as I believe if I will use these customerprofileid and paymentprofileid I will not need to take customer's credit card information again.

 

So am I doign any mistake here? Please guide me.

 

My concern is I don't want to force user to enter credit card information again, he will provide credit card information only once , & I believe authorize net api stores somewhere customer's credit card information,which I can use in future for another transaction for same customer.

 

Please correct me if I am wrong.

 

Thanks,

 

 

Or is there any way by using ARB transaction i.e using subscriptionId we can get customer's credit card information ?

 

Hello @aryansds 

 

Yes, you can submit multiple transactions using the same customer and payment profile ID, eliminating the need to collect the user's payment card information again.

 

ARB cannot be used together at this time.

 

Richard

Hi @RichardH, Thanks for reply.

Its Good news then ,

 

But I tried to perform another new transaction with existing customer and payment profile ID, but I am getting error as 'A duplicate transaction has been submitted' when I am trying to execute transacation in following way.

 

transaction.setCustomerProfileId(customerProfileId);
transaction.setCustomerPaymentProfileId(paymentProfileId);
PaymentTransaction paymentTransaction = PaymentTransaction.createPaymentTransaction();
Order order = Order.createOrder();
order.setTotalAmount(amount);
order.setDescription("Payment process with new transaction");
paymentTransaction.setOrder(order); paymentTransaction.setTransactionType(net.authorize.TransactionType.AUTH_CAPTURE); transaction.setPaymentTransaction(paymentTransaction); Result result = (Result) merchant.postTransaction(transaction); // this transaction contains customer's existing customer and payment profile ID

 

 

Can you guide me why I am getting this error ? And also once this transaction will get successful, I will use this same information to process a new ARB transaction.

Are you running the same postTransaction twice in a row? look like all you did was set the same description and amount.

 

Like I wrote before from documentation

 

You can 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 range from 0 to 28800 seconds (maximum of 8 hours).

 

You have to change something so it not a duplicate.

 

I will use this same information to process a new ARB transaction.

If all you need is create ARB, you don't need CIM, because you can NOT use profileID,paymentprofileID to create ARB.

Nor getting CC info back from CIM to create ARB later. read the ARB and CIM documentation on what you need and can do.