2016-06-24 16 views
0

Ich bin neu in der Authorize.net mit Java SDK. Ich versuche, das Kundenprofil mithilfe der API CreateCustomerPaymentProfile zu erstellen.Auth.net Kundenzahlungsprofil erstellen - E00040 - Der Datensatz kann nicht gefunden werden

Der folgende Fehler kommt:

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. 

Die folgende 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()); 
       } 
      } 
     } 
    } 
} 

Antwort

0

Sie können kein Kunde Zahlungsprofil ohne Kundenprofil erstellen.

In dem Code, den Sie String customerProfileId = "36731856"; angegeben haben, erhalten Sie den Fehler E00040, da das Kundenprofil mit der ID 36731856 nicht existiert.

Sie sind unklar, was Sie wollen. Wenn Sie ein Kundenprofil erstellen möchten, verwenden Sie CreateCustomerProfile API

Hier ist die GitHub Beispielcode für sie: https://github.com/AuthorizeNet/sample-code-java/blob/master/src/main/java/net/authorize/sample/CustomerProfiles/CreateCustomerProfile.java