Skip to content
English
  • There are no suggestions because the search field is empty.

ReCaptcha Callback

An important part of the SDK transaction.

This function is the core of the SDK Giving Form. All relevant form data converges on this function and results in a completed transaction.

Method

Accepts a ReCaptcha Token as an argument. Relies on local object theData, sourced from HTML form and converted to convenient objects for passing to functions.

function recaptchaCallback(recaptchaToken) {
   try {
       //begin process
      idonateClient.tokenizeSpreedlyCreditCard({
          contact: theData.billingContact,
          address: theData.billingAddress,
          card:{
              cardNumber: $('#cardData-cardNumber').val(),
              expirationMonth: $('#cardData-expirationMonth').val(),
              expirationYear: $('#cardData-ExpirationYear').val()
          }
       }).then((tokenResult) => {

           return idonateClient.createPaymentMethod({

               //RecaptchaSecuredRequest type
              recaptchaType: config.recaptchaType,
              recaptchaToken: recaptchaToken,

               //CreatePaymentMethodRequest type
              paymentGatewayId: config.paymentGatewayId,
              paymentMethodType: 'credit_card',
              paymentMethodToken: tokenResult,
              contact: theData.billingContact,
              address: theData.billingAddress
          })
       }).then((paymentMethodResult) => {

           return idonateClient.createTransaction({
               //RecaptchaSecuredRequest type
              recaptchaType: config.recaptchaType,
               recaptchaToken: recaptchaToken,

               //CreateTransactionRequest type
              paymentGatewayId: config.paymentGatewayId,
              paymentMethodId: paymentMethodResult.paymentMethodId,
              recurringFrequency: theData.recurringFrequency,
              paymentAmount: theData.paymentAmount,
               donorPaidFeeAmount: theData.donorPaidFeeAmount, //optional field, null if not used
              designations: theData.designations,
              currency: theData.currency,
              billingContact: theData.billingContact,
              billingAddress: theData.billingAddress,
               customerMeta: { //this must be an object
                  yourFieldName: "yourValueName"
              },
              recaptchaToken: recaptchaToken,
               corporateMatchingId: -1, //required field, omitted on form in this case
          })
      }).then((createTransactionResult) => {
          
theData.truncatedCardData = "****" + $('#cardData-cardNumber').val().slice(12,16); //for use in receipt page

           //render receipt page
          renderReceiptElements(createTransactionResult);
      })
   } catch (e) {
      handleTheError(e);
  }
}