Reputation:
I am new to the Authorize.net
using Java SDK
. I am trying to create the Customer Profile using CreateCustomerPaymentProfile
API.
The following error is coming:
06/24/16 21:24:36,362: INFO [pool-1-thread-1] (net.authorize.util.LogHelper:24) - Use Proxy: 'false'
Failed to create customer payment profile: ERROR
~~~~ Details Are ~~~~
Message Code : E00040
Message Text : The record cannot be found.
The following API:
import java.util.List;
import net.authorize.Environment;
import net.authorize.api.contract.v1.CreateCustomerPaymentProfileRequest;
import net.authorize.api.contract.v1.CreateCustomerPaymentProfileResponse;
import net.authorize.api.contract.v1.CreditCardType;
import net.authorize.api.contract.v1.CustomerAddressType;
import net.authorize.api.contract.v1.CustomerPaymentProfileType;
import net.authorize.api.contract.v1.MerchantAuthenticationType;
import net.authorize.api.contract.v1.MessageTypeEnum;
import net.authorize.api.contract.v1.MessagesType.Message;
import net.authorize.api.contract.v1.PaymentType;
import net.authorize.api.controller.CreateCustomerPaymentProfileController;
import net.authorize.api.controller.base.ApiOperationBase;
public class CreateCustomerPaymentProfile {
public static final String apiLoginID= "72mNC7gyq";
public static final String transactionKey= "**";
private static final String customerProfileId = "36731856";
public static void main(String[] args) {
ApiOperationBase.setEnvironment(Environment.SANDBOX);
MerchantAuthenticationType merchantAuthenticationType = new MerchantAuthenticationType() ;
merchantAuthenticationType.setName(apiLoginID);
merchantAuthenticationType.setTransactionKey(transactionKey);
ApiOperationBase.setMerchantAuthentication(merchantAuthenticationType);
//private String getPaymentDetails(MerchantAuthenticationType merchantAuthentication, String customerprofileId, ValidationModeEnum validationMode) {
CreateCustomerPaymentProfileRequest apiRequest = new CreateCustomerPaymentProfileRequest();
apiRequest.setMerchantAuthentication(merchantAuthenticationType);
apiRequest.setCustomerProfileId(customerProfileId);
//customer address
CustomerAddressType customerAddress = new CustomerAddressType();
customerAddress.setFirstName("test");
customerAddress.setLastName("scenario");
customerAddress.setAddress("123 Main Street");
customerAddress.setCity("Bellevue");
customerAddress.setState("WA");
customerAddress.setZip("98004");
customerAddress.setCountry("USA");
customerAddress.setPhoneNumber("000-000-0000");
//credit card details
CreditCardType creditCard = new CreditCardType();
creditCard.setCardNumber("4111111111111111");
creditCard.setExpirationDate("2023-12");
creditCard.setCardCode("122");
CustomerPaymentProfileType profile = new CustomerPaymentProfileType();
profile.setBillTo(customerAddress);
PaymentType payment = new PaymentType();
payment.setCreditCard(creditCard);
profile.setPayment(payment);
apiRequest.setPaymentProfile(profile);
CreateCustomerPaymentProfileController controller = new CreateCustomerPaymentProfileController(apiRequest);
controller.execute();
CreateCustomerPaymentProfileResponse response = new CreateCustomerPaymentProfileResponse();
response = controller.getApiResponse();
if (response != null) {
if (response.getMessages().getResultCode() == MessageTypeEnum.OK) {
System.out.println(response.getCustomerPaymentProfileId());
System.out.println(response.getMessages().getMessage().get(0).getCode());
System.out.println(response.getMessages().getMessage().get(0).getText());
if(response.getValidationDirectResponse() != null)
System.out.println(response.getValidationDirectResponse());
}
else {
System.out.println("Failed to create customer payment profile: " + response.getMessages().getResultCode());
System.out.println("~~~~ Details Are ~~~~");
List<Message> messages = response.getMessages().getMessage();
for (Message message : messages) {
System.out.println("Message Code : "+message.getCode());
System.out.println("Message Text : "+message.getText());
}
}
}
}
}
Upvotes: 1
Views: 3142
Reputation: 830
You cannot create a customer payment profile without a customer profile.
In the code you have given String customerProfileId = "36731856";
, you are getting error E00040
as the Customer profile with id 36731856
doesn't exist.
You are unclear on what you want.
If you want to create a customer profile, use CreateCustomerProfile
API
Here, is the GitHub sample code for it : https://github.com/AuthorizeNet/sample-code-java/blob/master/src/main/java/net/authorize/sample/CustomerProfiles/CreateCustomerProfile.java
Upvotes: 3