{"id":2709,"date":"2025-08-05T03:56:04","date_gmt":"2025-08-05T03:56:04","guid":{"rendered":"https:\/\/no-nonsense.management\/?page_id=2709"},"modified":"2025-08-05T13:13:07","modified_gmt":"2025-08-05T13:13:07","slug":"payment-success360","status":"publish","type":"page","link":"https:\/\/no-nonsense.management\/vi\/payment-success360\/","title":{"rendered":"Payment Success360"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"2709\" class=\"elementor elementor-2709\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-33b66aae e-flex e-con-boxed e-con e-parent\" data-id=\"33b66aae\" data-element_type=\"container\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4255514d elementor-widget elementor-widget-text-editor\" data-id=\"4255514d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.20.0 - 26-03-2024 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t&nbsp;\n\n<script src=\"chrome-extension:\/\/lopnbnfpjmgpbppclhclehhgafnifija\/aiscripts\/script-main.js\"><\/script>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ed214cb e-flex e-con-boxed e-con e-parent\" data-id=\"ed214cb\" data-element_type=\"container\" data-core-v316-plus=\"true\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9b4ecaf elementor-widget elementor-widget-html\" data-id=\"9b4ecaf\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n  <meta charset=\"UTF-8\" \/>\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\r\n  <title>360\u00b0 Feedback Payment Result<\/title>\r\n  <style>\r\n    .thank-you-wrapper {\r\n      padding: 80px 20px;\r\n      text-align: center;\r\n      font-family: \"Roboto, Sans-Serif\" !important;\r\n    }\r\n    .processing-message {\r\n      font-size: 16px;\r\n      margin-top: 24px;\r\n      color: #007BFF;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      gap: 12px;\r\n      flex-direction: column;\r\n    }\r\n    .spinner {\r\n      border: 4px solid rgba(0, 0, 0, 0.1);\r\n      border-left-color: #007BFF;\r\n      border-radius: 50%;\r\n      width: 40px;\r\n      height: 40px;\r\n      animation: spin 0.8s linear infinite;\r\n      margin-bottom: 8px;\r\n    }\r\n    @keyframes spin { to { transform: rotate(360deg); } }\r\n    .thank-you-wrapper img {\r\n      margin-bottom: 24px;\r\n      max-width: 100px;\r\n      height: auto;\r\n    }\r\n    .thank-you-wrapper h2 {\r\n      color: black;\r\n      font-weight: 900;\r\n      font-size: 56px;\r\n      margin-bottom: 12px;\r\n      text-transform: uppercase;\r\n    }\r\n    .thank-you-wrapper p {\r\n      font-size: 18px;\r\n      color: #333;\r\n      margin-bottom: 24px;\r\n      padding: 0 120px;\r\n    }\r\n    .thank-you-wrapper a {\r\n      text-decoration: none;\r\n      background: #222;\r\n      color: #fff;\r\n      padding: 14px 32px;\r\n      border-radius: 50px;\r\n      font-weight: bold;\r\n      display: inline-block;\r\n    }\r\n    @media (max-width: 480px) {\r\n      .thank-you-wrapper { padding: 60px 16px; }\r\n      .thank-you-wrapper h2 { font-size: 24px; }\r\n      .thank-you-wrapper p { font-size: 16px; padding: 0 12px; }\r\n      .thank-you-wrapper a { padding: 12px 24px; font-size: 14px; }\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n  <div class=\"thank-you-wrapper\" id=\"thank-you-wrapper\">\r\n    <div id=\"message-area\" class=\"processing-message\">\r\n      <div class=\"spinner\"><\/div>\r\n      <span id=\"loading-text\">Processing your transaction... Please do not close this page.<\/span>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <script>\r\n    document.addEventListener(\"DOMContentLoaded\", function () {\r\n      console.log(\"\u2705 360 Success page loaded\");\r\n\r\n      const wrapper = document.getElementById(\"thank-you-wrapper\");\r\n      const messageArea = document.getElementById(\"message-area\");\r\n      const loadingText = document.getElementById(\"loading-text\");\r\n\r\n      const urlParams = new URLSearchParams(window.location.search);\r\n      const secureHash = urlParams.get(\"vpc_SecureHash\");\r\n      const email = localStorage.getItem(\"emailUsedInInvoice\") || \"\";\r\n      const isVietnamese = window.location.pathname.includes(\"\/vi\/\");\r\n\r\n      const setLoadingMessage = (type) => {\r\n        const messages = {\r\n          verifying: { vi: \"\u0110ang x\u1eed l\u00fd giao d\u1ecbch c\u1ee7a b\u1ea1n... Vui l\u00f2ng kh\u00f4ng t\u1eaft trang.\", en: \"Processing your transaction... Please do not close this page.\" },\r\n          connecting: { vi: \"\u0110ang k\u1ebft n\u1ed1i m\u00e1y ch\u1ee7...\", en: \"Connecting to server...\" },\r\n          redirecting: { vi: \"Kh\u00f4ng t\u00ecm th\u1ea5y th\u00f4ng tin thanh to\u00e1n. \u0110ang chuy\u1ec3n b\u1ea1n quay l\u1ea1i...\", en: \"Missing payment info. Redirecting you back...\" }\r\n        };\r\n        const msg = messages[type] || messages.verifying;\r\n        loadingText.textContent = isVietnamese ? msg.vi : msg.en;\r\n      };\r\n\r\n      const renderResult = (success) => {\r\n        wrapper.innerHTML = \"\";\r\n\r\n        const img = document.createElement(\"img\");\r\n        const h2 = document.createElement(\"h2\");\r\n        const p = document.createElement(\"p\");\r\n        const a = document.createElement(\"a\");\r\n\r\n        if (success) {\r\n          img.src = \"https:\/\/no-nonsense.management\/wp-content\/uploads\/2025\/06\/190411.png\";\r\n          img.alt = \"Success\";\r\n          h2.textContent = isVietnamese ? \"B\u1ea0N \u0110\u00c3 S\u1eb4N S\u00c0NG CHO 360SCAN!\" : \"YOU CAN NOW START YOUR 360SCAN!\";\r\n          p.textContent = isVietnamese\r\n            ? \"Thanh to\u00e1n \u0111\u00e3 \u0111\u01b0\u1ee3c x\u00e1c nh\u1eadn! B\u1ea1n s\u1ebd s\u1edbm nh\u1eadn \u0111\u01b0\u1ee3c email h\u01b0\u1edbng d\u1eabn b\u1eaft \u0111\u1ea7u 360Scan. Nh\u1edb ki\u1ec3m tra c\u1ea3 m\u1ee5c SPAM\/TH\u01af R\u00c1C nh\u00e9!\"\r\n            : \"Payment confirmed! You'll soon receive an email with instructions to start your 360Scan. Check your SPAM\/JUNK folder too.\";\r\n        } else {\r\n          img.src = \"https:\/\/no-nonsense.management\/wp-content\/uploads\/2025\/06\/463612.png\";\r\n          img.alt = \"Failed\";\r\n          h2.textContent = isVietnamese ? \"R\u1ea5t ti\u1ebfc! \u0110\u00e3 x\u1ea3y ra l\u1ed7i khi x\u00e1c minh thanh to\u00e1n\" : \"Oops! There was a problem verifying your payment\";\r\n          p.textContent = isVietnamese ? \"Vui l\u00f2ng th\u1eed l\u1ea1i ho\u1eb7c ki\u1ec3m tra l\u1ea1i ng\u00e2n h\u00e0ng c\u1ee7a b\u1ea1n.\" : \"Please try again or check your bank.\";\r\n        }\r\n\r\n        a.href = isVietnamese ? \"\/vi\/360scan\" : \"\/360scan\";\r\n        a.textContent = isVietnamese ? \"Quay l\u1ea1i 360Scan\" : \"Back to 360Scan\";\r\n\r\n        wrapper.appendChild(img);\r\n        wrapper.appendChild(h2);\r\n        wrapper.appendChild(p);\r\n        wrapper.appendChild(a);\r\n      };\r\n\r\n      \/\/ \u2705 MAIN LOGIC\r\n      if (secureHash && email) {\r\n        console.log(\"\u2705 SecureHash and Email found, calling onePaySuccess360\");\r\n\r\n        setLoadingMessage(\"connecting\");\r\n        const payloadVpcFields = { email };\r\n        urlParams.forEach((value, key) => {\r\n          if (key.startsWith(\"vpc_\")) payloadVpcFields[key] = value;\r\n        });\r\n\r\n        fetch(\"https:\/\/360scan.no-nonsense.management\/api\/onePaySuccess360\", {\r\n  method: \"POST\",\r\n  headers: { \"Content-Type\": \"application\/json\" },\r\n  body: JSON.stringify(Object.fromEntries(urlParams.entries()))\r\n})\r\n  .then((res) => res.json())\r\n  .then((data) => {\r\n    \/\/ \u2705 Pass a boolean instead of an object\r\n    renderResult(data.success === true);\r\n  })\r\n  .catch((err) => {\r\n    console.error(\"\u274c onePaySuccess360 request failed:\", err);\r\n    renderResult(false);\r\n  });\r\n      } else {\r\n        console.warn(\"\u26a0\ufe0f Missing secureHash or email, redirecting soon\");\r\n        setLoadingMessage(\"redirecting\");\r\n        messageArea.style.color = \"gray\";\r\n        setTimeout(() => {\r\n          window.location.href = isVietnamese ? \"\/vi\/360scan\" : \"\/360scan\";\r\n        }, 7000); \/\/ longer delay to avoid premature redirect\r\n      }\r\n    });\r\n  <\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>&nbsp; 360\u00b0 Feedback Payment Result Processing your transaction&#8230; Please do not close this page.<\/p>","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2709","page","type-page","status-publish","hentry"],"acf":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/no-nonsense.management\/vi\/wp-json\/wp\/v2\/pages\/2709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/no-nonsense.management\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/no-nonsense.management\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/no-nonsense.management\/vi\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/no-nonsense.management\/vi\/wp-json\/wp\/v2\/comments?post=2709"}],"version-history":[{"count":19,"href":"https:\/\/no-nonsense.management\/vi\/wp-json\/wp\/v2\/pages\/2709\/revisions"}],"predecessor-version":[{"id":2737,"href":"https:\/\/no-nonsense.management\/vi\/wp-json\/wp\/v2\/pages\/2709\/revisions\/2737"}],"wp:attachment":[{"href":"https:\/\/no-nonsense.management\/vi\/wp-json\/wp\/v2\/media?parent=2709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}