AnsweredAssumed Answered

Can't send TransactionQuery request (Express Interface API)

Question asked by eegorov on Sep 14, 2017
Latest reply on Oct 23, 2017 by kmartin

I am trying to implement Hosted Payment Page method for Web store (The configuration is Web browser - My Server - https://  certtransaction.hostedpayments.com gateway).

 

My workflow is :

1. Client (web browser) sends /payment request (our internal method) to Server.

2. Server sends successfully TransactionSetup xml request to https:// certtransaction.hostedpayments.com., got the TrasactionSetupID and reply it to the client.

3. Client redirects to Hosted Pay Page form, user populates the form and the gateway redirects back with HostedPaymentStatus=Complete status and other params.

4. Client sends /payment_complete request (our internal method) to confirm the transaction (sends TrasactionSetupID).

All is ok before the next step:

5. Server have to be sure that the operation is completed successfully (then it will create the payment record in our DB). I am trying to send TransactionQuery requests as it's described in your Express Interface API v2.8.4.pdf document: "The POS can now programmatically query Element’s real-time reporting API, TransactionQuery, using the TransactionSetupID for the specific purchase, to obtain the asynchronous result of the payment transaction."

 

I've sent the request by analogy to TransactionSetup one:

<TransactionQuery xmlns="https://transaction.elementexpress.com">

      <Credentials>

        <AccountID>1046228</AccountID>

        <AccountToken>account_token_is_here</AccountToken>

      <AcceptorID>acceptor_id_is_here</AcceptorID>

      </Credentials>

      <Application>

        <ApplicationID>8489</ApplicationID>

        <ApplicationVersion>1.0</ApplicationVersion>

        <ApplicationName>Web</ApplicationName>

      </Application>

      <Parameters>

          <TransactionSetupID>transaction_id_is_here</TransactionSetupID>

      </Parameters>

    </TransactionQuery>

 

the request params are:

url: "https://certtransaction.elementexpress.com/",

method: "POST",

headers: {

       "content-type": "text/xml;charset=\"utf-8\"",

       "accept": "text/xml"

}

 

It replies with the body message:

 

<Response xmlns='https://transaction.elementexpress.com'><Response><ExpressResponseCode>103</ExpressResponseCode><ExpressResponseMessage>The 'https://transaction.elementexpress.com:TransactionQuery' element is not declared.</ExpressResponseMessage></Response></Response>

 

What am I doing wrong? Thanks in advance.

Outcomes