store.ducttapemarketing.com
Open in
urlscan Pro
54.87.111.129
Public Scan
URL:
https://store.ducttapemarketing.com/
Submission: On June 24 via api from US — Scanned from DE
Submission: On June 24 via api from US — Scanned from DE
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">
<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 ease 0s !important;">
<iframe name="__privateStripeFrame28411" frameborder="0" allowtransparency="true" scrolling="no" role="presentation" allow="payment *; publickey-credentials-get *"
src="https://js.stripe.com/v3/elements-inner-payment-5cbcf91e3fe260f512da67f4d206440a.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_1EOAeBAmfCKMxZAZ&componentName=payment&keyMode=live&apiKey=pk_live_51EOAeBAmfCKMxZAZcGsHjSqUBjNhQPffigYnz2hYiSLXc6B6n2WagFcLBqj8LEaE0bhRG8FfFoHtRcp320RCIH6b00HeqX4ARZ&referrer=https%3A%2F%2Fstore.ducttapemarketing.com%2F&controllerId=__privateStripeController2841"
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: 361.016px; opacity: 1; transition: height 0.35s ease 0s, opacity 0.4s ease 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">$250.00</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">$250.00 (USD)</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();
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('u5hoQv58kHEygRJoIjOWgfzm')"
ng-disabled="shippingCountryIsRestricted || isProcessingOrder" ng-if="processor_selection !== 'digital_wallet'"> Place Order 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
contact@ducttapemarketing.com 1 hr Coaching Call with John Jantsch CHECKOUT CONTACT First Name Last Name Email Address PAYMENT METHODS Credit Card Apple Pay Google Pay ORDER SUMMARY Subtotal: $250.00 Tax: $0.00 Shipping: $0.00 Discounts: -$0.00 Total: $250.00 (USD) Place Order Now © 2024 Duct Tape Marketing. All Rights Reserved. PROCESSING