document.addEventListener('DOMContentLoaded', function() {
function getQueryParams() {
var params = {};
var queryString = window.location.search.substring(1);
var queryArray = queryString.split('&');
queryArray.forEach(function(param) {
var keyValue = param.split('=');
var key = decodeURIComponent(keyValue[0]);
var value = decodeURIComponent(keyValue[1] ? keyValue[1].replace(/\+/g, ' ') : '');
params[key] = value;
});
return params;
}
var queryParams = getQueryParams();
var firstName = queryParams.firstname || '';
var lastName = queryParams.lastname || '';
var email = queryParams.email || '';
document.getElementById('createPassButton').addEventListener('click', function() {
var button = this;
if (!email || !firstName || !lastName) {
alert('First name, last name, or email not found. Please ensure you are using the correct link.');
return;
}
button.textContent = "Creating your VIP pass";
button.disabled = true;
var apiUrl = 'https://app2.walletpush.io/api/v1/templates/5883374465449984/pass';
var apiHeaders = {
'Authorization': 'cBraMzhEWuegDPiWmtismKfSTkppPRLdryGRPjQypFoGguayTVyFjQJtonXBTRjv',
'Content-Type': 'application/json'
};
var apiBody = JSON.stringify({
'First_Name': firstName,
'Last_Name': lastName,
'Email': email
});
fetch(apiUrl, {
method: 'POST',
headers: apiHeaders,
body: apiBody
})
.then(response => response.json())
.then(data => {
console.log("Pass creation response:", data);
if (data.url && data.serialNumber && data.passTypeIdentifier) {
// Now send data to your webhook (if needed)
var webhookUrl = 'https://services.leadconnectorhq.com/hooks/XRM75B8qGWdhdYgBquSc/webhook-trigger/b99e99e1-36f9-42f1-a9d3-bbc40e76e81c';
var webhookBody = JSON.stringify({
'email': email,
'serialNumber': data.serialNumber,
'passTypeIdentifier': data.passTypeIdentifier,
'url': data.url,
'device': /iPhone|iPad|iPod|Android/i.test(navigator.userAgent) ? 'mobile' : 'desktop'
});
fetch(webhookUrl, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: webhookBody
})
.then(webhookResponse => {
if (!webhookResponse.ok) {
console.error('Webhook failed.');
alert('Failed to send webhook. Please try again.');
button.textContent = "Get my VIP pass";
button.disabled = false;
return;
}
console.log('Webhook sent successfully.');
button.textContent = "Pass Created";
var isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
if (isMobile) {
// Log out the original data.url
console.log("Original pass URL:", data.url);
// Conditionally replace '?t=' only if it exists
var pkpassUrl = data.url;
if (pkpassUrl.includes('?t=')) {
pkpassUrl = pkpassUrl.replace('?t=', '.pkpass?t=');
}
// Final check
console.log("Final PKPass URL:", pkpassUrl);
// Redirect on mobile
window.location.href = pkpassUrl;
} else {
alert('You can only download your pass on mobile. We have just emailed it to you.');
}
})
.catch(webhookError => {
console.error('Webhook error:', webhookError);
alert('An error occurred while sending the webhook. Please try again.');
button.textContent = "Get my VIP pass";
button.disabled = false;
});
} else {
alert('Failed to create the pass. Please try again.');
button.textContent = "Get my VIP pass";
button.disabled = false;
}
})
.catch(error => {
console.error('Error:', error);
alert('An error occurred. Please try again.');
button.textContent = "Get my VIP pass";
button.disabled = false;
});
});
});