Skip to content

Commit

Permalink
fixed issue AuthorizeNet#29 and issue #74, I corrected the sample-cod…
Browse files Browse the repository at this point in the history
…e in recurring payments by adding a payment and setting payment to arbSubscriptionType object.
  • Loading branch information
ccnyalumni committed Jul 17, 2020
1 parent 7191d2f commit 270276f
Showing 1 changed file with 72 additions and 54 deletions.
126 changes: 72 additions & 54 deletions RecurringBilling/update-subscription.js
Original file line number Diff line number Diff line change
@@ -1,62 +1,80 @@
'use strict';
/* eslint-disable no-console */
"use strict";

var ApiContracts = require('authorizenet').APIContracts;
var ApiControllers = require('authorizenet').APIControllers;
var utils = require('../utils.js');
var constants = require('../constants.js');
var ApiContracts = require("authorizenet").APIContracts;
var ApiControllers = require("authorizenet").APIControllers;
var utils = require("../utils.js");
var constants = require("../constants.js");

function updateSubscription(subscriptionId, callback) {
var merchantAuthenticationType = new ApiContracts.MerchantAuthenticationType();
merchantAuthenticationType.setName(constants.apiLoginKey);
merchantAuthenticationType.setTransactionKey(constants.transactionKey);

var orderType = new ApiContracts.OrderType();
orderType.setInvoiceNumber(utils.getRandomString('Inv:'));
orderType.setDescription(utils.getRandomString('Description'));

var arbSubscriptionType = new ApiContracts.ARBSubscriptionType();
arbSubscriptionType.setOrder(orderType);

var updateRequest = new ApiContracts.ARBUpdateSubscriptionRequest();
updateRequest.setMerchantAuthentication(merchantAuthenticationType);
updateRequest.setSubscriptionId(subscriptionId);
updateRequest.setSubscription(arbSubscriptionType);

console.log(JSON.stringify(updateRequest.getJSON(), null, 2));

var ctrl = new ApiControllers.ARBUpdateSubscriptionController(updateRequest.getJSON());

ctrl.execute(function(){

var apiResponse = ctrl.getResponse();

var response = new ApiContracts.ARBUpdateSubscriptionResponse(apiResponse);

console.log(JSON.stringify(response, null, 2));

if(response != null){
if(response.getMessages().getResultCode() == ApiContracts.MessageTypeEnum.OK){
console.log('Message Code : ' + response.getMessages().getMessage()[0].getCode());
console.log('Message Text : ' + response.getMessages().getMessage()[0].getText());
}
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.');
}

callback(response);
});
var merchantAuthenticationType = new ApiContracts.MerchantAuthenticationType();
merchantAuthenticationType.setName(constants.apiLoginKey);
merchantAuthenticationType.setTransactionKey(constants.transactionKey);

var updatedCreditCardInfo = new ApiContracts.CreditCardType();
updatedCreditCardInfo.setCardNumber("4111111111111111");
updatedCreditCardInfo.setExpirationDate("2038-12");

var payment = new ApiContracts.PaymentType();
payment.setCreditCard(updatedCreditCardInfo);

var orderType = new ApiContracts.OrderType();
orderType.setInvoiceNumber(utils.getRandomString("Inv:"));
orderType.setDescription(utils.getRandomString("Description"));

var arbSubscriptionType = new ApiContracts.ARBSubscriptionType();
arbSubscriptionType.setOrder(orderType);
arbSubscriptionType.setPayment(payment);

var updateRequest = new ApiContracts.ARBUpdateSubscriptionRequest();
updateRequest.setMerchantAuthentication(merchantAuthenticationType);
updateRequest.setSubscriptionId(subscriptionId);
updateRequest.setSubscription(arbSubscriptionType);

console.log(JSON.stringify(updateRequest.getJSON(), null, 2));

var ctrl = new ApiControllers.ARBUpdateSubscriptionController(
updateRequest.getJSON()
);

ctrl.execute(function () {
var apiResponse = ctrl.getResponse();

var response = new ApiContracts.ARBUpdateSubscriptionResponse(apiResponse);

console.log(JSON.stringify(response, null, 2));

if (response != null) {
if (
response.getMessages().getResultCode() == ApiContracts.MessageTypeEnum.OK
) {
console.log(
"Message Code : " + response.getMessages().getMessage()[0].getCode()
);
console.log(
"Message Text : " + response.getMessages().getMessage()[0].getText()
);
} 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.");
}

callback(response);
});
}

if (require.main === module) {
updateSubscription('4058648', function(){
console.log('getSubscription call complete.');
});
updateSubscription("4058648", function () {
console.log("getSubscription call complete.");
});
}

module.exports.updateSubscription = updateSubscription;
module.exports.updateSubscription = updateSubscription;

0 comments on commit 270276f

Please sign in to comment.