window.addEventListener('message', function(event) {
// Only accept sandbox and production origins
if (event.origin !== 'https://esqa.moneris.com' &&
event.origin !== 'https://www3.moneris.com') {
return;
}// Parse data: if it's a string, JSON.parse it; otherwise assume it's already an object
var d = (typeof event.data === 'string')
? JSON.parse(event.data)
: event.data;console.log('Moneris response object:', d);if (d.responseCode === '027') {
// Put token into Hidden Field #29
var hidden = document.querySelector('input[name="input_22_29"]');
if (hidden) hidden.value = d.dataKey;
// Show & click GF submit
var sb = document.getElementById('gform_submit_button_22');
sb.style.display = 'inline-block';
sb.click();
} else {
alert('Vault error: ' + (d.errorMessage || 'Unknown error'));
// Unhide submit so users aren’t stuck
var sb = document.getElementById('gform_submit_button_22');
sb.style.display = 'inline-block';
}
});