2016-06-24 8 views
0

Authorize.netにはJava SDKを使用しています。私はCreateCustomerPaymentProfile APIを使用して顧客プロファイルを作成しようとしています。Auth.netはお客様のお支払いプロファイルを作成します - E00040 - レコードが見つかりません

次のエラーが来ている:

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. 

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

答えて

0

あなたは顧客プロファイルなしで顧客の支払いプロファイルを作成することはできません。

String customerProfileId = "36731856";というコードでは、IDが36731856のカスタマープロファイルが存在しないため、エラーE00040が表示されます。

あなたはあなたが望むものが不明です。 あなたは顧客プロファイルを作成したい場合は、ここでCreateCustomerProfile API

を使用するには、そのためのGitHubのサンプルコードです:https://github.com/AuthorizeNet/sample-code-java/blob/master/src/main/java/net/authorize/sample/CustomerProfiles/CreateCustomerProfile.java

関連する問題