How to integrate Authorize.net into nest js for credit card payment facility?
async chargeCreditCard(amount: number, cardDetails: any): Promise { var merchantAuthenticationType = new AuthorizeNet.APIContracts.MerchantAuthenticationType(); merchantAuthenticationType.setName('5KP3u9'); merchantAuthenticationType.setTransactionKey('346HZ32z3hTG2');
var creditCard = new AuthorizeNet.APIContracts.CreditCardType();
creditCard.setCardNumber('4242424242424242');
creditCard.setExpirationDate('0826'); // Format: "YYYY-MM"
creditCard.setCardCode('899');
var paymentType = new AuthorizeNet.APIContracts.PaymentType();
paymentType.setCreditCard(creditCard);
var transactionRequestType = new AuthorizeNet.APIContracts.TransactionRequestType();
transactionRequestType.setTransactionType(AuthorizeNet.APIContracts.TransactionTypeEnum.AUTHCAPTURETRANSACTION);
transactionRequestType.setPayment(paymentType);
transactionRequestType.setAmount(amount);
var createRequest = new AuthorizeNet.APIContracts.CreateTransactionRequest();
createRequest.setMerchantAuthentication(merchantAuthenticationType);
createRequest.setTransactionRequest(transactionRequestType);
var ctrl = new AuthorizeNet.APIControllers.CreateTransactionController(createRequest.getJSON());
return new Promise((resolve, reject) => {
ctrl.execute(function(){
var apiResponse = ctrl.getResponse();
var response = new AuthorizeNet.APIContracts.CreateTransactionResponse(apiResponse);
// Handle the response as per your requirement
if (response != null) {
if (response.getMessages().getResultCode() === AuthorizeNet.APIContracts.MessageTypeEnum.OK) {
resolve(response.getTransactionResponse().getTransId());
} else {
reject(response.getMessages().getMessage()[0].getText());
}
} else {
reject("Null Response.");
}
});
});
}