{"id":281,"date":"2025-10-24T17:29:39","date_gmt":"2025-10-24T09:29:39","guid":{"rendered":"http:\/\/xingshengcardindustry.com\/?page_id=281"},"modified":"2025-11-06T19:59:28","modified_gmt":"2025-11-06T11:59:28","slug":"payment-status-check","status":"publish","type":"page","link":"https:\/\/staging.xingshengcardindustry.com\/payment-status-check\/","title":{"rendered":"payment-status-check"},"content":{"rendered":"\t<script>\n\twindow.nggcAjax = {\n\t\turl: \"https:\/\/staging.xingshengcardindustry.com\/wp-admin\/admin-ajax.php\",\n\t\tnonce: \"71126a76d2\"\n\t};\n\t<\/script>\n\t\n\n\n\n<!-- \u653e\u5728\u9875\u9762\u6700\u4e0a\u65b9\u6dfb\u52a0\u77ed\u7801 [nggc_status_boot]\uff08\u91cd\u8981\uff09 -->\n\n<div id=\"nggc-status-app\" style=\"max-width:880px;margin:16px auto;padding:8px;\"><\/div>\n\n<script>\n(function(){\n  \/\/ 1) \u52a8\u6001 AJAX URL \u548c NONCE\uff1a\u4f18\u5148\u8bfb\u77ed\u7801\u6ce8\u5165\u7684 window.nggcAjax\n  var API_URL = (window.nggcAjax && window.nggcAjax.url) || (location.origin + \"\/wp-admin\/admin-ajax.php\");\n  var NONCE   = (window.nggcAjax && window.nggcAjax.nonce) || \"\";\n\n  function fetchStatus(txid){\n    txid = (txid||\"\").trim().toUpperCase();\n    if(!txid) return Promise.resolve({success:false, data:{message:\"Please input a TXID.\"}});\n\n    var fd = new FormData();\n    fd.append(\"action\",\"check_payment_status\");\n    fd.append(\"transaction_id\", txid);\n    if (NONCE) fd.append(\"nonce\", NONCE);\n\n    return fetch(API_URL, {\n      method:\"POST\",\n      body:fd,\n      credentials:\"same-origin\"\n    })\n    .then(function(r){ return r.text(); })\n    .then(function(t){\n      try { return JSON.parse(t); }\n      catch(e){\n        \/\/ WordPress \u51fa\u9519\u65f6\u53ef\u80fd\u8fd4\u56de 0 \/ HTML\uff0c\u9700\u8981\u515c\u5e95\n        return { success:false, data:{ message:\"Invalid JSON: \" + (t || \"empty\") } };\n      }\n    })\n    .catch(function(err){\n      return {success:false, data:{message:\"Network error\"}};\n    });\n  }\n\n  function h(tag, attrs, children){\n    var el = document.createElement(tag);\n    if(attrs){\n      Object.keys(attrs).forEach(function(k){\n        if(k===\"class\") el.className = attrs[k];\n        else if(k===\"html\") el.innerHTML = attrs[k];\n        else el.setAttribute(k, attrs[k]);\n      });\n    }\n    (children||[]).forEach(function(c){\n      el.appendChild(typeof c===\"string\" ? document.createTextNode(c) : c);\n    });\n    return el;\n  }\n\n  \/\/ \u7edf\u4e00\u72b6\u6001\u522b\u540d\n  function normalizeStatus(s){\n    s = (s || \"\").toLowerCase();\n    if (['paid','paid_out','completed','complete','success','done'].includes(s)) return 'completed';\n    if (['processing','pending','review','verifying','waiting','in_progress'].includes(s)) return 'processing';\n    if (['failed','rejected','declined','cancelled','canceled','error'].includes(s)) return 'failed';\n    return s || 'processing';\n  }\n\n  function badge(status){\n    status = normalizeStatus(status);\n    var map = {\n      completed: {bg:\"#0f766e\", fg:\"#ecfdf5\", text:\"Completed \u2705\"},\n      processing:{bg:\"#92400e\", fg:\"#fffbeb\", text:\"Processing \u23f3\"},\n      failed:    {bg:\"#991b1b\", fg:\"#fef2f2\", text:\"Failed \u274c\"}\n    };\n    var m = map[status] || {bg:\"#334155\", fg:\"#e2e8f0\", text:(status||\"Unknown\")};\n    var s = h(\"span\",{class:\"st-badge\"});\n    s.style.cssText=\"display:inline-block;padding:6px 10px;border-radius:999px;font-weight:700;font-size:13px;color:\"+m.fg+\";background:\"+m.bg+\";\";\n    s.textContent = m.text;\n    return s;\n  }\n\n  function render(container){\n    container.innerHTML = \"\";\n\n    var card = h(\"div\",{class:\"nggc-card\"});\n    card.style.cssText = \"background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:18px 16px;box-shadow:0 8px 30px rgba(0,0,0,0.06);\";\n\n    var head = h(\"div\",{class:\"head\", html:'<div style=\"display:flex;gap:10px;align-items:center;justify-content:center;font-weight:800;font-size:22px;color:#065f46;\"><span style=\"font-size:22px;\">\ud83d\udd0e<\/span>Payment Status Check<\/div><div style=\"text-align:center;color:#475569;margin-top:6px;\">Enter your Transaction ID to view payment status and proof<\/div>'});\n    card.appendChild(head);\n\n    var hr = h(\"div\"); hr.style.cssText=\"height:1px;background:#e2e8f0;margin:14px 0;opacity:.7;\"; card.appendChild(hr);\n\n    var form = h(\"form\",{class:\"row\"});\n    form.style.cssText=\"display:flex;gap:10px;flex-wrap:wrap;margin:8px 0;\";\n\n    var inp = h(\"input\",{type:\"text\",placeholder:\"Enter Transaction ID (e.g., TX20251025045222448)\",value:\"\",id:\"nggc-txid\"});\n    inp.style.cssText=\"flex:1;min-width:240px;padding:12px 14px;border:1.5px solid #cbd5e1;border-radius:10px;font-size:15px;\";\n    \/\/ \u7edf\u4e00\u5927\u5199\n    inp.addEventListener(\"input\", function(){ this.value = this.value.toUpperCase(); });\n\n    var btn = h(\"button\",{type:\"submit\"},[\"Check Status\"]);\n    btn.style.cssText=\"padding:12px 18px;border-radius:10px;background:#0f766e;color:#fff;border:1px solid #0f766e;cursor:pointer;font-weight:800;white-space:nowrap;\";\n\n    form.appendChild(inp); form.appendChild(btn);\n\n    var result = h(\"div\",{class:\"result\"});\n    result.style.cssText=\"margin-top:12px;border:2px dashed #e2e8f0;border-radius:12px;min-height:140px;display:flex;align-items:center;justify-content:center;color:#64748b;text-align:center;padding:18px;\";\n\n    var helper = h(\"div\");\n    helper.style.cssText=\"margin-top:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:14px;\";\n    helper.innerHTML = '<div style=\"font-weight:800;color:#065f46;margin-bottom:8px;\">How to find your Transaction ID?<\/div><ul style=\"margin:0;padding-left:18px;color:#334155;line-height:1.6;\"><li>Check your email confirmation after form submission<\/li><li>Contact us via WhatsApp or Telegram to get it<\/li><li>Format: TX + numbers (e.g., TX20251025045222448)<\/li><\/ul>';\n\n    card.appendChild(form); card.appendChild(result); card.appendChild(helper);\n    container.appendChild(card);\n\n    function showLoading(){ \n      result.style.borderColor = \"#e2e8f0\"; result.style.background = \"#fafafa\"; result.style.color=\"#64748b\";\n      result.innerHTML = '<div style=\"padding:12px;\">Checking...<\/div>'; \n    }\n\n    function showError(msg){\n      result.style.borderColor = \"#fecaca\"; result.style.background = \"#fef2f2\"; result.style.color=\"#991b1b\";\n      result.innerHTML = '<div style=\"padding:8px 6px;max-width:680px;margin:0 auto;text-align:left;\"><div style=\"font-weight:800;margin-bottom:6px;\">\u274c Error<\/div><div>'+ (msg||\"Transaction not found\") +'<\/div><\/div>';\n    }\n\n    function showData(d){\n      result.style.borderColor = \"#c7f0e5\"; result.style.background = \"#ecfdf5\"; result.style.color=\"#064e3b\";\n\n      var wrap = h(\"div\"); wrap.style.cssText=\"width:100%;max-width:820px;margin:0 auto;text-align:left;\";\n\n      var top = h(\"div\"); top.style.cssText=\"display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap;\";\n\n      var left = h(\"div\",{html:\"<b>Status:<\/b> \"}); left.style.cssText=\"display:flex;align-items:center;gap:8px;\";\n      left.appendChild(badge(d.status||\"\"));\n\n      var txidText = (d.transaction_id||d.txid||\"\");\n      var tx = h(\"div\",{html:\"<b>TXID:<\/b> \"+ txidText}); tx.style.cssText=\"font-family:ui-monospace, SFMono-Regular, Menlo, monospace;\";\n\n      var copyBtn = h(\"button\",{type:\"button\"},[\"Copy TXID\"]);\n      copyBtn.style.cssText=\"padding:8px 10px;border-radius:10px;border:1px solid #0f766e;background:#fff;color:#0f766e;font-weight:700;cursor:pointer;\";\n      copyBtn.onclick=function(){\n        function fallbackCopy(text){ \n          var ta = document.createElement('textarea');\n          ta.value = text; document.body.appendChild(ta);\n          ta.select(); try{ document.execCommand('copy'); }catch(e){}\n          document.body.removeChild(ta);\n        }\n        if (navigator.clipboard && window.isSecureContext) {\n          navigator.clipboard.writeText(txidText).then(function(){\n            copyBtn.textContent=\"Copied\"; setTimeout(function(){copyBtn.textContent=\"Copy TXID\";},1200);\n          }, function(){ fallbackCopy(txidText); copyBtn.textContent=\"Copied\"; setTimeout(function(){copyBtn.textContent=\"Copy TXID\";},1200); });\n        } else {\n          fallbackCopy(txidText);\n          copyBtn.textContent=\"Copied\"; setTimeout(function(){copyBtn.textContent=\"Copy TXID\";},1200);\n        }\n      };\n\n      top.appendChild(left); top.appendChild(tx); top.appendChild(copyBtn);\n\n      var grid = h(\"div\"); grid.style.cssText=\"display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;\";\n      function row(k,v){ var r=h(\"div\"); r.style.cssText=\"background:#fff;border:1px solid #d1fae5;border-left:4px solid #0f766e;border-radius:8px;padding:10px;\"; r.innerHTML=\"<div style='color:#065f46;font-weight:800;'>\"+k+\"<\/div><div>\"+(v||\"-\")+\"<\/div>\"; return r;}\n\n      grid.appendChild(row(\"Customer Name\", d.customer_name||\"-\"));\n      grid.appendChild(row(\"Gift Card Brand\", d.gift_card_brand||\"-\"));\n      grid.appendChild(row(\"Card Amount\", (d.card_amount ? (\"$\"+d.card_amount) : \"-\")));\n      grid.appendChild(row(\"Payout Amount\", (d.payout_amount ? (\"\u20a6\"+d.payout_amount) : \"-\")));\n      grid.appendChild(row(\"Bank Name\", d.bank_name||\"-\"));\n      grid.appendChild(row(\"Account Number\", d.account_number||\"-\"));\n      grid.appendChild(row(\"Payment Date\", d.payment_date||\"-\"));\n\n      var proof = h(\"div\"); proof.style.cssText=\"margin-top:10px;text-align:center;\";\n      if (d.proof_image){\n        proof.innerHTML = '<div style=\"font-weight:800;color:#065f46;margin-bottom:6px;\">Payment Proof<\/div>';\n        var img = h(\"img\"); img.src = d.proof_image; img.alt=\"Payment Proof\";\n        img.style.cssText=\"max-width:100%;border-radius:10px;box-shadow:0 6px 18px rgba(0,0,0,0.18);border:3px solid #10b981;cursor:pointer;\";\n        img.onclick=function(){ img.style.transform = img.style.transform ? \"\" : \"scale(1.02)\"; img.style.transition=\"transform .2s\"; };\n        proof.appendChild(img);\n      }\n\n      var note = h(\"div\"); \n      note.style.cssText=\"margin-top:10px;padding:10px;border-radius:8px;background:#d4edda;color:#0c4a2e;\";\n      note.textContent = \"Tip: Funds usually arrive within 2\u20134 hours after completion. If not received, please contact support.\";\n\n      wrap.appendChild(top); wrap.appendChild(grid); wrap.appendChild(proof); wrap.appendChild(note);\n      result.innerHTML=\"\"; result.appendChild(wrap);\n    }\n\n    function run(tx){\n      tx = (tx||\"\").trim().toUpperCase();\n      if(!tx) return showError(\"Please input a TXID.\");\n      showLoading();\n      fetchStatus(tx).then(function(res){\n        if (res && res.success && res.data) {\n          showData(res.data);\n        } else {\n          var msg = \"Transaction not found\";\n          if (res) {\n            if (typeof res.data === \"string\") msg = res.data;\n            else if (res.data && res.data.message) msg = res.data.message;\n          }\n          showError(msg);\n        }\n      }).catch(function(){ showError(\"Network error\"); });\n    }\n\n    \/\/ URL \u53d6\u53c2\uff08\u652f\u6301 ?txid= \u548c ?tx=\uff09\n    var params = new URLSearchParams(location.search);\n    var initTx = params.get(\"txid\") || params.get(\"tx\") || \"\";\n    if (initTx){ inp.value = initTx.toUpperCase(); run(initTx); }\n\n    form.addEventListener(\"submit\", function(e){\n      e.preventDefault(); run(inp.value);\n    });\n  }\n\n  function mount(){\n    var root = document.getElementById(\"nggc-status-app\");\n    if(!root) return;\n    render(root);\n  }\n\n  if(document.readyState===\"loading\") document.addEventListener(\"DOMContentLoaded\", mount);\n  else mount();\n})();\n<\/script>\n\n<style>\n@media (prefers-color-scheme: dark){\n  #nggc-status-app .nggc-card{\n    background:rgba(255,255,255,0.06)!important;\n    border-color:rgba(255,255,255,0.12)!important;\n  }\n}\n<\/style>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-281","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/staging.xingshengcardindustry.com\/wp-json\/wp\/v2\/pages\/281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging.xingshengcardindustry.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/staging.xingshengcardindustry.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/staging.xingshengcardindustry.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.xingshengcardindustry.com\/wp-json\/wp\/v2\/comments?post=281"}],"version-history":[{"count":22,"href":"https:\/\/staging.xingshengcardindustry.com\/wp-json\/wp\/v2\/pages\/281\/revisions"}],"predecessor-version":[{"id":469,"href":"https:\/\/staging.xingshengcardindustry.com\/wp-json\/wp\/v2\/pages\/281\/revisions\/469"}],"wp:attachment":[{"href":"https:\/\/staging.xingshengcardindustry.com\/wp-json\/wp\/v2\/media?parent=281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}