onchainpay.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564
  1. function safeDecrypt(encryptedData) {
  2. try {
  3. // 检查数据是否为空或无效
  4. if (!encryptedData || encryptedData === 'undefined' || encryptedData === 'null') {
  5. console.warn('Empty or invalid encrypted data provided');
  6. return '';
  7. }
  8. // 尝试解密
  9. const decrypted = CryptToJS.Decrypt(encryptedData);
  10. return decrypted;
  11. } catch (error) {
  12. console.error('Decryption failed:', error.message);
  13. // 返回空字符串而不是抛出错误
  14. return '';
  15. }
  16. }
  17. function setLang(that) {
  18. var jsSrc = (that.language || navigator.language || navigator.browserLanguage);
  19. // jsSrc = 'ko-IN'
  20. if (jsSrc.indexOf('zh-C') >= 0) {
  21. that.language = 'cn'
  22. that.lang = content['cn'];
  23. } else if (jsSrc.indexOf('es') >= 0) {
  24. that.language = 'es'
  25. that.lang = content['es'];
  26. } else if (jsSrc.indexOf('zh-') >= 0) {
  27. that.language = 'zhHant'
  28. that.lang = content['zhHant'];
  29. } else if (jsSrc.indexOf('ar') >= 0) {
  30. that.language = 'ar'
  31. that.lang = content['ar'];
  32. } else if (jsSrc.indexOf('de') >= 0) {
  33. that.language = 'de'
  34. that.lang = content['de'];
  35. } else if (jsSrc.indexOf('id') >= 0) {
  36. that.language = 'id'
  37. that.lang = content['id'];
  38. } else if (jsSrc.indexOf('ko') >= 0 && jsSrc.indexOf('kok') == -1) {
  39. that.language = 'ko'
  40. that.lang = content['ko'];
  41. } else if (jsSrc.indexOf('ms') >= 0) {
  42. that.language = 'ms'
  43. that.lang = content['ms'];
  44. } else if (jsSrc.indexOf('th') >= 0) {
  45. that.language = 'th'
  46. that.lang = content['th'];
  47. } else if (jsSrc.indexOf('vi') >= 0) {
  48. that.language = 'vn'
  49. that.lang = content['vn'];
  50. } else if (jsSrc.indexOf('fa') >= 0) {
  51. that.language = 'fa'
  52. that.lang = content['fa'];
  53. } else if (jsSrc.indexOf('pt') >= 0) {
  54. that.language = 'pt'
  55. that.lang = content['pt'];
  56. } else if (jsSrc.indexOf('tr') >= 0) {
  57. that.language = 'tr'
  58. that.lang = content['tr'];
  59. } else if (jsSrc.indexOf('ug') >= 0) {
  60. that.language = 'ug'
  61. that.lang = content['ug'];
  62. } else {
  63. that.language = 'en'
  64. that.lang = content['en'];
  65. }
  66. sessionStorage.setItem("lang", that.language);
  67. }
  68. function parseParams(str) {
  69. const params = new URLSearchParams(str);
  70. return {
  71. addresses: params.get('addresses'),
  72. successUrl: params.get('successUrl'),
  73. amount: params.get('amount'),
  74. blockchainEnName: params.get('blockchainEnName'),
  75. blockchainName: params.get('blockchainName'),
  76. currency: params.get('currency'),
  77. language: params.get('language'),
  78. };
  79. }
  80. var content = {
  81. cn: {
  82. item1: "如果你没有任何",
  83. item2: ", 可在",
  84. item3: "得到",
  85. item4: "送出",
  86. item5: " (ㄧ次付款)到提供的地址!",
  87. item6: "如果你送出任何其他金额,系统无论如何都会接受!",
  88. item7: "地址已被复制",
  89. item8: "复制",
  90. item9: "已支付",
  91. item10: "取消",
  92. item11: "总计",
  93. item12: "支付方式:",
  94. item13: "扫码或者点击复制按钮,复制地址进行付款!",
  95. item14: "请务必核对收款地址与金额,转账不可撤销",
  96. item15: "转账完成后,通常需要1–5分钟 网络确认",
  97. item16: "在网络拥堵时,确认时间可能延长,请耐心等待",
  98. item17: "若长时间未到账,请保存 交易哈希(TxHash) 并联系客服",
  99. item18: "交易确认后,系统将自动更新订单状态",
  100. item19: "温馨提示:",
  101. },
  102. zhHant: {
  103. item1: "如果你沒有任何",
  104. item2: ", 可在",
  105. item3: "得到",
  106. item4: "送出",
  107. item5: " (ㄧ次付款)到下列提供的地址!",
  108. item6: "如果你送出任何其他金額,系統無論如何都會接受!",
  109. item7: "地址已複製",
  110. item8: "複製",
  111. item9: "已支付",
  112. item10: "取消",
  113. item11: "總計",
  114. item12: "支付方式:",
  115. item13: "掃碼或者點擊複製按鈕,複製地址進行付款!",
  116. item14: "請務必核對收款地址與金額,轉帳不可撤銷",
  117. item15: "轉帳完成後,通常需要1–5分鐘 網絡確認",
  118. item16: "在網絡擁堵時,確認時間可能延長,請耐心等待",
  119. item17: "若長時間未到帳,請保存 交易哈希(TxHash) 並聯繫客服",
  120. item18: "交易確認後,系統將自動更新訂單狀態",
  121. item19: "溫馨提示:",
  122. },
  123. en: {
  124. item1: "If you don't have any",
  125. item2: ", at",
  126. item3: "you can get",
  127. item4: "sent out",
  128. item5: "(One payment) to the provided address!",
  129. item6: "If you send any other amount, the system will accept it anyway!",
  130. item7: "Address copied",
  131. item8: "Copy",
  132. item9: "Paid",
  133. item10: "Cancel",
  134. item11: "Total",
  135. item12: "Pay with:",
  136. item13: "Scan the code or click the copy button to copy the address for payment!",
  137. item14: "Please carefully verify the recipient address and amount. Blockchain transactions are irreversible.",
  138. item15: "After the transfer is completed, network confirmation usually takes 1–5 minutes.",
  139. item16: "During periods of network congestion, confirmation times may be longer. Please wait patiently.",
  140. item17: "If the funds are not credited for a long time, please save the transaction hash (TxHash) and contact customer support.",
  141. item18: "Once the transaction is confirmed, the system will automatically update the order status.",
  142. item19: "Friendly Reminder:",
  143. },
  144. vn: {
  145. item1: "Nếu bạn không có bất kỳ",
  146. item2: ", bạn có thể nhận được",
  147. item3: "Nhận",
  148. item4: "Gửi",
  149. item5: " (Thanh toán một lần) đến địa chỉ được cung cấp!",
  150. item6: "Nếu bạn gửi bất kỳ số tiền khác, hệ thống sẽ chấp nhận mà không cần xác nhận!",
  151. item7: "Địa chỉ đã được sao chép",
  152. item8: "Sao chép",
  153. item9: "Đã thanh toán",
  154. item10: "Hủy",
  155. item11: "Tổng cộng",
  156. item12: "Phương thức thanh toán:",
  157. item13: "Quét mã hoặc nhấp nút sao chép để sao chép địa chỉ thanh toán!",
  158. item14: "Vui lòng kiểm tra kỹ địa chỉ nhận tiền và số tiền. Giao dịch blockchain không thể hoàn tác.",
  159. item15: "Sau khi chuyển tiền hoàn tất, xác nhận mạng thường mất 1-5 phút.",
  160. item16: "Khi mạng bị tắc, thời gian xác nhận có thể kéo dài. Vui lòng chờ đợi.",
  161. item17: "Nếu tiền không đến trong thời gian dài, vui lòng lưu hash giao dịch (TxHash) và liên hệ hỗ trợ.",
  162. item18: "Sau khi giao dịch được xác nhận, hệ thống sẽ tự động cập nhật trạng thái đơn hàng.",
  163. item19: "Lưu ý:",
  164. },
  165. de: {
  166. item1: "Wenn du keine hast",
  167. item2: ", kannst du",
  168. item3: "erhalten",
  169. item4: "senden",
  170. item5: " (Einmalzahlung) an die angegebene Adresse!",
  171. item6: "Wenn Sie einen anderen Betrag senden, akzeptiert das System dies ohnehin!",
  172. item7: "Adresse kopiert",
  173. item8: "Kopieren",
  174. item9: "Bezahlt",
  175. item10: "Abbrechen",
  176. item11: "Gesamt",
  177. item12: "Zahlungsmethode:",
  178. item13: "Scannen Sie den Code oder klicken Sie auf die Kopier-Schaltfläche, um die Adresse für die Zahlung zu kopieren!",
  179. item14: "Bitte überprüfen Sie sorgfältig die Empfängeradresse und den Betrag. Blockchain-Transaktionen sind unwiderruflich.",
  180. item15: "Nach Abschluss der Überweisung dauert die Netzwerkbestätigung normalerweise 1-5 Minuten.",
  181. item16: "Bei Netzwerküberlastung kann die Bestätigungszeit länger dauern. Bitte warten Sie geduldig.",
  182. item17: "Wenn die Gelder lange nicht gutgeschrieben werden, speichern Sie bitte den Transaktionshash (TxHash) und kontaktieren Sie den Support.",
  183. item18: "Nach Bestätigung der Transaktion aktualisiert das System automatisch den Auftragsstatus.",
  184. item19: "Freundliche Erinnerung:",
  185. },
  186. es: {
  187. item1: "Si no tienes ninguno",
  188. item2: ", puedes obtener",
  189. item3: "Recibir",
  190. item4: "Enviar",
  191. item5: " (Pago único) a la dirección proporcionada!",
  192. item6: "Si envías cualquier otra cantidad, el sistema la aceptará de todos modos!",
  193. item7: "Dirección copiada",
  194. item8: "Copiar",
  195. item9: "Pagado",
  196. item10: "Cancelar",
  197. item11: "Total",
  198. item12: "Método de pago:",
  199. item13: "Escanee el código o haga clic en el botón de copiar para copiar la dirección de pago!",
  200. item14: "Verifique cuidadosamente la dirección del destinatario y el monto. Las transacciones blockchain son irreversibles.",
  201. item15: "Después de completar la transferencia, la confirmación de red suele tardar 1-5 minutos.",
  202. item16: "Durante períodos de congestión de red, los tiempos de confirmación pueden ser más largos. Espere pacientemente.",
  203. item17: "Si los fondos no se acreditan durante mucho tiempo, guarde el hash de transacción (TxHash) y contacte con el soporte.",
  204. item18: "Una vez confirmada la transacción, el sistema actualizará automáticamente el estado del pedido.",
  205. item19: "Recordatorio:",
  206. },
  207. id: {
  208. item1: "Jika Anda tidak memiliki",
  209. item2: ", Anda dapat mendapatkan",
  210. item3: "Dapatkan",
  211. item4: "Kirim",
  212. item5: " (Pembayaran satu kali) ke alamat yang diberikan!",
  213. item6: "Jika Anda mengirim jumlah lain, sistem akan menerima bagaimanapun!",
  214. item7: "Alamat telah disalin",
  215. item8: "Salin",
  216. item9: "Dibayar",
  217. item10: "Batal",
  218. item11: "Total",
  219. item12: "Metode pembayaran:",
  220. item13: "Pindai kode atau klik tombol salin untuk menyalin alamat pembayaran!",
  221. item14: "Harap periksa dengan cermat alamat penerima dan jumlahnya. Transaksi blockchain tidak dapat dibatalkan.",
  222. item15: "Setelah transfer selesai, konfirmasi jaringan biasanya membutuhkan 1-5 menit.",
  223. item16: "Selama kemacetan jaringan, waktu konfirmasi mungkin lebih lama. Harap tunggu dengan sabar.",
  224. item17: "Jika dana tidak masuk dalam waktu lama, harap simpan hash transaksi (TxHash) dan hubungi dukungan pelanggan.",
  225. item18: "Setelah transaksi dikonfirmasi, sistem akan secara otomatis memperbarui status pesanan.",
  226. item19: "Pengingat:",
  227. },
  228. ms: {
  229. item1: "Jika anda tidak mempunyai",
  230. item2: ", anda boleh mendapat",
  231. item3: "Dapat",
  232. item4: "Hantar",
  233. item5: " (Pembayaran satu kali) ke alamat yang diberikan!",
  234. item6: "Jika anda menghantar jumlah lain, sistem akan menerimanya walau bagaimanapun!",
  235. item7: "Alamat telah disalin",
  236. item8: "Salin",
  237. item9: "Dibayar",
  238. item10: "Batal",
  239. item11: "Jumlah",
  240. item12: "Kaedah pembayaran:",
  241. item13: "Imbas kod atau klik butang salin untuk menyalin alamat pembayaran!",
  242. item14: "Sila periksa dengan teliti alamat penerima dan jumlah. Transaksi blockchain tidak boleh dibatalkan.",
  243. item15: "Selepas pemindahan selesai, pengesahan rangkaian biasanya mengambil masa 1-5 minit.",
  244. item16: "Semasa kesesakan rangkaian, masa pengesahan mungkin lebih lama. Sila tunggu dengan sabar.",
  245. item17: "Jika dana tidak masuk untuk masa yang lama, sila simpan hash transaksi (TxHash) dan hubungi sokongan pelanggan.",
  246. item18: "Setelah transaksi disahkan, sistem akan mengemas kini status pesanan secara automatik.",
  247. item19: "Ingatan:",
  248. },
  249. th: {
  250. item1: "ถ้าคุณไม่มี",
  251. item2: ", คุณสามารถได้รับ",
  252. item3: "ได้รับ",
  253. item4: "ส่ง",
  254. item5: " (การชำระเงินครั้งเดียว) ที่ที่ระบุ!",
  255. item6: "หากคุณส่งจำนวนเงินอื่นๆ ระบบก็จะยอมรับ!",
  256. item7: "ที่อยู่ถูกคัดลอกแล้ว",
  257. item8: "คัดลอก",
  258. item9: "จ่ายแล้ว",
  259. item10: "ยกเลิก",
  260. item11: "ทั้งหมด",
  261. item12: "วิธีการชำระเงิน:",
  262. item13: "สแกนรหัสหรือคลิกปุ่มคัดลอกเพื่อคัดลอกที่อยู่สำหรับการชำระเงิน!",
  263. item14: "โปรดตรวจสอบที่อยู่ผู้รับและจำนวนเงินด้วยความระมัดระวัง. การทำธุรกรรมบล็อกเชนไม่สามารถยกเลิกได้.",
  264. item15: "หลังจากการโอนเงินเสร็จสิ้น การยืนยันเครือข่ายโดยปกติจะใช้เวลา 1-5 นาที.",
  265. item16: "ระหว่างช่วงความหนาแน่นของเครือข่าย เวลายืนยันอาจจะยาวขึ้น. โปรดรออย่างอดทน.",
  266. item17: "หากเงินไม่เข้าในเวลานาน โปรดเก็บแฮชการทำธุรกรรม (TxHash) และติดต่อฝ่ายสนับสนุน.",
  267. item18: "หลังจากการยืนยันการทำธุรกรรม ระบบจะอัปเดตสถานะคำสั่งซื้ออัตโนมัติ.",
  268. item19: "คำเตือน:",
  269. },
  270. ar: {
  271. item1: "إذا لم يكن لديك أي",
  272. item2: "، يمكنك الحصول على",
  273. item3: "احصل على",
  274. item4: "إرسال",
  275. item5: " (الدفع مرة واحدة) إلى العنوان المقدم!",
  276. item6: "إذا أرسلت أي مبلغ آخر، سيقبل النظام ذلك على أي حال!",
  277. item7: "تم نسخ العنوان",
  278. item8: "نسخ",
  279. item9: "تم الدفع",
  280. item10: "إلغاء",
  281. item11: "المجموع",
  282. item12: "طريقة الدفع:",
  283. item13: "اسحب الرمز أو اضغط على زر النسخ لنسخ العنوان للدفع!",
  284. item14: "يرجى التحقق بعناية من عنوان المستلم والمبلغ. معاملات البلوكشين لا يمكن عكسها.",
  285. item15: "بعد إكمال التحويل، يستغرق التأكيد على الشبكة عادةً 1-5 دقائق.",
  286. item16: "أثناء فترات ازدحام الشبكة، قد يكون وقت التأكيد أطول. يرجى الانتظار بصبر.",
  287. item17: "إذا لم تتم إضافة الأموال لفترة طويلة، يرجى حفظ تجزئة المعاملة (TxHash) والاتصال بالدعم.",
  288. item18: "بعد تأكيد المعاملة، سيقوم النظام تلقائيًا بتحديث حالة الطلب.",
  289. item19: "تذكير:",
  290. },
  291. ko: {
  292. item1: "당신이 없으면",
  293. item2: ", 당신은 받을 수 있습니다",
  294. item3: "받기",
  295. item4: "보내기",
  296. item5: " (일시불) 제공된 주소로!",
  297. item6: "다른 금액을 보내도 시스템이 그래도 수락합니다!",
  298. item7: "주소가 복사되었습니다",
  299. item8: "복사",
  300. item9: "지불 완료",
  301. item10: "취소",
  302. item11: "합계",
  303. item12: "결제 방법:",
  304. item13: "코드를 스캔하거나 복사 버튼을 클릭하여 결제 주소를 복사하세요!",
  305. item14: "수신 주소와 금액을 주의 깊게 확인하십시오. 블록체인 거래는 취소할 수 없습니다.",
  306. item15: "이체 완료 후 네트워크 확인에는 일반적으로 1-5분이 소요됩니다.",
  307. item16: "네트워크 혼잡 시 확인 시간이 길어질 수 있습니다. 인내심을 가지고 기다려주십시오.",
  308. item17: "오랫동안 입금되지 않으면 트랜잭션 해시(TxHash)를 저장하고 고객 지원에 문의하십시오.",
  309. item18: "거래 확인 후 시스템이 주문 상태를 자동으로 업데이트합니다.",
  310. item19: "안내:",
  311. },
  312. pt: {
  313. item1: "Se você não tem nenhum",
  314. item2: ", você pode obter",
  315. item3: "Obter",
  316. item4: "Enviar",
  317. item5: " (Pagamento único) para o endereço fornecido!",
  318. item6: "Se enviar qualquer outro montante, o sistema o aceitará de qualquer forma!",
  319. item7: "Endereço copiado",
  320. item8: "Copiar",
  321. item9: "Pago",
  322. item10: "Cancelar",
  323. item11: "Total",
  324. item12: "Método de pagamento:",
  325. item13: "Digitalize o código ou clique no botão de cópia para copiar o endereço de pagamento!",
  326. item14: "Verifique cuidadosamente o endereço do destinatário e o valor. As transações blockchain são irreversíveis.",
  327. item15: "Após a conclusão da transferência, a confirmação da rede geralmente leva 1-5 minutos.",
  328. item16: "Durante períodos de congestionamento da rede, os tempos de confirmação podem ser mais longos. Aguarde com paciência.",
  329. item17: "Se os fundos não forem creditados por muito tempo, salve o hash da transação (TxHash) e entre em contato com o suporte.",
  330. item18: "Após a confirmação da transação, o sistema atualizará automaticamente o status do pedido.",
  331. item19: "Lembrete:",
  332. },
  333. fa: {
  334. item1: "اگر هیچ ندارید",
  335. item2: ", می‌توانید",
  336. item3: "دریافت",
  337. item4: "ارسال",
  338. item5: " (پرداخت یکباره) به آدرس ارائه شده!",
  339. item6: "اگر مقدار دیگری ارسال کنید، سیستم به هر حال آن را قبول می‌کند!",
  340. item7: "آدرس کپی شده است",
  341. item8: "کپی",
  342. item9: "پرداخت شده",
  343. item10: "لغو",
  344. item11: "جمع",
  345. item12: "روش پرداخت:",
  346. item13: "کد را اسکن کنید یا روی دکمه کپی کلیک کنید تا آدرس پرداخت کپی شود!",
  347. item14: "لطفاً آدرس گیرنده و مبلغ را با دقت بررسی کنید. تراکنش‌های بلاکچین برگشت‌ناپذیر هستند.",
  348. item15: "پس از تکمیل تراکنش، تأیید شبکه معمولاً 1-5 دقیقه طول می‌کشد.",
  349. item16: "در طول تراکم شبکه، زمان تأیید ممکن است طولانی‌تر باشد. لطفاً صبور باشید.",
  350. item17: "اگر وجوهی برای مدت طولانی واریز نشده‌اند، لطفاً هش تراکنش (TxHash) را ذخیره کرده و با پشتیبانی تماس بگیرید.",
  351. item18: "پس از تأیید تراکنش، سیستم به طور خودکار وضعیت سفارش را به‌روز می‌کند.",
  352. item19: "تذکر:",
  353. },
  354. tr: {
  355. item1: "Eğer hiç yoksa",
  356. item2: ", alabilirsiniz",
  357. item3: "alabilirsiniz",
  358. item4: "gönderebilirsiniz",
  359. item5: " (tek seferlik ödeme) sağlanan adrese!",
  360. item6: "Başka bir miktar gönderirseniz, sistem yine de kabul eder!",
  361. item7: "Adres kopyalandı",
  362. item8: "Kopyala",
  363. item9: "Ödendi",
  364. item10: "İptal",
  365. item11: "Toplam",
  366. item12: "Ödeme yöntemi:",
  367. item13: "Kodu tarayın veya kopyala düğmesine tıklayarak ödeme adresini kopyalayın!",
  368. item14: "Lütfen alıcı adresini ve miktarı dikkatlice kontrol edin. Blockchain işlemleri geri alınamaz.",
  369. item15: "Transfer tamamlandıktan sonra, ağ onayı genellikle 1-5 dakika sürer.",
  370. item16: "Ağ tıkanıklığı dönemlerinde, onay süreleri daha uzun olabilir. Lütfen sabırlı olun.",
  371. item17: "Eğer fonlar uzun süredir yatırılmazsa, işlem hash'i (TxHash) kaydedin ve müşteri hizmetleri ile iletişime geçin.",
  372. item18: "İşlem onaylandıktan sonra, sistem otomatik olarak sipariş durumunu güncelleyecektir.",
  373. item19: "Hatırlatma:",
  374. },
  375. ug: {
  376. item1: "ئەگەر سىز ھېچ نەرسىسىز",
  377. item2: ", ئۇڭ",
  378. item3: "ئېلىپ",
  379. item4: "يوللىش",
  380. item5: " (بىر قېتىم تۆلەش) بەرگەن ئادرېسىگە!",
  381. item6: "ئەگەر سىز باشقا مەبلەغ يوللىسەڭىز، سىستېما ھەر قانداق ھالەتتە قوبۇل قىلىدۇ!",
  382. item7: "ئادرېس كۆچۈرۈلدى",
  383. item8: "كۆچۈرۈش",
  384. item9: "تۆلەنگەن",
  385. item10: "يوقىت",
  386. item11: "جەمئىي",
  387. item12: "تۆلەش ئۇسۇلى:",
  388. item13: "كودى سكانىرلاڭ ياكى كۆچۈرۈش بۇتۇنى باسا، تۆلەش ئادرېسىنى كۆچۈرۈپ تۆلەڭ!",
  389. item14: "لۇطفاً ئالغۇسى ئادرېسى ۋە مەبلەغنى دەلىللەڭ. بلاكچېين تەرەققىياتلىرى بەك قاچىلا بولمايدۇ.",
  390. item15: "ئۆتكۈزۈش تەمىنلەنگەندىن كېيىن، ئېلخەتتىكى ئەھۋالغا كەلگەندە 1-5 مىنۇت ئالىدۇ.",
  391. item16: "ئېلخەت كەڭ ئەڭگىزى ئۈچۈن ئەھۋالغا كەلگەندە، ئەھۋالغا كەلگەن ۋاقتى ئەگەر كېلىسە بولىدۇ. لۇطفاً سابىر بىلەن قەدەم قويۇڭ.",
  392. item17: "ئەگەر ۋاقتى ئاز ئەمەسلىكىدىن كېيىن مەبلەغ كەلمەسە، لۇطفاً تەرەققىيات ھەش (TxHash) نى ساقلىۋېلىڭ ۋە مۇلازىمەت كەسپىگە ئەگەرچە تىلەش.",
  393. item18: "تەرەققىيات ئەھۋالغا كەلگەندىن كېيىن، سىستېما ئاپتوماتىك ئەگەرچە ئورۇن بەلگىسىنى يېڭىلايدۇ.",
  394. item19: "ساغلام ئۈنۈم:",
  395. },
  396. };
  397. let config = {
  398. Pattern: {
  399. Password:
  400. /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?!.*([~!@&%$^\\(\\)#_]).*\\1.*\\1.*\\1)[A-Za-z0-9~!@&%$^\\(\\)#_]{8,16}$/,
  401. },
  402. };
  403. let vm = new Vue({
  404. el: "#onchainpay",
  405. data() {
  406. return {
  407. imgUrl: "",
  408. ho: "",
  409. //多语言
  410. langList: {
  411. en: "ENGLISH",
  412. cn: "中文简体",
  413. zhHant: "中文繁體",
  414. vn: "Tiếng Việt",
  415. de: "Deutsch",
  416. es: "Español",
  417. id: "Indonesian",
  418. ms: "Melayu",
  419. th: "ภาษาไทย",
  420. ar: "العربية",
  421. ko: "한국어",
  422. pt: "Português",
  423. fa: "زبان پارسی",
  424. tr: "Türkçe",
  425. },
  426. language: "cn",
  427. lang: {},
  428. Host04: '',
  429. addresses: "",
  430. successUrl: "",
  431. amount: "",
  432. currency: "",
  433. isShow: false,
  434. };
  435. },
  436. computed: {
  437. // AccessToken(){
  438. // return{
  439. // 'Access-Token': window.location.search.split('?token=')[1]
  440. // }
  441. // }
  442. shortAddress() {
  443. const addr = this.addresses || '';
  444. if (addr.length > 16) {
  445. return addr.slice(0, 8) + '...' + addr.slice(-8);
  446. }
  447. return addr;
  448. },
  449. name() {
  450. return this.language == "en" ? this.blockchainEnName : this.blockchainName;
  451. },
  452. },
  453. methods: {
  454. // 语言切换函数
  455. chooseLang(key) {
  456. this.lang = content[key];
  457. this.language = key;
  458. sessionStorage.setItem("lang", this.language);
  459. },
  460. // 复制分享链接
  461. CopyShareLink() {
  462. // 优先使用现代API
  463. if (navigator.clipboard) {
  464. navigator.clipboard.writeText(this.addresses).then(() => {
  465. this.$message.success(this.lang.item7 || '地址已复制');
  466. }).catch(() => {
  467. this.$message.error('复制失败');
  468. });
  469. } else {
  470. // 兼容旧浏览器
  471. const input = document.createElement('input');
  472. input.value = this.addresses;
  473. document.body.appendChild(input);
  474. input.select();
  475. try {
  476. document.execCommand('copy');
  477. this.$message.success(this.lang.item7 || '地址已复制');
  478. } catch (e) {
  479. this.$message.error('复制失败');
  480. }
  481. document.body.removeChild(input);
  482. }
  483. },
  484. //成功跳转页面
  485. Pay() {
  486. window.location.href = this.Host04 + this.successUrl;
  487. },
  488. //取消关闭页面
  489. Cancle() {
  490. if (navigator.userAgent.indexOf("MSIE") > 0) {
  491. // close IE
  492. if (navigator.userAgent.indexOf("MSIE 6.0") > 0) {
  493. window.opener = null;
  494. window.close();
  495. } else {
  496. window.open("", "_top", "");
  497. window.top.close();
  498. }
  499. } else {
  500. // close chrome;It is effective when it is only one.
  501. window.opener = null;
  502. window.open("", "_self", "");
  503. window.close();
  504. }
  505. },
  506. },
  507. mounted() {
  508. let ht = window.location.protocol;
  509. let ho = window.location.host.split('.')[1];
  510. this.Host04 = ht + "//pay." + ho + ".com"
  511. try {
  512. const searchParams = new URLSearchParams(window.location.search);
  513. let params = searchParams.get('params');
  514. this.language = searchParams.get('language');
  515. sessionStorage.setItem("lang", this.language);
  516. this.isShow = false
  517. if (params) {
  518. const str = parseParams(safeDecrypt(params));
  519. this.addresses = str.addresses
  520. this.successUrl = str.successUrl
  521. // 去除末尾多余的0和小数点
  522. if (str.amount) {
  523. let amt = str.amount;
  524. if (typeof amt === 'string') {
  525. amt = amt.replace(/(\.\d*?[1-9])0+$/, '$1').replace(/\.0+$/, '').replace(/\.$/, '');
  526. }
  527. this.amount = amt;
  528. } else {
  529. this.amount = str.amount;
  530. }
  531. this.currency = str.currency
  532. this.blockchainEnName = str.blockchainEnName
  533. this.blockchainName = str.blockchainName
  534. this.isShow = true;
  535. this.$nextTick(() => {
  536. if (sessionStorage.getItem("lang")) {
  537. this.language = sessionStorage.getItem("lang");
  538. this.lang = content[this.language];
  539. if (!this.lang?.item1) {
  540. setLang(this)
  541. }
  542. } else {
  543. if (!this.lang?.item1) {
  544. setLang(this)
  545. }
  546. }
  547. jQuery('#qrcode').qrcode({ width: 200, height: 200, correctLevel: 0, text: this.addresses });
  548. });
  549. } else {
  550. this.isShow = false
  551. }
  552. } catch (error) {
  553. console.error('解析URL参数时出错:', error);
  554. }
  555. },
  556. });