Before (copied from the official documentation):
'use strict';
var ApiContracts = require('authorizenet').APIContracts;
var ApiControllers = require('authorizenet').APIControllers;
var utils = require('../utils.js');
var constants = require('../constants.js');
function getAnAcceptPaymentPage(callback) {
var merchantAuthenticationType = new ApiContracts.MerchantAuthenticationType();
merchantAuthenticationType.setName(constants.apiLoginKey);
merchantAuthenticationType.setTransactionKey(constants.transactionKey);
var transactionRequestType = new ApiContracts.TransactionRequestType();
transactionRequestType.setTransactionType(ApiContracts.TransactionTypeEnum.AUTHCAPTURETRANSACTION);
transactionRequestType.setAmount(utils.getRandomAmount());
var setting1 = new ApiContracts.SettingType();
setting1.setSettingName('hostedPaymentButtonOptions');
setting1.setSettingValue('{\"text\": \"Pay\"}');
var setting2 = new ApiContracts.SettingType();
setting2.setSettingName('hostedPaymentOrderOptions');
setting2.setSettingValue('{\"show\": false}');
var settingList = [];
settingList.push(setting1);
settingList.push(setting2);
var alist = new ApiContracts.ArrayOfSetting();
alist.setSetting(settingList);
var getRequest = new ApiContracts.GetHostedPaymentPageRequest();
getRequest.setMerchantAuthentication(merchantAuthenticationType);
getRequest.setTransactionRequest(transactionRequestType);
getRequest.setHostedPaymentSettings(alist);
//console.log(JSON.stringify(getRequest.getJSON(), null, 2));
var ctrl = new ApiControllers.GetHostedPaymentPageController(getRequest.getJSON());
ctrl.execute(function(){
var apiResponse = ctrl.getResponse();
var response = new ApiContracts.GetHostedPaymentPageResponse(apiResponse);
//pretty print response
//console.log(JSON.stringify(response, null, 2));
if(response != null)
{
if(response.getMessages().getResultCode() == ApiContracts.MessageTypeEnum.OK)
{
console.log('Hosted payment page token :');
console.log(response.getToken());
}
else
{
//console.log('Result Code: ' + response.getMessages().getResultCode());
console.log('Error Code: ' + response.getMessages().getMessage()[0].getCode());
console.log('Error message: ' + response.getMessages().getMessage()[0].getText());
}
}
else
{
console.log('Null response received');
}
callback(response);
});
}
if (require.main === module) {
getAnAcceptPaymentPage(function(){
console.log('getAnAcceptPaymentPage call complete.');
});
}
module.exports.getAnAcceptPaymentPage = getAnAcceptPaymentPage;
After:
'use strict';
var ApiContracts = require('authorizenet').APIContracts;
var ApiControllers = require('authorizenet').APIControllers;
var utils = require('../utils.js');
var constants = require('../constants.js');
function getAnAcceptPaymentPage() {
var merchantAuthenticationType = new ApiContracts.MerchantAuthenticationType();
merchantAuthenticationType.setName(constants.apiLoginKey);
merchantAuthenticationType.setTransactionKey(constants.transactionKey);
var transactionRequestType = new ApiContracts.TransactionRequestType();
transactionRequestType.setTransactionType(ApiContracts.TransactionTypeEnum.AUTHCAPTURETRANSACTION);
transactionRequestType.setAmount(utils.getRandomAmount());
var setting1 = new ApiContracts.SettingType();
setting1.setSettingName('hostedPaymentButtonOptions');
setting1.setSettingValue('{\"text\": \"Pay\"}');
var setting2 = new ApiContracts.SettingType();
setting2.setSettingName('hostedPaymentOrderOptions');
setting2.setSettingValue('{\"show\": false}');
var settingList = [];
settingList.push(setting1);
settingList.push(setting2);
var alist = new ApiContracts.ArrayOfSetting();
alist.setSetting(settingList);
var getRequest = new ApiContracts.GetHostedPaymentPageRequest();
getRequest.setMerchantAuthentication(merchantAuthenticationType);
getRequest.setTransactionRequest(transactionRequestType);
getRequest.setHostedPaymentSettings(alist);
//console.log(JSON.stringify(getRequest.getJSON(), null, 2));
var ctrl = new ApiControllers.GetHostedPaymentPageController(getRequest.getJSON());
return new Promise((resolve, reject) => {
ctrl.execute(function(){
var apiResponse = ctrl.getResponse();
var response = new ApiContracts.GetHostedPaymentPageResponse(apiResponse);
//pretty print response
//console.log(JSON.stringify(response, null, 2));
if(response != null)
{
if(response.getMessages().getResultCode() == ApiContracts.MessageTypeEnum.OK)
{
console.log('Hosted payment page token :');
console.log(response.getToken());
return resolve(response);
}
else
{
//console.log('Result Code: ' + response.getMessages().getResultCode());
console.log('Error Code: ' + response.getMessages().getMessage()[0].getCode());
console.log('Error message: ' + response.getMessages().getMessage()[0].getText());
return reject(response);
}
}
else
{
console.log('Null response received');
return reject(response);
}
});
});
}
getAnAcceptPaymentPage().then(data => {
console.log(data);
}).catch(error => {
console.log(error)
});
Compare:

