code: public boolean updateIsPaymentReadyToCharge(@NonNull PaymentSessionConfig config) {
          if (StripeTextUtils.isBlank(getSelectedPaymentMethodId()) ||
                  (config.isShippingInfoRequired() && getShippingInformation() == null) ||
                  (config.isShippingMethodRequired() && getShippingMethod() == null)) {
              setPaymentReadyToCharge(false);
              return false;
          }
          setPaymentReadyToCharge(true);
          return true;
      }
docs: Function that looks at the {@link PaymentSessionConfig} and determines whether the data is
  ready to charge.
  
  @param config specifies what data is required
  @return whether the data is ready to charge