Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Nodejs Authorize.net重复客户付款配置文件错误_Javascript_Node.js_Payment Gateway_Authorize.net - Fatal编程技术网

Javascript Nodejs Authorize.net重复客户付款配置文件错误

Javascript Nodejs Authorize.net重复客户付款配置文件错误,javascript,node.js,payment-gateway,authorize.net,Javascript,Node.js,Payment Gateway,Authorize.net,我试图通过使用客户配置文件id为每张卡创建客户付款配置文件来保存客户的多张卡。代码工作正常,因为它首先创建配置文件,然后返回重复错误,如下所示 const transactionSetting1 = new ApiContracts.SettingType(); transactionSetting1.setSettingName('duplicateWindow'); transactionSetting1.setSettingValue('0'); 响应 {

我试图通过使用客户配置文件id为每张卡创建客户付款配置文件来保存客户的多张卡。代码工作正常,因为它首先创建配置文件,然后返回重复错误,如下所示

    const transactionSetting1 = new ApiContracts.SettingType();
    transactionSetting1.setSettingName('duplicateWindow');
    transactionSetting1.setSettingValue('0');
响应

 {
    "success": false,
    "message": "A duplicate customer payment profile already exists.",
    "error": {
        "status": false,
        "message": "A duplicate customer payment profile already exists.",
        "data": ""
    }
  }
createCustomerPaymentProfile: async payload => {
const {
    businessData,
    customerProfileId,
    customerDetails,
    creditCardDetails,
} = payload; 
const merchantAuthenticationType = new ApiContracts.MerchantAuthenticationType();
merchantAuthenticationType.setName(businessData.apiLoginKey);
merchantAuthenticationType.setTransactionKey(businessData.transactionKey);

const creditCard = new ApiContracts.CreditCardType();
creditCard.setCardNumber(creditCardDetails.CardNumber);
creditCard.setExpirationDate(creditCardDetails.ExpirationDate);

const paymentType = new ApiContracts.PaymentType();
paymentType.setCreditCard(creditCard);

const customerAddress = new ApiContracts.CustomerAddressType();
customerAddress.setFirstName(customerDetails.FirstName);
customerAddress.setLastName(customerDetails.LastName);
customerAddress.setAddress(customerDetails.Address);
customerAddress.setCity(customerDetails.FirstName);
customerAddress.setState(customerDetails.FirstName);
customerAddress.setZip(customerDetails.FirstName);
customerAddress.setCountry(customerDetails.FirstName);
customerAddress.setPhoneNumber(customerDetails.FirstName);

const profile = new ApiContracts.CustomerPaymentProfileType();
profile.setBillTo(customerAddress);
profile.setPayment(paymentType);

const createRequest = new ApiContracts.CreateCustomerPaymentProfileRequest();

createRequest.setMerchantAuthentication(merchantAuthenticationType);
createRequest.setCustomerProfileId(customerProfileId);
createRequest.setPaymentProfile(profile);
const ctrl = new ApiControllers.CreateCustomerPaymentProfileController(
    createRequest.getJSON(),
);
const result = await new Promise((resolve, reject) => {
    ctrl.execute(function() {
        const apiResponse = ctrl.getResponse();

        const response = new ApiContracts.CreateCustomerPaymentProfileResponse(
            apiResponse,
        );

        console.log('Response of Pyament Profile');
        console.log(JSON.stringify(response, null, 2));
        if (response != null) {
            if (
                response.getMessages().getResultCode() ==
                ApiContracts.MessageTypeEnum.OK
            ) {
                return resolve({
                    status: true,
                    message: 'Customer paymentProfileId,customerProfileId ',
                    data: {
                        paymentProfileId: response.getCustomerPaymentProfileId(),
                        customerProfileId: response.getCustomerProfileId(),
                    },
                }); 
            }
            return reject({
                status: false,
                message: `${response
                    .getMessages()
                    .getMessage()[0]
                    .getText()}`,
                data: '',
            });
        }
        return reject({
            status: false,
            message: `Null response returned`,
            data: '',
        });

    });
});
return result;

代码

 {
    "success": false,
    "message": "A duplicate customer payment profile already exists.",
    "error": {
        "status": false,
        "message": "A duplicate customer payment profile already exists.",
        "data": ""
    }
  }
createCustomerPaymentProfile: async payload => {
const {
    businessData,
    customerProfileId,
    customerDetails,
    creditCardDetails,
} = payload; 
const merchantAuthenticationType = new ApiContracts.MerchantAuthenticationType();
merchantAuthenticationType.setName(businessData.apiLoginKey);
merchantAuthenticationType.setTransactionKey(businessData.transactionKey);

const creditCard = new ApiContracts.CreditCardType();
creditCard.setCardNumber(creditCardDetails.CardNumber);
creditCard.setExpirationDate(creditCardDetails.ExpirationDate);

const paymentType = new ApiContracts.PaymentType();
paymentType.setCreditCard(creditCard);

const customerAddress = new ApiContracts.CustomerAddressType();
customerAddress.setFirstName(customerDetails.FirstName);
customerAddress.setLastName(customerDetails.LastName);
customerAddress.setAddress(customerDetails.Address);
customerAddress.setCity(customerDetails.FirstName);
customerAddress.setState(customerDetails.FirstName);
customerAddress.setZip(customerDetails.FirstName);
customerAddress.setCountry(customerDetails.FirstName);
customerAddress.setPhoneNumber(customerDetails.FirstName);

const profile = new ApiContracts.CustomerPaymentProfileType();
profile.setBillTo(customerAddress);
profile.setPayment(paymentType);

const createRequest = new ApiContracts.CreateCustomerPaymentProfileRequest();

createRequest.setMerchantAuthentication(merchantAuthenticationType);
createRequest.setCustomerProfileId(customerProfileId);
createRequest.setPaymentProfile(profile);
const ctrl = new ApiControllers.CreateCustomerPaymentProfileController(
    createRequest.getJSON(),
);
const result = await new Promise((resolve, reject) => {
    ctrl.execute(function() {
        const apiResponse = ctrl.getResponse();

        const response = new ApiContracts.CreateCustomerPaymentProfileResponse(
            apiResponse,
        );

        console.log('Response of Pyament Profile');
        console.log(JSON.stringify(response, null, 2));
        if (response != null) {
            if (
                response.getMessages().getResultCode() ==
                ApiContracts.MessageTypeEnum.OK
            ) {
                return resolve({
                    status: true,
                    message: 'Customer paymentProfileId,customerProfileId ',
                    data: {
                        paymentProfileId: response.getCustomerPaymentProfileId(),
                        customerProfileId: response.getCustomerProfileId(),
                    },
                }); 
            }
            return reject({
                status: false,
                message: `${response
                    .getMessages()
                    .getMessage()[0]
                    .getText()}`,
                data: '',
            });
        }
        return reject({
            status: false,
            message: `Null response returned`,
            data: '',
        });

    });
});
return result;
}

我在事务和订阅API中有这个错误,但是通过添加下面给出的代码,这些错误被修复了

    const transactionSetting1 = new ApiContracts.SettingType();
    transactionSetting1.setSettingName('duplicateWindow');
    transactionSetting1.setSettingValue('0');
如何将多张卡添加到authorize.net? 是否存在允许重复付款配置文件的设置对象