greentechuniversity.com
Open in
urlscan Pro
107.23.163.128
Public Scan
Submitted URL: https://solartaxbook.com/
Effective URL: https://greentechuniversity.com/
Submission: On November 21 via api from US — Scanned from US
Effective URL: https://greentechuniversity.com/
Submission: On November 21 via api from US — Scanned from US
Form analysis
1 forms found in the DOMName: paymentForm —
<form id="paymentForm" name="paymentForm" class="ng-pristine ng-invalid ng-invalid-required ng-valid-email" novalidate="novalidate">
<h3 class="tpl-6__checkout__title mb-sm-24 mb-16">Checkout</h3>
<h4 class="tpl-6__checkout__subtitle mb-sm-20 mb-16">Contact</h4>
<div class="row mobile-display">
<div class="col-sm-6 col-12">
<div class="form-group d-flex flex-column">
<input type="text" class="form-control order-2 ng-pristine ng-untouched ng-empty ng-invalid ng-invalid-required" ng-class="{'typed': order.customer.first_name !== ''}" autofill="" id="fname" name="fname" ng-model="order.customer.first_name"
required="" spellcheck="false" value="" autocomplete="given-name">
<label for="fname" class="order-1">First Name</label>
</div>
</div>
<div class="col-sm-6 col-12">
<div class="form-group d-flex flex-column">
<input type="text" class="form-control order-2 ng-pristine ng-untouched ng-empty ng-invalid ng-invalid-required" ng-class="{'typed': order.customer.last_name !== ''}" autofill="" id="lname" name="lname" ng-model="order.customer.last_name"
required="" spellcheck="false" value="" autocomplete="family-name">
<label for="lname" class="order-1">Last Name</label>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6 col-12">
<div class="form-group d-flex flex-column">
<input type="email" class="form-control form-control--icon form-control--email order-2 ng-pristine ng-untouched ng-empty ng-valid-email ng-invalid ng-invalid-required" ng-class="{'typed': order.customer.email !== ''}" autofill="" id="email"
name="email" ng-model="order.customer.email" required="" spellcheck="false" value="" autocomplete="email" ng-blur="onEmailBlur()">
<label for="email" class="order-1">Email Address</label>
</div>
</div>
<div class="col-sm-6 col-12">
<!-- ngIf: checkoutState.product.properties.phone_number_field -->
</div>
</div>
<h4 class="tpl-6__checkout__subtitle mt-sm-20 mb-16">Payment Methods</h4>
<div id="payments" class="tpl-6__payment mb-sm-34 mb-24 mx-sm-0 mx-n16 p-sm-24 p-16">
<div class="row">
<div class="col-sm-auto col-12 order-sm-1 mt-sm-0 mt-16 order-3 ml-20 pr-0">
<div class="custom-control custom-radio m-0">
<input type="radio" id="creditCardRadio" name="paymentMethods" data-toggle="collapse" data-target="#cards:not(.show)" class="custom-control-input" ng-click="setPaymentType('cc_processor')" aria-expanded="true" checked="">
<label class="custom-control-label d-flex align-items-center" for="creditCardRadio">
<div class="payment-method-label" style="height: 16px"><span>Credit Card</span></div>
</label>
</div>
</div>
<div id="cards" class="col-12 collapse order-sm-4 order-3 show " data-parent="#payments">
<div class="payment-element-container">
<div class="payment-form cc-processor-form sampay-processor-form" ng-show="processor_selection == 'cc_processor'">
<!-- ngIf: renderingPaymentElement -->
<!-- ngIf: !renderingPaymentElement -->
<div ng-if="!renderingPaymentElement" class="ng-scope">
<stripe-element id="payment-element" instance="paymentElement" class="stripe-payment-element ng-isolate-scope">
<div stripe-element-decorator="" class="StripeElement">
<div class="__PrivateStripeElement"
style="margin: -4px 0px !important; padding: 0px !important; border: none !important; display: block !important; background: transparent !important; position: relative !important; opacity: 1 !important; clear: both !important; transition: height 0.35s !important;">
<iframe name="__privateStripeFrame25511" frameborder="0" allowtransparency="true" scrolling="no" role="presentation" allow="payment *; publickey-credentials-get *"
src="https://js.stripe.com/v3/elements-inner-payment-bd49d9668c1f1f5bcffe67a6d6ae719b.html#wait=true&rtl=false&publicOptions[paymentMethodOrder][0]=card&publicOptions[paymentMethodOrder][1]=affirm&publicOptions[paymentMethodOrder][2]=afterpay_clearpay&publicOptions[paymentMethodOrder][3]=klarna&publicOptions[terms][applePay]=never&publicOptions[terms][auBecsDebit]=never&publicOptions[terms][bancontact]=never&publicOptions[terms][card]=never&publicOptions[terms][cashapp]=never&publicOptions[terms][googlePay]=never&publicOptions[terms][ideal]=never&publicOptions[terms][paypal]=never&publicOptions[terms][sepaDebit]=never&publicOptions[terms][sofort]=never&publicOptions[terms][usBankAccount]=never&publicOptions[wallets][applePay]=never&publicOptions[wallets][googlePay]=never&publicOptions[layout][type]=accordion&publicOptions[layout][defaultCollapsed]=false&publicOptions[layout][radios]=false&publicOptions[layout][spacedAccordionItems]=true&stripeAccount=acct_1NPUg8KJ0l2kAwsI&elementsInitSource=stripe.elements&componentName=payment&keyMode=live&apiKey=pk_live_51NPUg8KJ0l2kAwsI7eXnH4u7jQS2M1IELGJtQIdDrFnZkpl2Mp3wFKJ4hdPwmPcqABiT0Pp0eTYoDTMUmFoqLkQh00OOF3VV2o&referrer=https%3A%2F%2Fgreentechuniversity.com%2F&controllerId=__privateStripeController2551"
title="Secure payment input frame"
style="border: 0px !important; margin: -4px; padding: 0px !important; width: calc(100% + 8px); min-width: 100% !important; overflow: hidden !important; display: block !important; user-select: none !important; transform: translate(0px) !important; color-scheme: light only !important; height: 279.531px; opacity: 1; transition: height 0.35s, opacity 0.4s 0.1s;"></iframe>
</div>
</div>
</stripe-element>
</div><!-- end ngIf: !renderingPaymentElement -->
</div>
</div>
</div>
<div class="col-sm-auto col-12 order-sm-3 mt-sm-0 mt-16 order-2 ml-20 pr-0 ng-hide" ng-show="canMakePaymentResult && (canMakePaymentResult.applePay || canMakePaymentResult.googlePay)">
<div class="custom-control custom-radio m-0">
<input type="radio" id="digitalWalletRadio" name="paymentMethods" data-toggle="collapse" data-target="#digital-wallets:not(.show)" class="custom-control-input" ng-click="setPaymentType('digital_wallet')" aria-expanded="false">
<label class="custom-control-label d-flex align-items-center" for="digitalWalletRadio">
<div ng-show="canMakePaymentResult.applePay" class="payment-method-label ng-hide">
<img class="apple-pay-v2" src="https://d2n844f18s487r.cloudfront.net/modules/frontend/img/payment/applepay.svg" alt="Apple Pay"><span>Apple Pay</span>
</div>
<div ng-show="canMakePaymentResult.googlePay" class="payment-method-label ng-hide">
<img class="google-pay-v2" src="https://d2n844f18s487r.cloudfront.net/modules/frontend/img/payment/googlepay.svg" alt="Google Pay"><span>Google Pay</span>
</div>
</label>
</div>
</div>
<div id="digital-wallets" class="col-12 collapse order-sm-4 order-2 ng-hide" ng-hide="!canMakePaymentResult.applePay && !canMakePaymentResult.googlePay" data-parent="#payments">
<!-- ngIf: canMakePaymentResult.applePay -->
<!-- ngIf: canMakePaymentResult.googlePay -->
</div>
</div>
</div>
<h4 class="tpl-6__checkout__subtitle mt-sm-20 mb-16">Order Summary</h4>
<div id="order-summary-widget" box-loading="contextRefresh">
<div id="summary-totals" class="box">
<div class="invoice-item subtotal-row ng-hide" ng-show="checkoutContext.order.invoice.subtotal !== checkoutContext.order.invoice.total">
<div class="invoice-label-col">
<span class="invoice-item-label">Subtotal:</span>
</div>
<div class="invoice-amount-col float-right text-right">
<span class="invoice-item-amount ng-binding">$99.99</span>
</div>
</div>
<div class="invoice-item tax-row ng-hide" ng-show="checkoutContext.order.invoice.tax !== 0">
<div class="invoice-label-col">
<span class="invoice-item-label">Tax:</span>
</div>
<div class="invoice-amount-col float-right text-right">
<span class="invoice-item-amount ng-binding">$0.00</span>
</div>
</div>
<div class="invoice-item shipping-row ng-hide" ng-show="checkoutContext.order.invoice.shipping !== 0">
<div class="invoice-label-col">
<span class="invoice-item-label">Shipping:</span>
</div>
<div class="invoice-amount-col float-right text-right">
<span class="invoice-item-amount ng-binding">$0.00</span>
</div>
</div>
<div class="invoice-item discount-row ng-hide" ng-show="checkoutContext.order.invoice.discount !== 0">
<div class="invoice-label-col">
<span class="invoice-item-label">Discounts:</span>
</div>
<div class="invoice-amount-col float-right text-right">
<span class="invoice-item-amount ng-binding">-$0.00</span>
</div>
</div>
<div class="invoice-item total-row">
<div class="invoice-label-col">
<span class="invoice-item-label">Total:</span>
</div>
<div class="invoice-amount-col float-right text-right">
<span class="invoice-item-amount ng-binding" id="total">$99.99 </span>
</div>
</div>
<!-- ngIf: subscriptionsByProductId[checkoutContext.order.invoice.items[0].product_id] -->
</div>
</div>
<div class="tpl-6__order text-center pt-sm-30 py-24">
<div class="g-recaptcha-container">
<script type="text/javascript">
var recaptchaChallengeSeen = false;
var recaptchaCallback = function(response) {
window.recaptchaResponse = response;
};
var onloadCallback = function() {
window.recaptchaWidgetId = grecaptcha.render('submit', {
'sitekey': '6LfyULUmAAAAAJld89qgZEGDDIGnjfWqZGBkXh3t',
'callback': recaptchaCallback,
'size': 'invisible'
});
};
const domObserver = new MutationObserver(() => {
const iframe = document.querySelector("iframe[src^=\"https://www.google.com/recaptcha\"][src*=\"bframe\"]");
if (!iframe) {
return;
}
domObserver.disconnect();
const recaptchaContainerObserver = new MutationObserver(() => {
if (iframe.parentNode.parentNode.style.visibility !== "visible") {
return;
}
recaptchaContainerObserver.disconnect();
iframe.parentNode.parentNode.scrollIntoView(false);
recaptchaChallengeSeen = true;
});
recaptchaContainerObserver.observe(iframe.parentNode.parentNode, {
attributes: true
});
});
domObserver.observe(document.documentElement || document.body, {
childList: true,
subtree: true
});
window.resetRecaptcha = function() {
window.recaptchaResponse = undefined;
grecaptcha.reset(window.recaptchaWidgetId);
recaptchaChallengeSeen = false;
domObserver.observe(document.documentElement || document.body, {
childList: true,
subtree: true
});
}
</script>
<input id="submit" type="hidden" value="Submit" style="">
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async="" defer=""></script>
<script>
const sleepUntil = async (f, timeoutMs) => {
return new Promise((resolve, reject) => {
const timeWas = new Date();
const wait = setInterval(function() {
if (f()) {
clearInterval(wait);
resolve();
} else if (new Date() - timeWas > timeoutMs) { // Timeout
clearInterval(wait);
reject();
}
}, 20);
});
}
function fetchToken() {
window.resetRecaptcha();
return new Promise(async function(resolve, reject) {
grecaptcha.reset();
grecaptcha.execute(window.recaptchaWidgetId);
var responseReceived = false;
try {
await sleepUntil(() => window.recaptchaResponse, 60000);
responseReceived = true;
resolve('');
} catch {
reject('reCAPTCHA timeout exceeded!');
}
snowplow('trackSelfDescribingEvent', {
event: {
schema: 'iglu:com.samcart/recaptcha_challenge_shown_event/jsonschema/1-0-0',
data: {
shown: recaptchaChallengeSeen,
}
}
});
snowplow('trackSelfDescribingEvent', {
event: {
schema: 'iglu:com.samcart/recaptcha_challenge_response_received_event/jsonschema/1-0-0',
data: {
response_received: responseReceived,
}
}
});
});
}
</script>
</div>
<!-- ngIf: processor_selection !== 'digital_wallet' --><button type="submit" class="btn btn-primary mx-auto mb-sm-12 mb-20 w-100 main-cta ng-scope" id="placeOrder" name="placeOrder" ng-click="placeOrder('pdVw9ocNCnhbiDepoqtrJE0f')"
ng-disabled="shippingCountryIsRestricted || isProcessingOrder" ng-if="processor_selection !== 'digital_wallet'"> BUY NOW! </button><!-- end ngIf: processor_selection !== 'digital_wallet' -->
<div id="payment-request-button" class="mx-auto mb-sm-12 mb-20 ng-hide" ng-show="processor_selection === 'digital_wallet'" style="display: none;"></div>
</div>
</form>
Text Content
Full Ebook Library Mastering Solar Incentives A Homeowners Guide to understanding and maximizing your Federal Solar Tax Credit The Vermicomposting Super Book Everything you have always wanted to know about composting with worms! The Backwoods Blueprint Your Guide for finding and purchasing off grid land for your homestead adventure! Buy Them All and Save! The Solar Water Pumping Whitepaper Everything you need to know to pump water with the power of the sun. From calculations to pump testing data to what parts you need to make it all work! What you need to know to evaluate your solar PV potential The title says it all Coming Soon: From Rain to Gain Your complete guide to harvesting and utilizing rainwater on your homestead. Hack My Homestead Podcast CHECKOUT CONTACT First Name Last Name Email Address PAYMENT METHODS Credit Card Apple Pay Google Pay ORDER SUMMARY Subtotal: $99.99 Tax: $0.00 Shipping: $0.00 Discounts: -$0.00 Total: $99.99 BUY NOW! © 2024 GreenTech University. All Rights Reserved. PROCESSING