Reply
Contributor
Posts: 49
Registered: ‎10-28-2015
Accepted Solution

Accept Hosted in iFrame - ANY way to retrieve merchant-defined field values???

Is there ANY way to retrieve merchant-defined field values when using the Accept Hosted payment form in an iFrame?

 

I've already confirmed that:

 

  • they are not included in the iFrame Communicator transaction response;
  • they are not included in WebHook transaction notifications;
  • they are not included in getTransactionDetailsRequest responses.

They do still arrive in Silent Post Responses, but we're not supposed to use those anymore (in favor of WebHooks).

 

This is really frustrating, as our application implicitly relies on two pieces of data defined in merchant-defined fields to determine the source of the transaction (cart, invoice, donation form) and who the "responsible user" is (the user responsible for generating/triggering the transaction event, as opposed to the user account that the cart/invoice/etc belongs to).

 

If we are unable to access those values after a transaction has been completed, we will have to completely re-engineer our solution.

 

Thanks, Fritz

 

 


Accepted Solutions
Solution
Accepted by topic author coppercup
‎05-17-2018 07:26 AM
Posts: 300
Kudos: 51
Solutions: 35
Registered: ‎03-13-2017

Re: Accept Hosted in iFrame - ANY way to retrieve merchant-defined field values???

[ Edited ]

Hi @coppercup

 

You can pass the merchantReferenceID in the transactionRequest 

 

refId Merchant-assigned reference ID for the request.

 

and retirve it back when calling the getTransactionDetails 

 

transrefId Merchant-assigned reference ID for the request.

If your request included refId, we will return the value in transrefId

 

https://developer.authorize.net/api/reference/index.html#transaction-reporting-get-transaction-detai....

 

 

You can store and retrieve the merchant custom fields on your server side using this merchantReferenceID . 

 

Hope it helps !!!

Follow me at

https://twitter.com/anuragg29

https://www.linkedin.com/in/anuragg



Send feedback at developer_feedback@authorize.net

View solution in original post


All Replies
Solution
Accepted by topic author coppercup
‎05-17-2018 07:26 AM
Posts: 300
Kudos: 51
Solutions: 35
Registered: ‎03-13-2017

Re: Accept Hosted in iFrame - ANY way to retrieve merchant-defined field values???

[ Edited ]

Hi @coppercup

 

You can pass the merchantReferenceID in the transactionRequest 

 

refId Merchant-assigned reference ID for the request.

 

and retirve it back when calling the getTransactionDetails 

 

transrefId Merchant-assigned reference ID for the request.

If your request included refId, we will return the value in transrefId

 

https://developer.authorize.net/api/reference/index.html#transaction-reporting-get-transaction-detai....

 

 

You can store and retrieve the merchant custom fields on your server side using this merchantReferenceID . 

 

Hope it helps !!!

Follow me at

https://twitter.com/anuragg29

https://www.linkedin.com/in/anuragg



Send feedback at developer_feedback@authorize.net
Contributor
Posts: 49
Registered: ‎10-28-2015

Re: Accept Hosted in iFrame - ANY way to retrieve merchant-defined field values???

Thank you for your response @Anurag.

 

So, technically, your response indirectly implies that the true answer to my question is:

 

"No, it is not possible to retrieve Merchant Defined Field values from AuthNet after the transaction is processed, either via the iFrame Communicator response or a subsequent getTransactionDetailsRequest()." (Correct me if I'm wrong.)

 

I understand that I can keep track of these values myself, but as I mentioned in my original post, our existing SIM-based solution currently relies on merchant defined field values being available in the SIM relay response, and I was implicitly hoping to avoid reengineering our application on a broader scale. Turns out that replacing the SIM form with the Accept Hosted form is not as easy as I had hoped.

 

As a side thought, what is the point of Merchant Defined Fields, now, if they essentially disappear into the ether and can never again be accessed?

Posts: 300
Kudos: 51
Solutions: 35
Registered: ‎03-13-2017

Re: Accept Hosted in iFrame - ANY way to retrieve merchant-defined field values???

[ Edited ]

Hi @coppercup

 

Yes we cant pass it back as we dont persist them  in our system .

The reason silent post was able to do it as  it was synchronous call after the API and it had lots of issues of lost messages   due to it . 

 

As to keep the integration loosely coupled , using the merchant reference ID and handling of these custom fields on client side is preferred way  going forward  . 

 

Thanks

 

Follow me at

https://twitter.com/anuragg29

https://www.linkedin.com/in/anuragg



Send feedback at developer_feedback@authorize.net
Contributor
Posts: 49
Registered: ‎10-28-2015

Re: Accept Hosted in iFrame - ANY way to retrieve merchant-defined field values???

Understood, thanks for the clarification. I appreciate it.

Contributor
Posts: 46
Registered: ‎11-05-2018

Re: Accept Hosted in iFrame - ANY way to retrieve merchant-defined field values???

You may have a way out, although it may be too late. I've found some out of the box ways to use authorize's defined fields in ways not originally intended but suitable to what I am doing.

 

For those 2 things you need, source of transaction and owner of the transaction, these are both present on your app before the redirection mechanism/iframe payment form is called?

Contributor
Posts: 19
Registered: ‎11-30-2018

Re: Accept Hosted in iFrame - ANY way to retrieve merchant-defined field values???

For accept hosted without iframe/lightbox, we are creating transaction using authorize.net payment page and receipt. In such case I dont see we can pass refId. Am not calling createTransaction as we are passing the details to athorize.net. In such case what should we use in place of refId

 

var transactionRequest = new transactionRequestType
{
transactionType = transactionTypeEnum.authCaptureTransaction.ToString(), // authorize capture only
amount = amount,
lineItems = lineItems,
billTo = billingAddress,
customer = customer,
customerIP = "dummy ip",
merchantDescriptor = "merchand Descriptor",
};