Reply
Contributor
Posts: 23
Registered: ‎01-09-2015

createTransactionRequest API - Charge a Customer Profile is not working

I used "createCustomerProfileTransactionRequest" to authorize a transaction from an existing customer profile and made it work in java. I understand that this has been depreciated as per information - http://developer.authorize.net/api/reference/#charge-customer-profiles

 

So, I tried to use "createTransactionRequest" to authorize a payment using a stored customer payment profile but in vain. In the following web site (http://developer.authorize.net/api/reference/#payment-transactions-charge-a-customer-profile) I just gave required information to see the output. Interestingly I see blank in response instead of seeing either success/failure.

 

------------------------------------------------

 

<createTransactionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd">
  <merchantAuthentication>
    <name>XXXXXXXXXXXX</name>
    <transactionKey>XXXXXXXXXXXXXX</transactionKey>
  </merchantAuthentication>
  <refId>123456</refId>
  <transactionRequest>
    <transactionType>authCaptureTransaction</transactionType>
    <amount>5</amount>
    <profile>
      <customerProfileId>XXXXXXXXXX</customerProfileId>
      <paymentProfile>
        <paymentProfileId>XXXXXXXXX</paymentProfileId>
      </paymentProfile>
    </profile>
    <lineItems>
      <lineItem>
        <itemId>1</itemId>
        <name>vase</name>
        <description>Cannes logo </description>
        <quantity>18</quantity>
        <unitPrice>45.00</unitPrice>
      </lineItem>
    </lineItems>
    <poNumber>456654</poNumber>
    <shipTo>
      <firstName>China</firstName>
      <lastName>Bayles</lastName>
      <company>Thyme for Tea</company>
      <address>12 Main Street</address>
      <city>Pecan Springs</city>
      <state>TX</state>
      <zip>44628</zip>
      <country>USA</country>
    </shipTo>
    <customerIP>192.168.1.1</customerIP>
  </transactionRequest>
</createTransactionRequest>

 

---------------------------------------

 

I guess this must be a new api and I am not sure whether I have to add any other information. I am just testing from site itself. Please help me to solve this one.

Expert
Posts: 4,525
Registered: ‎03-08-2010

Re: createTransactionRequest API - Charge a Customer Profile is not working

It work fine for me.

Contributor
Posts: 23
Registered: ‎01-09-2015

Re: createTransactionRequest API - Charge a Customer Profile is not working

Did you test from website directly? Even the following java code does not yeild result to me, I get null for response code

        
            Merchant merchant = Merchant.createMerchant(Environment.SANDBOX,
                        apiLoginID, transactionKey);

            MerchantAuthenticationType merchantAuthenticationType = new MerchantAuthenticationType();
            merchantAuthenticationType.setName("xxx");
            merchantAuthenticationType.setTransactionKey("xxx");

            CreateTransactionRequest createTransactionRequest = new CreateTransactionRequest();
            createTransactionRequest.setMerchantAuthentication(merchantAuthenticationType);
          
            TransactionRequestType transactionRequestType = new TransactionRequestType();
            transactionRequestType.setTransactionType(TransactionTypeEnum.AUTH_ONLY_TRANSACTION.value());
            transactionRequestType.setAmount(new BigDecimal(150));
            
            CustomerProfilePaymentType customerProfilePaymentType = new CustomerProfilePaymentType();
            customerProfilePaymentType.setCustomerProfileId("xxxx");
            net.authorize.api.contract.v1.PaymentProfile paymentProfile = new net.authorize.api.contract.v1.PaymentProfile();
            paymentProfile.setPaymentProfileId("xxxxx");
            customerProfilePaymentType.setPaymentProfile(paymentProfile);
            
            transactionRequestType.setProfile(customerProfilePaymentType);
            createTransactionRequest.setTransactionRequest(transactionRequestType);            
            
            CreateTransactionResponse createTransactionResponse = null;
            createTransactionResponse = (CreateTransactionResponse) HttpUtility.postData(Environment.SANDBOX, createTransactionRequest, CreateTransactionResponse.class );

Expert
Posts: 4,525
Registered: ‎03-08-2010

Re: createTransactionRequest API - Charge a Customer Profile is not working

Contributor
Posts: 23
Registered: ‎01-09-2015

Re: createTransactionRequest API - Charge a Customer Profile is not working

Thanks for the information. I followed your instructions and added controller at the end of the code but in vain. I am still getting transactionid as null. Can u please find what is wrong in the below code?

 

            MerchantAuthenticationType merchantAuthenticationType = new MerchantAuthenticationType();
            merchantAuthenticationType.setName("xxx");
            merchantAuthenticationType.setTransactionKey("xxx");

            CreateTransactionRequest createTransactionRequest = new CreateTransactionRequest();
            createTransactionRequest.setMerchantAuthentication(merchantAuthenticationType);
          
            TransactionRequestType transactionRequestType = new TransactionRequestType();
            transactionRequestType.setTransactionType(TransactionTypeEnum.AUTH_ONLY_TRANSACTION.value());
            transactionRequestType.setAmount(new BigDecimal(150));
            
            CustomerProfilePaymentType customerProfilePaymentType = new CustomerProfilePaymentType();
            customerProfilePaymentType.setCustomerProfileId("xxxx");
            net.authorize.api.contract.v1.PaymentProfile paymentProfile = new net.authorize.api.contract.v1.PaymentProfile();
            paymentProfile.setPaymentProfileId("xxxxx");
            customerProfilePaymentType.setPaymentProfile(paymentProfile);
            
            transactionRequestType.setProfile(customerProfilePaymentType);
            createTransactionRequest.setTransactionRequest(transactionRequestType);       

 

            //used controller

            CreateTransactionController controller = new CreateTransactionController(createTransactionRequest);
            controller.execute(Environment.SANDBOX);
            CreateTransactionResponse createTransactionResponse = controller.getApiResponse();
                                
            System.out.println("transactionid:" + createTransactionResponse.getTransactionResponse().getTransId());
            System.out.println("response code:" + createTransactionResponse.getTransactionResponse().getResponseCode());

Expert
Posts: 4,525
Registered: ‎03-08-2010

Re: createTransactionRequest API - Charge a Customer Profile is not working

Maybe some java developer can help you on this.

 

System.out.println("transactionid:" + createTransactionResponse.getTransactionResponse().getTransId());
            System.out.println("response code:" + createTransactionResponse.getTransactionResponse().getResponseCode());

You are assuming the request when thru without error.

Can you debug in what on the createTransactionResponse after the controller.getApiResponse();

Or better yet, if the execute() ran without failed.

Contributor
Posts: 23
Registered: ‎01-09-2015

Re: createTransactionRequest API - Charge a Customer Profile is not working

Actually the last two statements are to print what happened with CreateTransactionResponse. I could print this messages(null) as  controller.execute(Environment.SANDBOX) ran successfully. At this point, I don't have any clue as what to do.

 

Expert
Posts: 4,525
Registered: ‎03-08-2010

Re: createTransactionRequest API - Charge a Customer Profile is not working

Since the source it also on the github.com, you could look to see what it doing.

Member
Posts: 1
Registered: ‎10-15-2015

Re: createTransactionRequest API - Charge a Customer Profile is not working

Any luck with this API?

 

looks lke we are missing something so obvious?. I am also facing this problem.