How to integrate Authorize.net into nest js for credit card payment facility?

27 views Asked by At

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.");
        }
      });
    });
  }
0

There are 0 answers