(function() { var take = function() { //DDP var errors=[] const baseUrl = "https://r2.aqur.com/track"; const chatform=localStorage.getItem("chatform") const urlParams = new URLSearchParams(window.location.search); let chatbottype = urlParams.get('chatbottype'); if (!chatbottype) { chatbottype = sessionStorage.getItem("chatbottype"); } else { sessionStorage.setItem("chatbottype", chatbottype); } if(chatform && chatbottype === "aqur"){ let vfmode = urlParams.get('vfmode') if(vfmode!="debug"){ window.parent.postMessage({ event: "hide3DS",}, "*") } let path = window.location.pathname switch (path) { case "/sc/checkouts/index" : //console.log("form_ready") window.parent.postMessage({ event: "form_ready" }, "*") break; case "/sc/checkouts/confirm": var confirmExe=()=>{ window.parent.postMessage({ event: "chatform_page_transition", message: "order start", totalProcess: 3, pageIndex: 2 }, "*") var confirmInterval = setInterval(function () { var element = document.querySelector("#frmsubmit"); console.log(element) if (element && window.getComputedStyle(element).display !== 'none') { console.log("btnFound") clearInterval(confirmInterval); element.click() //document.getElementById("frmCstm").submit(); } }, 1000); } var callLater = function(){ console.log("no callLater") confirmExe() }; setTimeout(callLater, 2000); //confirmExe() break; case "/sc/checkouts/complete": case "/sc/checkouts/zeus_three_d_secure_success": var completeExe=()=>{ window.parent.postMessage({ event: "chatform_page_transition", message: "order start", totalProcess: 3, pageIndex: 3 }, "*") var completeInterval = setInterval(function () { console.log("completeInterval") if (document.getElementById('3dscontainer')) { clearInterval(completeInterval); console.log("3dscontainerが存在します。全画面表示を実行します。"); window.parent.postMessage({ event: "show3DS", }, "*") } var order_id = document.querySelector('input[name="order_id"]') if (order_id) { window.parent.postMessage({ event: "hide3DS", }, "*") clearInterval(completeInterval); console.log("order_id found") track(baseUrl, chatform) var param={ event: "chatform_bindFormConversion", onetime_password:document.querySelector('input[name="onetime_password"]').value, order_id:order_id.value } window.parent.postMessage(param, '*'); }else{ console.log("order_id not found") } }, 10); } completeExe() break; case "/sc/error": window.parent.postMessage({ event: "chatform_page_transition", message: "order start", totalProcess: 2, pageIndex: -1 }, "*") var alertText = document.querySelector('.alert_danger').textContent; var param={ event: "chatform_bindFormErrorFound", text:alertText.trim(), } window.parent.postMessage(param, '*'); break; default: checkErrors("default") if(errors.length){ window.parent.postMessage( { event: "globalAlert", text:errors.join('
') }, '*'); window.parent.postMessage({ event: "chatform_page_transition", message: "order start", totalProcess: 2, pageIndex: -1 }, "*") } //console.log('do nothing'); } }else{ console.log("No Chatform") } window.aqur = {} window.aqur.debug = true; window.addEventListener("message", (event) => { //console.log("window message",event) if(event.data.event == "chatform_vframe_submit"){ console.log("chatform_vframe_submit",event.data.project) var project = event.data.project; var arr = project.data; var chatform = { pid:project.pid, sid:project.sid, uuId:project.uuId, id:arr[arr.length-1].id } localStorage.setItem('chatform', JSON.stringify(chatform)); bindFormSubmit() } if(event.data.event == "chatform_bindFormUpcell"){ //console.log("chatform_bindFormSubmit") document.getElementById("ups_button").click(); } if(event.data.event == "chatform_redirecURL"){ console.log("chatform_redirecURL") var url = event.data.url; window.location.href = url; } if(event.data.event == "setLastName"){ const lastname = document.getElementById("lastname"); if(!lastname){ return } lastname.value = event.data.value const domain = "@dummy.tamagokichi.com"; // 16桁のランダムな数字 + タイムスタンプの下6桁を生成 function generateDummyEmail() { const random16 = Array.from(crypto.getRandomValues(new Uint8Array(16))) .map(n => (n % 10)).join(''); const timestamp6 = Date.now().toString().slice(-6); return `${random16}_${timestamp6}${domain}`; } const dummyEmail = generateDummyEmail(); const email = document.getElementById("email"); email.value = dummyEmail; const email_check = document.getElementById("email_check"); if(email_check){ email_check.value = dummyEmail; } lastname.scrollIntoView(); } if(event.data.event == "setFirstName"){ const firstname = document.getElementById("firstname"); if(firstname){ firstname.value = event.data.value } } if(event.data.event == "setLastNameKana"){ const lastkana = document.getElementById("lastkana"); if(lastkana){ lastkana.value = event.data.value } } if(event.data.event == "setFirstNameKana"){ const firstkana = document.getElementById("firstkana"); if(firstkana){ firstkana.value = event.data.value } } if(event.data.event == "setFirstNameKana"){ const firstkana = document.getElementById("firstkana"); if(firstkana){ firstkana.value = event.data.value } } if(event.data.event == "setTel"){ const phone = document.getElementById("phone"); if(phone){ phone.value = event.data.value phone.scrollIntoView(); } } if(event.data.event == "setPostalCode"){ const zip = document.getElementById("zip"); if(zip){ zip.value = event.data.value.replaceAll(/-/g, ''); zip.scrollIntoView(); } } if(event.data.event == "setPref"){ const pref = document.getElementById("pref"); if(pref){ const options = document.getElementById("pref").options; for (let i = 0; i < options.length; i++) { if (options[i].text === event.data.value) { pref.selectedIndex = i; break; } } } } if(event.data.event == "setCity"){ const addr01 = document.getElementById("addr01"); if(addr01){ addr01.value = event.data.value } } if(event.data.event == "setStreet"){ const addr01_2 = document.getElementById("addr01_2"); if(addr01_2){ addr01_2.value = event.data.value } } if(event.data.event == "setBuilding"){ const addr02 = document.getElementById("addr02"); if(addr02){ addr02.value = event.data.value } } if(event.data.event == "setPaymentMethod"){ var selectedPayment = event.data.value //console.log("selectedPayment",selectedPayment) for (const label of document.querySelectorAll('label')) { if (label.textContent.includes(selectedPayment)) { var radioButtonId = label.getAttribute('for'); document.getElementById(radioButtonId).checked = true; document.getElementById(radioButtonId).click(); //console.log(radioButtonId); break; // 最初にヒットしたらループ終了 } } const payment = document.getElementById("payment"); if(payment){ payment.scrollIntoView(); } } if(event.data.event == "setToken"){ //console.log(event.data.value) if(event.data.value && document.querySelector("#pay_token_customer")){ document.querySelector("#pay_token_customer").value=event.data.value; document.querySelector("#pay_token_order").value=event.data.value; document.querySelector("#pay_token_error_code").value="no_error"; document.querySelector("#cc_no").classList=""; document.querySelector("#cc_expire_y").classList=""; document.querySelector("#cc_expire_m").classList=""; document.querySelector("#cc_owner").classList=""; if(document.querySelector("#cc_sc")){ document.querySelector("#cc_sc").classList=""; } token_payments =[] console.log("setToken") } } if(event.data.event){ checkErrors("message") } }) function checkErrors(from){ console.log("checkerror ",from) errors=[] const alert_danger = document.querySelector('.alert_danger'); if (alert_danger) { errors.push(alert_danger.textContent) alert_danger.remove() } const formErrorContent = document.querySelector('.formErrorContent'); if (formErrorContent) { errors.push(formErrorContent.textContent) formErrorContent.remove() } } function clearChatformStorage(){ //console.log("clearChatformStorage") localStorage.removeItem("chatform"); } function track(baseUrl,trackingData){ fetch(baseUrl, { method:"POST", headers:{ "Content-Type" : "application/json"}, body:trackingData }) .then(response => response.json()) .then(data => { console.log("Conversion Tracked") clearChatformStorage() }) } function bindFormSubmit(){ console.log("bindFormSubmit") document.getElementById("agree").checked = true; checkErrors("bindFormSubmit") if(errors.length){ window.parent.postMessage( { event: "globalAlert", text:errors.join('
') }, '*'); window.parent.postMessage({ event: "chatform_page_transition", message: "order start", totalProcess: 2, pageIndex: -1 }, "*") errors=[] }else{ var submitInterval = setInterval(function () { var submitButton = document.querySelector('.btn_cart'); if (submitButton) { clearInterval(submitInterval); submitButton.click(); } var submitButton2 = document.querySelector("#btn_next"); if (submitButton2) { clearInterval(submitInterval); submitButton2.click(); } }, 100); } } } setTimeout(take, 0); }())