ucard-paycard.js 69 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686
  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 = (navigator.language || navigator.browserLanguage);
  19. console.log(jsSrc, 12);
  20. // jsSrc = 'ko-IN'
  21. if (jsSrc.indexOf('zh-C') >= 0) {
  22. that.language = 'cn'
  23. that.lang = content['cn'];
  24. } else if (jsSrc.indexOf('es') >= 0) {
  25. that.language = 'es'
  26. that.lang = content['es'];
  27. } else if (jsSrc.indexOf('zh-') >= 0) {
  28. that.language = 'zhHant'
  29. that.lang = content['zhHant'];
  30. } else if (jsSrc.indexOf('ar') >= 0) {
  31. that.language = 'ar'
  32. that.lang = content['ar'];
  33. } else if (jsSrc.indexOf('de') >= 0) {
  34. that.language = 'de'
  35. that.lang = content['de'];
  36. } else if (jsSrc.indexOf('id') >= 0) {
  37. that.language = 'id'
  38. that.lang = content['id'];
  39. } else if (jsSrc.indexOf('ko') >= 0 && jsSrc.indexOf('kok') == -1) {
  40. that.language = 'ko'
  41. that.lang = content['ko'];
  42. } else if (jsSrc.indexOf('ms') >= 0) {
  43. that.language = 'ms'
  44. that.lang = content['ms'];
  45. } else if (jsSrc.indexOf('th') >= 0) {
  46. that.language = 'th'
  47. that.lang = content['th'];
  48. } else if (jsSrc.indexOf('vi') >= 0) {
  49. that.language = 'vn'
  50. that.lang = content['vn'];
  51. } else if (jsSrc.indexOf('fa') >= 0) {
  52. that.language = 'fa'
  53. that.lang = content['fa'];
  54. } else if (jsSrc.indexOf('pt') >= 0) {
  55. that.language = 'pt'
  56. that.lang = content['pt'];
  57. } else if (jsSrc.indexOf('tr') >= 0) {
  58. that.language = 'tr'
  59. that.lang = content['tr'];
  60. } else {
  61. that.language = 'en'
  62. that.lang = content['en'];
  63. }
  64. sessionStorage.setItem("lang", that.language);
  65. }
  66. function parseParams(str) {
  67. const parts = str.split('/');
  68. const tag = parts.pop();
  69. const types = parts.pop();
  70. const serial = parts.pop();
  71. const lang = parts.pop();
  72. const token = parts.join('/');
  73. return {
  74. token,
  75. lang,
  76. serial,
  77. types,
  78. tag
  79. };
  80. }
  81. const SystemError = {
  82. "cn": "网络状态不佳,请稍后重试。",
  83. "en": "The network is not in good condition. Please try again later.",
  84. "vn": "Mạng không được tốt lắm. Vui lòng thử lại sau.",
  85. }
  86. // 通用请求封装
  87. async function request(method, url, data = {}, token = "", language = "en") {
  88. try {
  89. const res = await axios({
  90. method,
  91. url,
  92. data,
  93. headers: token
  94. ? { "access-token": token, language } // 正确 header
  95. : { language }
  96. });
  97. if (res.data.code === 200) {
  98. return { ok: true, data: res.data.data };
  99. } else {
  100. return { ok: false, msg: res.data.msg || SystemError[sessionStorage.setItem('lang')] || SystemError['en'] };
  101. }
  102. } catch (err) {
  103. console.error("请求异常:", err);
  104. return {
  105. ok: false, msg:
  106. SystemError[sessionStorage.setItem('lang')] || SystemError['en']
  107. };
  108. }
  109. }
  110. const Api = {
  111. // 获取账户下拉
  112. async getAccountDropdown(baseUrl, token, language) {
  113. const res = await request("POST", baseUrl + "/wasabi/card/account/dropdown", {}, token, language);
  114. if (!res.ok) return res;
  115. return {
  116. ok: true,
  117. data: res.data
  118. };
  119. },
  120. // 用户详情(同样格式)
  121. async userSingle(baseUrl, token, language) {
  122. const res = await request("POST", baseUrl + "/wasabi/merchant/user/single", {}, token, language);
  123. if (!res.ok) return res;
  124. return {
  125. ok: true,
  126. data: res.data
  127. };
  128. },
  129. // 获取验证码
  130. async sendCode(baseUrl, params, token, language) {
  131. const res = await request("POST", baseUrl + "/ucard/send/email/code", params, token, language);
  132. if (!res.ok) return res;
  133. return {
  134. ok: true,
  135. data: res.data
  136. };
  137. },
  138. // 支付
  139. async payCard(baseUrl, params, token, language) {
  140. const res = await request(
  141. "POST",
  142. baseUrl + '/ucard/pay',
  143. params,
  144. token,
  145. language
  146. );
  147. if (!res.ok) return res;
  148. return {
  149. ok: true,
  150. data: res.data
  151. };
  152. },
  153. // 取消订单
  154. async payCancel(baseUrl, params, token, language) {
  155. const res = await request(
  156. "POST",
  157. baseUrl + '/finance/deposit/cancel',
  158. params,
  159. token,
  160. language
  161. );
  162. if (!res.ok) return res;
  163. return {
  164. ok: true,
  165. data: res.data
  166. };
  167. },
  168. // 订单详情
  169. async getDepositSerial(baseUrl, params, token, language) {
  170. const res = await request(
  171. "POST",
  172. baseUrl + "/ucard/get/deposit/serial",
  173. params,
  174. token,
  175. language
  176. );
  177. if (!res.ok) return res;
  178. return {
  179. ok: true,
  180. data: res.data
  181. };
  182. }
  183. };
  184. var content = {
  185. cn: {
  186. "Title1": "存款账户",
  187. "Title2": "存款方式",
  188. "Title3": "存款金额",
  189. "Title10": "提款账户",
  190. "Title4": "提款方式",
  191. "Title5": "提款金额",
  192. "Title6": "付款账户",
  193. "Title7": "请选择付款账户",
  194. "Title8": "支付",
  195. "Title9": "取消",
  196. "cardNo": "卡号",
  197. "bal": "余额",
  198. "bagBal": "钱包余额",
  199. "format": "最多两位小数的非负数",
  200. "format1": "正整数",
  201. "amount": "金额需是 ",
  202. "amount1": "付款账户余额不足",
  203. "Confirm": "确认",
  204. "Cancel": "取消",
  205. "Des1": "提交成功,待审核中...",
  206. "Des38": "正在处理,请耐心等待...",
  207. "vaildate": {
  208. "email": {
  209. "format": "邮箱格式错误",
  210. "empty": "邮箱不能为空",
  211. "exist": "邮箱已存在"
  212. },
  213. "country": {
  214. "empty": "请选择您所在国家"
  215. },
  216. },
  217. "newSignup": {
  218. "item9": "邮箱验证码",
  219. "item10": "输入您的邮箱验证码",
  220. "item11": "获取验证码",
  221. },
  222. "CodeSuccess": "验证码获取成功",
  223. "agreemnet8": "电子邮件已存在",
  224. "code": "邮箱验证码",
  225. "getCode": "获取验证码",
  226. "waitCode1": "等待 ",
  227. "waitCode2": "s ",
  228. "p1": "订单流水号",
  229. "p2": "请输入CVV",
  230. "p3": "请输入PIN",
  231. "p4": "请输入邮箱验证码",
  232. "p5": "订单流水号",
  233. "t1": "为确保您的资金安全并顺利完成支付,请您依次完成以下步骤:",
  234. "t2": "确认您的流水订单号,确保支付信息准确无误。",
  235. "t3": "若选择 银行卡支付,系统将要求您验证 CVV 和 PIN,以保障交易安全。",
  236. "t4": "请前往您的邮箱查看验证码并及时输入,以继续下一步操作。",
  237. "t5": "核对所有信息无误后,请尽快完成支付,以避免订单超时或金额变动。",
  238. "t6": "感谢您的配合,祝您使用愉快!",
  239. "PaymentDeadline": "支付剩余时间",
  240. "PaymentExpired": "支付已超时,请重新下单",
  241. "days": "天",
  242. "hours": "小时",
  243. "minutes": "分钟",
  244. "seconds": "秒",
  245. "Copy": "复制",
  246. "CopySuccess": "复制成功",
  247. "CopyFailed": "复制失败",
  248. "Msg": {
  249. "Cancle": "确定要取消吗?",
  250. "SystemPrompt": "系统提示",
  251. "pagesStatus": "订单已取消",
  252. "callbackStatus": "此订单已失效,请重新下单",
  253. }
  254. },
  255. zhHant: {
  256. "Title1": "存款帳戶",
  257. "Title2": "存款方式",
  258. "Title3": "存款金額",
  259. "Title10": "提款帳戶",
  260. "Title4": "提款方式",
  261. "Title5": "提款金額",
  262. "Title6": "付款帳戶",
  263. "Title7": "請選擇付款帳戶",
  264. "Title8": "支付",
  265. "Title9": "取消",
  266. "cardNo": "卡號",
  267. "bal": "餘額",
  268. "bagBal": "錢包餘額",
  269. "format": "最多兩位小數的非負數",
  270. "format1": "正整數",
  271. "amount": "金額需是 ",
  272. "amount1": "付款帳戶餘額不足",
  273. "Confirm": "確認",
  274. "Cancel": "取消",
  275. "Des1": "提交成功,待審核中...",
  276. "Des38": "正在處理,請耐心等待...",
  277. "vaildate": {
  278. "email": {
  279. "format": "邮箱格式錯誤",
  280. "empty": "邮箱不能為空",
  281. "exist": "邮箱已存在"
  282. },
  283. "country": {
  284. "empty": "請選擇您所在國家"
  285. }
  286. },
  287. "newSignup": {
  288. "item9": "邮箱驗證碼",
  289. "item10": "輸入您的邮箱驗證碼",
  290. "item11": "獲取驗證碼"
  291. },
  292. "CodeSuccess": "驗證碼獲取成功",
  293. "agreemnet8": "電子郵件已存在",
  294. "code": "邮箱驗證碼",
  295. "getCode": "獲取驗證碼",
  296. "waitCode1": "等待 ",
  297. "waitCode2": "秒 ",
  298. "p1": "訂單流水號",
  299. "p2": "請輸入CVV",
  300. "p3": "請輸入PIN",
  301. "p4": "請輸入邮箱驗證碼",
  302. "p5": "訂單流水號",
  303. "t1": "為確保您的資金安全並順利完成支付,請依序完成以下步驟:",
  304. "t2": "確認您的流水訂單號,確保支付資訊正確無誤。",
  305. "t3": "若選擇銀行卡支付,系統將要求您驗證 CVV 和 PIN,以保障交易安全。",
  306. "t4": "請前往您的邮箱查看驗證碼並及時輸入,以繼續下一步操作。",
  307. "t5": "核對所有資訊無誤後,請盡快完成支付,以避免訂單超時或金額變動。",
  308. "t6": "感謝您的配合,祝您使用愉快!",
  309. "PaymentDeadline": "支付剩餘時間",
  310. "PaymentExpired": "支付已超時,請重新下單",
  311. "days": "天",
  312. "hours": "小時",
  313. "minutes": "分鐘",
  314. "seconds": "秒",
  315. "Copy": "複製",
  316. "CopySuccess": "複製成功",
  317. "CopyFailed": "複製失敗",
  318. "Msg": {
  319. "Cancle": "確定要取消嗎?",
  320. "SystemPrompt": "系統提示",
  321. "pagesStatus": "訂單已取消",
  322. "callbackStatus": "此訂單已失效,請重新下單"
  323. }
  324. },
  325. en: {
  326. "Title1": "Deposit Account",
  327. "Title2": "Deposit Method",
  328. "Title3": "Deposit Amount",
  329. "Title10": "Withdrawal Account",
  330. "Title4": "Withdrawal Method",
  331. "Title5": "Withdrawal Amount",
  332. "Title6": "Payment Account",
  333. "Title7": "Please select payment account",
  334. "Title8": "Pay",
  335. "Title9": "Cancel",
  336. "cardNo": "Card Number",
  337. "bal": "Balance",
  338. "bagBal": "Wallet Balance",
  339. "format": "Non-negative number with up to two decimals",
  340. "format1": "Positive integer",
  341. "amount": "Amount must be ",
  342. "amount1": "Insufficient payment account balance",
  343. "Confirm": "Confirm",
  344. "Cancel": "Cancel",
  345. "Des1": "Submitted successfully, pending review...",
  346. "Des38": "Processing, please wait...",
  347. "vaildate": {
  348. "email": {
  349. "format": "Invalid email format",
  350. "empty": "Email cannot be empty",
  351. "exist": "Email already exists"
  352. },
  353. "country": {
  354. "empty": "Please select your country"
  355. }
  356. },
  357. "newSignup": {
  358. "item9": "Email verification code",
  359. "item10": "Enter your email verification code",
  360. "item11": "Get code"
  361. },
  362. "CodeSuccess": "Verification code sent successfully",
  363. "agreemnet8": "Email already exists",
  364. "code": "Email verification code",
  365. "getCode": "Get code",
  366. "waitCode1": "Wait ",
  367. "waitCode2": "s ",
  368. "p1": "Order reference number",
  369. "p2": "Please enter CVV",
  370. "p3": "Please enter PIN",
  371. "p4": "Please enter the email verification code",
  372. "p5": "Order reference number",
  373. "t1": "To ensure your funds are secure and your payment is completed smoothly, please follow the steps below:",
  374. "t2": "Confirm your order reference number to ensure the payment information is correct.",
  375. "t3": "If you choose bank card payment, the system will require CVV and PIN verification for security.",
  376. "t4": "Please check your email for the verification code and enter it promptly to proceed.",
  377. "t5": "After verifying all details, please complete the payment as soon as possible to avoid timeout or changes in the amount.",
  378. "t6": "Thank you for your cooperation. Enjoy your experience!",
  379. "PaymentDeadline": "Time remaining to pay",
  380. "PaymentExpired": "Payment expired, please place a new order",
  381. "days": "day(s)",
  382. "hours": "hour(s)",
  383. "minutes": "minute(s)",
  384. "seconds": "second(s)",
  385. "Copy": "Copy",
  386. "CopySuccess": "Copied",
  387. "CopyFailed": "Copy failed",
  388. "Msg": {
  389. "Cancle": "Are you sure you want to cancel?",
  390. "SystemPrompt": "System prompt",
  391. "pagesStatus": "Order has been cancelled",
  392. "callbackStatus": "This order has expired, please place a new order"
  393. }
  394. },
  395. vn: {
  396. "Title1": "Tài khoản gửi tiền",
  397. "Title2": "Phương thức gửi tiền",
  398. "Title3": "Số tiền gửi",
  399. "Title10": "Tài khoản rút tiền",
  400. "Title4": "Phương thức rút tiền",
  401. "Title5": "Số tiền rút",
  402. "Title6": "Tài khoản thanh toán",
  403. "Title7": "Vui lòng chọn tài khoản thanh toán",
  404. "Title8": "Thanh toán",
  405. "Title9": "Hủy",
  406. "cardNo": "Số thẻ",
  407. "bal": "Số dư",
  408. "bagBal": "Số dư ví",
  409. "format": "Số không âm với tối đa hai chữ số thập phân",
  410. "format1": "Số nguyên dương",
  411. "amount": "Số tiền phải ",
  412. "amount1": "Số dư tài khoản thanh toán không đủ",
  413. "Confirm": "Xác nhận",
  414. "Cancel": "Hủy",
  415. "Des1": "Gửi thành công, đang chờ xét duyệt...",
  416. "Des38": "Đang xử lý, vui lòng chờ...",
  417. "vaildate": {
  418. "email": {
  419. "format": "Định dạng email không hợp lệ",
  420. "empty": "Email không được để trống",
  421. "exist": "Email đã tồn tại"
  422. },
  423. "country": {
  424. "empty": "Vui lòng chọn quốc gia của bạn"
  425. }
  426. },
  427. "newSignup": {
  428. "item9": "Mã xác thực email",
  429. "item10": "Nhập mã xác thực từ email của bạn",
  430. "item11": "Lấy mã"
  431. },
  432. "CodeSuccess": "Lấy mã thành công",
  433. "agreemnet8": "Email đã tồn tại",
  434. "code": "Mã email",
  435. "getCode": "Lấy mã",
  436. "waitCode1": "Chờ ",
  437. "waitCode2": "s ",
  438. "p1": "Mã tham chiếu đơn hàng",
  439. "p2": "Vui lòng nhập CVV",
  440. "p3": "Vui lòng nhập PIN",
  441. "p4": "Vui lòng nhập mã xác thực email",
  442. "p5": "Mã tham chiếu đơn hàng",
  443. "t1": "Để đảm bảo an toàn tài chính và hoàn tất thanh toán suôn sẻ, vui lòng làm theo các bước sau:",
  444. "t2": "Xác nhận mã tham chiếu đơn hàng để đảm bảo thông tin chính xác.",
  445. "t3": "Nếu chọn thanh toán bằng thẻ, hệ thống sẽ yêu cầu xác minh CVV và PIN.",
  446. "t4": "Hãy kiểm tra email và nhập mã xác thực để tiếp tục.",
  447. "t5": "Sau khi xác nhận thông tin, vui lòng thanh toán sớm để tránh hết hạn.",
  448. "t6": "Cảm ơn sự hợp tác của bạn. Chúc bạn trải nghiệm vui vẻ!",
  449. "PaymentDeadline": "Thời gian thanh toán còn lại",
  450. "PaymentExpired": "Thanh toán đã hết hạn, vui lòng đặt lại",
  451. "days": "ngày",
  452. "hours": "giờ",
  453. "minutes": "phút",
  454. "seconds": "giây",
  455. "Copy": "Sao chép",
  456. "CopySuccess": "Sao chép thành công",
  457. "CopyFailed": "Sao chép thất bại",
  458. "Msg": {
  459. "Cancle": "Bạn có chắc muốn hủy không?",
  460. "SystemPrompt": "Thông báo hệ thống",
  461. "pagesStatus": "Đơn hàng đã bị hủy",
  462. "callbackStatus": "Đơn hàng này đã hết hiệu lực, vui lòng đặt lại"
  463. }
  464. },
  465. de: {
  466. "Title1": "Einzahlungskonto",
  467. "Title2": "Einzahlungsmethode",
  468. "Title3": "Einzahlungsbetrag",
  469. "Title10": "Auszahlungskonto",
  470. "Title4": "Auszahlungsmethode",
  471. "Title5": "Auszahlungsbetrag",
  472. "Title6": "Zahlungskonto",
  473. "Title7": "Bitte Zahlungskonto auswählen",
  474. "Title8": "Bezahlen",
  475. "Title9": "Abbrechen",
  476. "cardNo": "Kartennummer",
  477. "bal": "Kontostand",
  478. "bagBal": "Wallet-Guthaben",
  479. "format": "Nicht-negative Zahl mit bis zu zwei Dezimalstellen",
  480. "format1": "Positive ganze Zahl",
  481. "amount": "Der Betrag muss ",
  482. "amount1": "Unzureichendes Guthaben auf dem Zahlungskonto",
  483. "Confirm": "Bestätigen",
  484. "Cancel": "Abbrechen",
  485. "Des1": "Erfolgreich eingereicht, wird überprüft...",
  486. "Des38": "Wird verarbeitet, bitte warten...",
  487. "vaildate": {
  488. "email": {
  489. "format": "Ungültiges E-Mail-Format",
  490. "empty": "E-Mail darf nicht leer sein",
  491. "exist": "E-Mail existiert bereits"
  492. },
  493. "country": {
  494. "empty": "Bitte wählen Sie Ihr Land aus"
  495. }
  496. },
  497. "newSignup": {
  498. "item9": "E-Mail-Bestätigungscode",
  499. "item10": "Geben Sie Ihren E-Mail-Bestätigungscode ein",
  500. "item11": "Code anfordern"
  501. },
  502. "CodeSuccess": "Bestätigungscode erfolgreich gesendet",
  503. "agreemnet8": "E-Mail existiert bereits",
  504. "code": "E-Mail-Bestätigungscode",
  505. "getCode": "Code anfordern",
  506. "waitCode1": "Warten ",
  507. "waitCode2": "s ",
  508. "p1": "Bestellreferenznummer",
  509. "p2": "Bitte CVV eingeben",
  510. "p3": "Bitte PIN eingeben",
  511. "p4": "Bitte E-Mail-Bestätigungscode eingeben",
  512. "p5": "Bestellreferenznummer",
  513. "t1": "Um die Sicherheit Ihrer Gelder zu gewährleisten und die Zahlung reibungslos abzuschließen, folgen Sie bitte den folgenden Schritten:",
  514. "t2": "Bestätigen Sie die Bestellreferenznummer, um sicherzustellen, dass die Zahlungsinformationen korrekt sind.",
  515. "t3": "Wenn Sie Kartenzahlung wählen, verlangt das System eine CVV- und PIN-Verifizierung zur Sicherheit.",
  516. "t4": "Bitte überprüfen Sie Ihre E-Mail auf den Bestätigungscode und geben Sie ihn umgehend ein.",
  517. "t5": "Bitte schließen Sie die Zahlung zeitnah ab, um ein Ablaufen der Bestellung oder Betragsänderungen zu vermeiden.",
  518. "t6": "Vielen Dank für Ihre Zusammenarbeit und viel Freude bei der Nutzung!",
  519. "PaymentDeadline": "Verbleibende Zahlungszeit",
  520. "PaymentExpired": "Zahlung abgelaufen, bitte neu bestellen",
  521. "days": "Tag(e)",
  522. "hours": "Stunde(n)",
  523. "minutes": "Minute(n)",
  524. "seconds": "Sekunde(n)",
  525. "Copy": "Kopieren",
  526. "CopySuccess": "Kopiert",
  527. "CopyFailed": "Kopieren fehlgeschlagen",
  528. "Msg": {
  529. "Cancle": "Sind Sie sicher, dass Sie stornieren möchten?",
  530. "SystemPrompt": "Systemhinweis",
  531. "pagesStatus": "Bestellung wurde storniert",
  532. "callbackStatus": "Diese Bestellung ist abgelaufen, bitte bestellen Sie erneut"
  533. }
  534. },
  535. es: {
  536. "Title1": "Cuenta de depósito",
  537. "Title2": "Método de depósito",
  538. "Title3": "Monto del depósito",
  539. "Title10": "Cuenta de retiro",
  540. "Title4": "Método de retiro",
  541. "Title5": "Monto del retiro",
  542. "Title6": "Cuenta de pago",
  543. "Title7": "Seleccione la cuenta de pago",
  544. "Title8": "Pagar",
  545. "Title9": "Cancelar",
  546. "cardNo": "Número de tarjeta",
  547. "bal": "Saldo",
  548. "bagBal": "Saldo de la billetera",
  549. "format": "Número no negativo con hasta dos decimales",
  550. "format1": "Entero positivo",
  551. "amount": "El monto debe ser ",
  552. "amount1": "Saldo insuficiente en la cuenta de pago",
  553. "Confirm": "Confirmar",
  554. "Cancel": "Cancelar",
  555. "Des1": "Enviado, en revisión...",
  556. "Des38": "Procesando, por favor espere...",
  557. "vaildate": {
  558. "email": {
  559. "format": "Formato de correo electrónico inválido",
  560. "empty": "El correo electrónico no puede estar vacío",
  561. "exist": "El correo electrónico ya existe"
  562. },
  563. "country": {
  564. "empty": "Seleccione su país"
  565. }
  566. },
  567. "newSignup": {
  568. "item9": "Código de verificación por correo",
  569. "item10": "Ingrese el código enviado a su correo",
  570. "item11": "Obtener código"
  571. },
  572. "CodeSuccess": "Código enviado con éxito",
  573. "agreemnet8": "El correo electrónico ya existe",
  574. "code": "Código de correo",
  575. "getCode": "Obtener código",
  576. "waitCode1": "Esperar ",
  577. "waitCode2": "s ",
  578. "p1": "Número de referencia del pedido",
  579. "p2": "Ingrese el CVV",
  580. "p3": "Ingrese el PIN",
  581. "p4": "Ingrese el código de verificación del correo",
  582. "p5": "Número de referencia del pedido",
  583. "t1": "Para garantizar la seguridad de sus fondos y completar el pago sin problemas, siga los pasos a continuación:",
  584. "t2": "Confirme el número de referencia del pedido para asegurar que la información sea correcta.",
  585. "t3": "Si elige pago con tarjeta bancaria, el sistema solicitará la verificación de CVV y PIN por seguridad.",
  586. "t4": "Revise su correo y escriba el código recibido para continuar.",
  587. "t5": "Después de verificar la información, complete el pago lo antes posible para evitar vencimientos.",
  588. "t6": "¡Gracias por su cooperación, disfrute su experiencia!",
  589. "PaymentDeadline": "Tiempo restante para pagar",
  590. "PaymentExpired": "El pago ha expirado, haga un nuevo pedido",
  591. "days": "día(s)",
  592. "hours": "hora(s)",
  593. "minutes": "minuto(s)",
  594. "seconds": "segundo(s)",
  595. "Copy": "Copiar",
  596. "CopySuccess": "Copiado",
  597. "CopyFailed": "Error al copiar",
  598. "Msg": {
  599. "Cancle": "¿Está seguro de que desea cancelar?",
  600. "SystemPrompt": "Aviso del sistema",
  601. "pagesStatus": "El pedido ha sido cancelado",
  602. "callbackStatus": "Este pedido ha expirado, realice uno nuevo"
  603. }
  604. },
  605. id: {
  606. "Title1": "Akun Deposit",
  607. "Title2": "Metode Deposit",
  608. "Title3": "Jumlah Deposit",
  609. "Title10": "Akun Penarikan",
  610. "Title4": "Metode Penarikan",
  611. "Title5": "Jumlah Penarikan",
  612. "Title6": "Akun Pembayaran",
  613. "Title7": "Silakan pilih akun pembayaran",
  614. "Title8": "Bayar",
  615. "Title9": "Batal",
  616. "cardNo": "Nomor Kartu",
  617. "bal": "Saldo",
  618. "bagBal": "Saldo Dompet",
  619. "format": "Angka non-negatif dengan maksimal dua desimal",
  620. "format1": "Bilangan bulat positif",
  621. "amount": "Jumlah harus ",
  622. "amount1": "Saldo akun pembayaran tidak mencukupi",
  623. "Confirm": "Konfirmasi",
  624. "Cancel": "Batal",
  625. "Des1": "Berhasil dikirim, menunggu tinjauan...",
  626. "Des38": "Sedang diproses, harap tunggu...",
  627. "vaildate": {
  628. "email": {
  629. "format": "Format email tidak valid",
  630. "empty": "Email tidak boleh kosong",
  631. "exist": "Email sudah terdaftar"
  632. },
  633. "country": {
  634. "empty": "Silakan pilih negara Anda"
  635. }
  636. },
  637. "newSignup": {
  638. "item9": "Kode verifikasi email",
  639. "item10": "Masukkan kode verifikasi dari email Anda",
  640. "item11": "Dapatkan kode"
  641. },
  642. "CodeSuccess": "Kode berhasil dikirim",
  643. "agreemnet8": "Email sudah ada",
  644. "code": "Kode email",
  645. "getCode": "Dapatkan kode",
  646. "waitCode1": "Menunggu ",
  647. "waitCode2": "d ",
  648. "p1": "Nomor referensi pesanan",
  649. "p2": "Silakan masukkan CVV",
  650. "p3": "Silakan masukkan PIN",
  651. "p4": "Silakan masukkan kode verifikasi email",
  652. "p5": "Nomor referensi pesanan",
  653. "t1": "Untuk memastikan keamanan dana Anda dan menyelesaikan pembayaran dengan lancar, silakan ikuti langkah-langkah berikut:",
  654. "t2": "Konfirmasi nomor referensi pesanan untuk memastikan informasi pembayaran benar.",
  655. "t3": "Jika memilih pembayaran dengan kartu, sistem akan meminta verifikasi CVV dan PIN demi keamanan.",
  656. "t4": "Silakan periksa email Anda dan masukkan kode verifikasi untuk melanjutkan.",
  657. "t5": "Setelah semua informasi benar, selesaikan pembayaran segera untuk menghindari kedaluwarsa.",
  658. "t6": "Terima kasih atas kerja sama Anda. Semoga pengalaman Anda menyenangkan!",
  659. "PaymentDeadline": "Sisa waktu pembayaran",
  660. "PaymentExpired": "Pembayaran kedaluwarsa, silakan pesan ulang",
  661. "days": "hari",
  662. "hours": "jam",
  663. "minutes": "menit",
  664. "seconds": "detik",
  665. "Copy": "Salin",
  666. "CopySuccess": "Berhasil disalin",
  667. "CopyFailed": "Gagal menyalin",
  668. "Msg": {
  669. "Cancle": "Yakin ingin membatalkan?",
  670. "SystemPrompt": "Notifikasi sistem",
  671. "pagesStatus": "Pesanan telah dibatalkan",
  672. "callbackStatus": "Pesanan ini telah kedaluwarsa, silakan pesan ulang"
  673. }
  674. },
  675. ms: {
  676. "Title1": "Akaun Deposit",
  677. "Title2": "Kaedah Deposit",
  678. "Title3": "Jumlah Deposit",
  679. "Title10": "Akaun Pengeluaran",
  680. "Title4": "Kaedah Pengeluaran",
  681. "Title5": "Jumlah Pengeluaran",
  682. "Title6": "Akaun Pembayaran",
  683. "Title7": "Sila pilih akaun pembayaran",
  684. "Title8": "Bayar",
  685. "Title9": "Batal",
  686. "cardNo": "Nombor Kad",
  687. "bal": "Baki",
  688. "bagBal": "Baki Dompet",
  689. "format": "Nombor tidak negatif dengan maksimum dua titik perpuluhan",
  690. "format1": "Integer positif",
  691. "amount": "Jumlah mesti ",
  692. "amount1": "Baki akaun pembayaran tidak mencukupi",
  693. "Confirm": "Sahkan",
  694. "Cancel": "Batal",
  695. "Des1": "Berjaya dihantar, menunggu semakan...",
  696. "Des38": "Sedang diproses, sila tunggu...",
  697. "vaildate": {
  698. "email": {
  699. "format": "Format emel tidak sah",
  700. "empty": "Emel tidak boleh kosong",
  701. "exist": "Emel sudah wujud"
  702. },
  703. "country": {
  704. "empty": "Sila pilih negara anda"
  705. }
  706. },
  707. "newSignup": {
  708. "item9": "Kod pengesahan emel",
  709. "item10": "Masukkan kod pengesahan dari emel anda",
  710. "item11": "Dapatkan kod"
  711. },
  712. "CodeSuccess": "Kod berjaya dihantar",
  713. "agreemnet8": "Emel sudah wujud",
  714. "code": "Kod emel",
  715. "getCode": "Dapatkan kod",
  716. "waitCode1": "Menunggu ",
  717. "waitCode2": "s ",
  718. "p1": "Nombor rujukan pesanan",
  719. "p2": "Sila masukkan CVV",
  720. "p3": "Sila masukkan PIN",
  721. "p4": "Sila masukkan kod pengesahan emel",
  722. "p5": "Nombor rujukan pesanan",
  723. "t1": "Untuk memastikan keselamatan dana anda dan melengkapkan pembayaran dengan lancar, sila ikut langkah berikut:",
  724. "t2": "Sahkan nombor rujukan pesanan untuk memastikan maklumat adalah tepat.",
  725. "t3": "Jika memilih pembayaran kad, sistem akan meminta pengesahan CVV dan PIN.",
  726. "t4": "Sila semak emel anda dan masukkan kod pengesahan untuk meneruskan.",
  727. "t5": "Selepas semua maklumat disahkan, sila lengkapkan pembayaran segera untuk mengelakkan tamat tempoh.",
  728. "t6": "Terima kasih atas kerjasama anda. Selamat menggunakan perkhidmatan kami!",
  729. "PaymentDeadline": "Masa pembayaran yang tinggal",
  730. "PaymentExpired": "Pembayaran tamat tempoh, sila buat pesanan baharu",
  731. "days": "hari",
  732. "hours": "jam",
  733. "minutes": "minit",
  734. "seconds": "saat",
  735. "Copy": "Salin",
  736. "CopySuccess": "Berjaya disalin",
  737. "CopyFailed": "Salinan gagal",
  738. "Msg": {
  739. "Cancle": "Adakah anda pasti mahu batalkan?",
  740. "SystemPrompt": "Pemberitahuan sistem",
  741. "pagesStatus": "Pesanan telah dibatalkan",
  742. "callbackStatus": "Pesanan ini telah luput, sila buat pesanan baharu"
  743. }
  744. },
  745. th: {
  746. "Title1": "บัญชีฝากเงิน",
  747. "Title2": "วิธีการฝากเงิน",
  748. "Title3": "จำนวนเงินฝาก",
  749. "Title10": "บัญชีถอนเงิน",
  750. "Title4": "วิธีการถอนเงิน",
  751. "Title5": "จำนวนเงินถอน",
  752. "Title6": "บัญชีชำระเงิน",
  753. "Title7": "กรุณาเลือกบัญชีชำระเงิน",
  754. "Title8": "ชำระเงิน",
  755. "Title9": "ยกเลิก",
  756. "cardNo": "หมายเลขบัตร",
  757. "bal": "ยอดคงเหลือ",
  758. "bagBal": "ยอดเงินในวอลเล็ต",
  759. "format": "ตัวเลขที่ไม่เป็นลบและมีทศนิยมไม่เกินสองตำแหน่ง",
  760. "format1": "จำนวนเต็มบวก",
  761. "amount": "จำนวนเงินต้อง ",
  762. "amount1": "ยอดเงินในบัญชีชำระไม่เพียงพอ",
  763. "Confirm": "ยืนยัน",
  764. "Cancel": "ยกเลิก",
  765. "Des1": "ส่งสำเร็จ กำลังรอการตรวจสอบ...",
  766. "Des38": "กำลังดำเนินการ โปรดรอ...",
  767. "vaildate": {
  768. "email": {
  769. "format": "รูปแบบอีเมลไม่ถูกต้อง",
  770. "empty": "อีเมลไม่สามารถเว้นว่างได้",
  771. "exist": "อีเมลนี้มีอยู่แล้ว"
  772. },
  773. "country": {
  774. "empty": "กรุณาเลือกประเทศของคุณ"
  775. }
  776. },
  777. "newSignup": {
  778. "item9": "รหัสยืนยันอีเมล",
  779. "item10": "กรอกรหัสยืนยันจากอีเมลของคุณ",
  780. "item11": "ขอรหัส"
  781. },
  782. "CodeSuccess": "ส่งรหัสสำเร็จ",
  783. "agreemnet8": "อีเมลนี้มีอยู่แล้ว",
  784. "code": "รหัสยืนยันอีเมล",
  785. "getCode": "ขอรหัส",
  786. "waitCode1": "รอ ",
  787. "waitCode2": "วินาที ",
  788. "p1": "หมายเลขอ้างอิงคำสั่งซื้อ",
  789. "p2": "กรุณากรอก CVV",
  790. "p3": "กรุณากรอก PIN",
  791. "p4": "กรุณากรอกรหัสยืนยันอีเมล",
  792. "p5": "หมายเลขอ้างอิงคำสั่งซื้อ",
  793. "t1": "เพื่อความปลอดภัยของเงินทุนและการชำระเงินที่ราบรื่น โปรดทำตามขั้นตอนต่อไปนี้:",
  794. "t2": "ยืนยันหมายเลขอ้างอิงคำสั่งซื้อเพื่อให้แน่ใจว่าข้อมูลถูกต้อง",
  795. "t3": "หากเลือกชำระเงินด้วยบัตร ระบบจะขอให้ยืนยัน CVV และ PIN",
  796. "t4": "โปรดตรวจสอบอีเมลและกรอกรหัสเพื่อดำเนินการต่อ",
  797. "t5": "เมื่อข้อมูลถูกต้องแล้ว โปรดชำระเงินโดยเร็วเพื่อหลีกเลี่ยงการหมดเวลา",
  798. "t6": "ขอบคุณสำหรับความร่วมมือ ขอให้ท่านมีความสุขในการใช้งาน!",
  799. "PaymentDeadline": "เวลาที่เหลือสำหรับการชำระเงิน",
  800. "PaymentExpired": "การชำระเงินหมดเวลา กรุณาสั่งใหม่",
  801. "days": "วัน",
  802. "hours": "ชั่วโมง",
  803. "minutes": "นาที",
  804. "seconds": "วินาที",
  805. "Copy": "คัดลอก",
  806. "CopySuccess": "คัดลอกสำเร็จ",
  807. "CopyFailed": "คัดลอกไม่สำเร็จ",
  808. "Msg": {
  809. "Cancle": "ยืนยันที่จะยกเลิกใช่หรือไม่?",
  810. "SystemPrompt": "ข้อความจากระบบ",
  811. "pagesStatus": "คำสั่งซื้อถูกยกเลิกแล้ว",
  812. "callbackStatus": "คำสั่งซื้อนี้หมดอายุแล้ว โปรดสั่งใหม่"
  813. }
  814. },
  815. ar: {
  816. "Title1": "حساب الإيداع",
  817. "Title2": "طريقة الإيداع",
  818. "Title3": "مبلغ الإيداع",
  819. "Title10": "حساب السحب",
  820. "Title4": "طريقة السحب",
  821. "Title5": "مبلغ السحب",
  822. "Title6": "حساب الدفع",
  823. "Title7": "يرجى اختيار حساب الدفع",
  824. "Title8": "دفع",
  825. "Title9": "إلغاء",
  826. "cardNo": "رقم البطاقة",
  827. "bal": "الرصيد",
  828. "bagBal": "رصيد المحفظة",
  829. "format": "عدد غير سالب بحد أقصى منزلتين عشريتين",
  830. "format1": "عدد صحيح موجب",
  831. "amount": "يجب أن يكون المبلغ ",
  832. "amount1": "رصيد حساب الدفع غير كافٍ",
  833. "Confirm": "تأكيد",
  834. "Cancel": "إلغاء",
  835. "Des1": "تم الإرسال، في انتظار المراجعة...",
  836. "Des38": "جارٍ المعالجة، يرجى الانتظار...",
  837. "vaildate": {
  838. "email": {
  839. "format": "صيغة البريد الإلكتروني غير صحيحة",
  840. "empty": "لا يمكن أن يكون البريد الإلكتروني فارغًا",
  841. "exist": "البريد الإلكتروني موجود بالفعل"
  842. },
  843. "country": {
  844. "empty": "يرجى اختيار دولتك"
  845. }
  846. },
  847. "newSignup": {
  848. "item9": "رمز التحقق من البريد الإلكتروني",
  849. "item10": "أدخل رمز التحقق من بريدك الإلكتروني",
  850. "item11": "الحصول على الرمز"
  851. },
  852. "CodeSuccess": "تم إرسال رمز التحقق بنجاح",
  853. "agreemnet8": "البريد الإلكتروني موجود بالفعل",
  854. "code": "رمز التحقق من البريد الإلكتروني",
  855. "getCode": "الحصول على الرمز",
  856. "waitCode1": "انتظار ",
  857. "waitCode2": " ثانية ",
  858. "p1": "رقم مرجع الطلب",
  859. "p2": "يرجى إدخال CVV",
  860. "p3": "يرجى إدخال PIN",
  861. "p4": "يرجى إدخال رمز التحقق من البريد الإلكتروني",
  862. "p5": "رقم مرجع الطلب",
  863. "t1": "لضمان أمان أموالك وإتمام عملية الدفع بسلاسة، يرجى اتباع الخطوات التالية:",
  864. "t2": "تحقق من رقم مرجع الطلب للتأكد من صحة معلومات الدفع.",
  865. "t3": "إذا اخترت الدفع بواسطة البطاقة البنكية، سيطلب النظام التحقق من CVV و PIN لضمان أمان المعاملة.",
  866. "t4": "يرجى التحقق من بريدك الإلكتروني للحصول على رمز التحقق وإدخاله فورًا للمتابعة.",
  867. "t5": "بعد التأكد من صحة جميع المعلومات، يرجى إتمام الدفع في أسرع وقت لتجنب انتهاء المهلة.",
  868. "t6": "شكرًا لتعاونكم، ونتمنى لكم تجربة ممتعة!",
  869. "PaymentDeadline": "الوقت المتبقي لإتمام الدفع",
  870. "PaymentExpired": "انتهت صلاحية الدفع، يرجى إعادة الطلب",
  871. "days": "يوم",
  872. "hours": "ساعة",
  873. "minutes": "دقيقة",
  874. "seconds": "ثانية",
  875. "Copy": "نسخ",
  876. "CopySuccess": "تم النسخ بنجاح",
  877. "CopyFailed": "فشل النسخ",
  878. "Msg": {
  879. "Cancle": "هل أنت متأكد من الإلغاء؟",
  880. "SystemPrompt": "تنبيه النظام",
  881. "pagesStatus": "تم إلغاء الطلب",
  882. "callbackStatus": "انتهت صلاحية هذا الطلب، يرجى تقديم طلب جديد"
  883. }
  884. },
  885. ko: {
  886. "Title1": "입금 계좌",
  887. "Title2": "입금 방식",
  888. "Title3": "입금 금액",
  889. "Title10": "출금 계좌",
  890. "Title4": "출금 방식",
  891. "Title5": "출금 금액",
  892. "Title6": "결제 계좌",
  893. "Title7": "결제 계좌를 선택하세요",
  894. "Title8": "결제",
  895. "Title9": "취소",
  896. "cardNo": "카드 번호",
  897. "bal": "잔액",
  898. "bagBal": "지갑 잔액",
  899. "format": "최대 소수점 두 자리의 음이 아닌 숫자",
  900. "format1": "양의 정수",
  901. "amount": "금액은 ",
  902. "amount1": "결제 계좌 잔액이 부족합니다",
  903. "Confirm": "확인",
  904. "Cancel": "취소",
  905. "Des1": "제출 완료, 검토 중...",
  906. "Des38": "처리 중입니다. 잠시만 기다려주세요...",
  907. "vaildate": {
  908. "email": {
  909. "format": "잘못된 이메일 형식입니다",
  910. "empty": "이메일은 비워둘 수 없습니다",
  911. "exist": "이미 등록된 이메일입니다"
  912. },
  913. "country": {
  914. "empty": "거주 국가를 선택해주세요"
  915. }
  916. },
  917. "newSignup": {
  918. "item9": "이메일 인증 코드",
  919. "item10": "이메일로 받은 인증 코드를 입력하세요",
  920. "item11": "코드 받기"
  921. },
  922. "CodeSuccess": "인증 코드가 성공적으로 전송되었습니다",
  923. "agreemnet8": "이메일이 이미 존재합니다",
  924. "code": "이메일 인증 코드",
  925. "getCode": "코드 받기",
  926. "waitCode1": "대기 ",
  927. "waitCode2": "초 ",
  928. "p1": "주문 조회 번호",
  929. "p2": "CVV를 입력해주세요",
  930. "p3": "PIN을 입력해주세요",
  931. "p4": "이메일 인증 코드를 입력해주세요",
  932. "p5": "주문 조회 번호",
  933. "t1": "자금의 안전을 위해 아래 단계를 순서대로 진행해주세요:",
  934. "t2": "결제 정보가 정확한지 주문 조회 번호를 확인하세요.",
  935. "t3": "카드 결제를 선택하신 경우 CVV와 PIN 확인이 필요합니다.",
  936. "t4": "이메일을 확인하여 인증 코드를 입력해주세요.",
  937. "t5": "모든 정보 확인 후 가능한 빨리 결제를 완료해주세요.",
  938. "t6": "협조해주셔서 감사합니다. 즐거운 이용 되세요!",
  939. "PaymentDeadline": "남은 결제 시간",
  940. "PaymentExpired": "결제가 만료되었습니다. 다시 주문해주세요",
  941. "days": "일",
  942. "hours": "시간",
  943. "minutes": "분",
  944. "seconds": "초",
  945. "Copy": "복사",
  946. "CopySuccess": "복사되었습니다",
  947. "CopyFailed": "복사 실패",
  948. "Msg": {
  949. "Cancle": "취소하시겠습니까?",
  950. "SystemPrompt": "시스템 알림",
  951. "pagesStatus": "주문이 취소되었습니다",
  952. "callbackStatus": "이 주문은 만료되었습니다. 새로 주문해 주세요"
  953. }
  954. },
  955. pt: {
  956. "Title1": "Conta de Depósito",
  957. "Title2": "Método de Depósito",
  958. "Title3": "Valor do Depósito",
  959. "Title10": "Conta de Saque",
  960. "Title4": "Método de Saque",
  961. "Title5": "Valor do Saque",
  962. "Title6": "Conta de Pagamento",
  963. "Title7": "Selecione a conta de pagamento",
  964. "Title8": "Pagar",
  965. "Title9": "Cancelar",
  966. "cardNo": "Número do Cartão",
  967. "bal": "Saldo",
  968. "bagBal": "Saldo da Carteira",
  969. "format": "Número não negativo com até duas casas decimais",
  970. "format1": "Número inteiro positivo",
  971. "amount": "O valor deve ser ",
  972. "amount1": "Saldo insuficiente na conta de pagamento",
  973. "Confirm": "Confirmar",
  974. "Cancel": "Cancelar",
  975. "Des1": "Enviado com sucesso, aguardando revisão...",
  976. "Des38": "Processando, por favor aguarde...",
  977. "vaildate": {
  978. "email": {
  979. "format": "Formato de e-mail inválido",
  980. "empty": "O e-mail não pode estar vazio",
  981. "exist": "O e-mail já existe"
  982. },
  983. "country": {
  984. "empty": "Por favor, selecione o seu país"
  985. }
  986. },
  987. "newSignup": {
  988. "item9": "Código de verificação por e-mail",
  989. "item10": "Digite o código enviado para o seu e-mail",
  990. "item11": "Obter código"
  991. },
  992. "CodeSuccess": "Código enviado com sucesso",
  993. "agreemnet8": "O e-mail já existe",
  994. "code": "Código de e-mail",
  995. "getCode": "Obter código",
  996. "waitCode1": "Aguarde ",
  997. "waitCode2": "s ",
  998. "p1": "Número de referência do pedido",
  999. "p2": "Digite o CVV",
  1000. "p3": "Digite o PIN",
  1001. "p4": "Digite o código de verificação do e-mail",
  1002. "p5": "Número de referência do pedido",
  1003. "t1": "Para garantir a segurança dos seus fundos e concluir o pagamento, siga os passos abaixo:",
  1004. "t2": "Confirme o número de referência para garantir que as informações estão corretas.",
  1005. "t3": "Se optar por pagar com cartão, será necessário verificar o CVV e o PIN.",
  1006. "t4": "Verifique o seu e-mail e insira o código recebido.",
  1007. "t5": "Após confirmar todas as informações, conclua o pagamento o quanto antes.",
  1008. "t6": "Obrigado pela cooperação. Aproveite a sua experiência!",
  1009. "PaymentDeadline": "Tempo restante para pagar",
  1010. "PaymentExpired": "Pagamento expirou, faça um novo pedido",
  1011. "days": "dia(s)",
  1012. "hours": "hora(s)",
  1013. "minutes": "minuto(s)",
  1014. "seconds": "segundo(s)",
  1015. "Copy": "Copiar",
  1016. "CopySuccess": "Copiado",
  1017. "CopyFailed": "Falha ao copiar",
  1018. "Msg": {
  1019. "Cancle": "Tem certeza de que deseja cancelar?",
  1020. "SystemPrompt": "Aviso do sistema",
  1021. "pagesStatus": "O pedido foi cancelado",
  1022. "callbackStatus": "Este pedido expirou, faça um novo pedido"
  1023. }
  1024. },
  1025. fa: {
  1026. "Title1": "حساب واریز",
  1027. "Title2": "روش واریز",
  1028. "Title3": "مبلغ واریز",
  1029. "Title10": "حساب برداشت",
  1030. "Title4": "روش برداشت",
  1031. "Title5": "مبلغ برداشت",
  1032. "Title6": "حساب پرداخت",
  1033. "Title7": "لطفاً حساب پرداخت را انتخاب کنید",
  1034. "Title8": "پرداخت",
  1035. "Title9": "لغو",
  1036. "cardNo": "شماره کارت",
  1037. "bal": "موجودی",
  1038. "bagBal": "موجودی کیف پول",
  1039. "format": "عدد غیرمنفی با حداکثر دو رقم اعشار",
  1040. "format1": "عدد صحیح مثبت",
  1041. "amount": "مبلغ باید ",
  1042. "amount1": "موجودی حساب پرداخت کافی نیست",
  1043. "Confirm": "تأیید",
  1044. "Cancel": "لغو",
  1045. "Des1": "با موفقیت ارسال شد، در انتظار بررسی...",
  1046. "Des38": "در حال پردازش، لطفاً صبر کنید...",
  1047. "vaildate": {
  1048. "email": {
  1049. "format": "فرمت ایمیل نادرست است",
  1050. "empty": "ایمیل نمی‌تواند خالی باشد",
  1051. "exist": "ایمیل قبلاً ثبت شده است"
  1052. },
  1053. "country": {
  1054. "empty": "لطفاً کشور محل سکونت خود را انتخاب کنید"
  1055. }
  1056. },
  1057. "newSignup": {
  1058. "item9": "کد تأیید ایمیل",
  1059. "item10": "کد تأیید ارسال‌شده به ایمیل خود را وارد کنید",
  1060. "item11": "دریافت کد"
  1061. },
  1062. "CodeSuccess": "کد با موفقیت ارسال شد",
  1063. "agreemnet8": "ایمیل قبلاً موجود است",
  1064. "code": "کد تأیید ایمیل",
  1065. "getCode": "دریافت کد",
  1066. "waitCode1": "انتظار ",
  1067. "waitCode2": " ثانیه ",
  1068. "p1": "شماره پیگیری سفارش",
  1069. "p2": "لطفاً CVV را وارد کنید",
  1070. "p3": "لطفاً PIN را وارد کنید",
  1071. "p4": "لطفاً کد تأیید ایمیل را وارد کنید",
  1072. "p5": "شماره پیگیری سفارش",
  1073. "t1": "برای اطمینان از امنیت وجوه شما و تکمیل موفقیت‌آمیز پرداخت، لطفاً مراحل زیر را انجام دهید:",
  1074. "t2": "شماره پیگیری سفارش خود را بررسی کنید تا از صحت اطلاعات پرداخت اطمینان حاصل شود.",
  1075. "t3": "در صورت انتخاب پرداخت با کارت بانکی، سیستم از شما می‌خواهد CVV و PIN را برای افزایش امنیت وارد کنید.",
  1076. "t4": "لطفاً ایمیل خود را بررسی کرده و کد تأیید را وارد کنید تا بتوانید ادامه دهید.",
  1077. "t5": "پس از بررسی اطلاعات، لطفاً هرچه سریع‌تر پرداخت را تکمیل کنید تا از انقضا یا تغییر مبلغ جلوگیری شود.",
  1078. "t6": "از همکاری شما سپاسگزاریم. روز خوبی داشته باشید!",
  1079. "PaymentDeadline": "زمان باقی‌مانده برای پرداخت",
  1080. "PaymentExpired": "مهلت پرداخت به پایان رسیده، لطفاً دوباره سفارش دهید",
  1081. "days": "روز",
  1082. "hours": "ساعت",
  1083. "minutes": "دقیقه",
  1084. "seconds": "ثانیه",
  1085. "Copy": "کپی",
  1086. "CopySuccess": "کپی شد",
  1087. "CopyFailed": "کپی ناموفق بود",
  1088. "Msg": {
  1089. "Cancle": "آیا از لغو اطمینان دارید؟",
  1090. "SystemPrompt": "پیام سیستم",
  1091. "pagesStatus": "سفارش لغو شد",
  1092. "callbackStatus": "این سفارش منقضی شده است، لطفاً دوباره سفارش دهید"
  1093. }
  1094. },
  1095. tr: {
  1096. "Title1": "Mevduat Hesabı",
  1097. "Title2": "Mevduat Yöntemi",
  1098. "Title3": "Mevduat Tutarı",
  1099. "Title10": "Çekim Hesabı",
  1100. "Title4": "Çekim Yöntemi",
  1101. "Title5": "Çekim Tutarı",
  1102. "Title6": "Ödeme Hesabı",
  1103. "Title7": "Lütfen ödeme hesabını seçin",
  1104. "Title8": "Öde",
  1105. "Title9": "İptal",
  1106. "cardNo": "Kart Numarası",
  1107. "bal": "Bakiye",
  1108. "bagBal": "Cüzdan Bakiyesi",
  1109. "format": "En fazla iki ondalıklı negatif olmayan sayı",
  1110. "format1": "Pozitif tam sayı",
  1111. "amount": "Tutar ",
  1112. "amount1": "Ödeme hesabı bakiyesi yetersiz",
  1113. "Confirm": "Onayla",
  1114. "Cancel": "İptal",
  1115. "Des1": "Gönderildi, incelemede...",
  1116. "Des38": "İşleniyor, lütfen bekleyin...",
  1117. "vaildate": {
  1118. "email": {
  1119. "format": "Geçersiz e-posta formatı",
  1120. "empty": "E-posta boş olamaz",
  1121. "exist": "E-posta zaten mevcut"
  1122. },
  1123. "country": {
  1124. "empty": "Lütfen ülkenizi seçin"
  1125. }
  1126. },
  1127. "newSignup": {
  1128. "item9": "E-posta doğrulama kodu",
  1129. "item10": "E-posta doğrulama kodunu girin",
  1130. "item11": "Kod al"
  1131. },
  1132. "CodeSuccess": "Kod başarıyla gönderildi",
  1133. "agreemnet8": "E-posta zaten mevcut",
  1134. "code": "E-posta kodu",
  1135. "getCode": "Kod al",
  1136. "waitCode1": "Bekle ",
  1137. "waitCode2": "sn ",
  1138. "p1": "Sipariş referans numarası",
  1139. "p2": "Lütfen CVV girin",
  1140. "p3": "Lütfen PIN girin",
  1141. "p4": "Lütfen e-posta doğrulama kodunu girin",
  1142. "p5": "Sipariş referans numarası",
  1143. "t1": "Fon güvenliğiniz için ödeme işlemini aşağıdaki adımlarla tamamlayınız:",
  1144. "t2": "Ödeme bilgilerinin doğruluğu için sipariş referans numarasını kontrol edin.",
  1145. "t3": "Kartla ödeme seçtiğinizde sistem CVV ve PIN doğrulaması isteyecektir.",
  1146. "t4": "Lütfen e-postanızı kontrol ederek doğrulama kodunu girin.",
  1147. "t5": "Bilgileri doğruladıktan sonra zaman aşımını önlemek için ödemeyi hızlıca tamamlayın.",
  1148. "t6": "İşbirliğiniz için teşekkür ederiz. İyi kullanımlar!",
  1149. "PaymentDeadline": "Kalan ödeme süresi",
  1150. "PaymentExpired": "Ödeme süresi doldu, lütfen yeniden sipariş verin",
  1151. "days": "gün",
  1152. "hours": "saat",
  1153. "minutes": "dakika",
  1154. "seconds": "saniye",
  1155. "Copy": "Kopyala",
  1156. "CopySuccess": "Kopyalandı",
  1157. "CopyFailed": "Kopyalama başarısız",
  1158. "Msg": {
  1159. "Cancle": "İptal etmek istediğinize emin misiniz?",
  1160. "SystemPrompt": "Sistem uyarısı",
  1161. "pagesStatus": "Sipariş iptal edildi",
  1162. "callbackStatus": "Bu siparişin süresi doldu, lütfen yeniden sipariş verin"
  1163. }
  1164. }
  1165. };
  1166. let config = {
  1167. Pattern: {
  1168. Password:
  1169. /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?!.*([~!@&%$^\\(\\)#_]).*\\1.*\\1.*\\1)[A-Za-z0-9~!@&%$^\\(\\)#_]{8,16}$/,
  1170. Email: /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/,
  1171. },
  1172. };
  1173. let vm = new Vue({
  1174. el: "#paycard",
  1175. data() {
  1176. return {
  1177. dialogCheck: false,
  1178. dialogCheckOK: false,
  1179. dialogCheckWait: false,
  1180. Host80: "",
  1181. Host04: "",
  1182. loginOptions: [],
  1183. //多语言
  1184. langList: {
  1185. en: "ENGLISH",
  1186. cn: "中文简体",
  1187. zhHant: "中文繁體",
  1188. vn: "Tiếng Việt",
  1189. de: "Deutsch",
  1190. es: "Español",
  1191. id: "Indonesian",
  1192. ms: "Melayu",
  1193. th: "ภาษาไทย",
  1194. ar: "العربية",
  1195. ko: "한국어",
  1196. pt: "Português",
  1197. fa: "زبان پارسی",
  1198. tr: "Türkçe",
  1199. },
  1200. tips: ['t2', 't3', 't4', 't5'],
  1201. language: "cn",
  1202. lang: {},
  1203. RES: '',
  1204. isShow: false,
  1205. rules: {},
  1206. form: { amount: "", deductionAccount: '' },
  1207. userInfo: {},
  1208. timer: 59,
  1209. interval: null,
  1210. getCodeString: "",
  1211. countdownInterval: null,
  1212. timeLeft: 0
  1213. };
  1214. },
  1215. computed: {
  1216. // 当前选择扣款账户余额
  1217. currentBalance() {
  1218. if (!this.form.deductionAccount || !this.loginOptions.length) {
  1219. return 0;
  1220. }
  1221. const target = this.loginOptions.find(
  1222. (item) => item.type + "/" + item.cardNumber === this.form.deductionAccount
  1223. );
  1224. return target ? Number(target.balance) || 0 : 0;
  1225. },
  1226. loginOptionsDisplay() {
  1227. return this.loginOptions.map(item => {
  1228. let label = "";
  1229. if (item.type == "1") {
  1230. label = `${this.lang["cardNo"]} - ${item.cardNumber} ${this.lang["bal"]}: ${item.balance}`;
  1231. } else {
  1232. label = `${this.lang["bagBal"]}: ${item.balance}`;
  1233. }
  1234. return {
  1235. ...item,
  1236. value: item.type + '/' + item.cardNumber,
  1237. lable: label
  1238. };
  1239. });
  1240. },
  1241. // 余额是否不足
  1242. isBalanceInsufficient() {
  1243. const amount = Number(this.form.amount) || 0;
  1244. return amount > this.currentBalance;
  1245. },
  1246. countdownText() {
  1247. return this.timeLeft > 0
  1248. ? this.formatCountdown(this.timeLeft)
  1249. : this.lang.PaymentExpired;
  1250. },
  1251. pagesStatus() {
  1252. return this.form.status == "5";
  1253. },
  1254. callbackStatus() {
  1255. return this.form.callbackStatus == "2";
  1256. }
  1257. },
  1258. methods: {
  1259. //验证码
  1260. async getCode1(val) {
  1261. const { email, country } = this.userInfo;
  1262. if (val) {
  1263. let res = await Api.sendCode(this.Host04, {
  1264. email, country
  1265. }, this.form.token, this.language);
  1266. if (res.ok) {
  1267. this.$message({
  1268. message: this.lang.CodeSuccess,
  1269. type: 'success'
  1270. });
  1271. } else {
  1272. if (res.msg == "邮箱已存在" || res.msg == "Mailbox already exists") {
  1273. this.$pigeon.MessageError(this.lang.agreemnet8);
  1274. } else {
  1275. this.$pigeon.MessageError(res.msg);
  1276. }
  1277. }
  1278. }
  1279. },
  1280. // 获取验证码
  1281. getCode: async function (val) {
  1282. if (val) {
  1283. if (!this.userInfo.country) {
  1284. this.$message.error(this.lang.vaildate.country.empty);
  1285. return;
  1286. }
  1287. if (!this.userInfo.email) {
  1288. this.$message.error(this.lang.vaildate.email.empty);
  1289. return;
  1290. }
  1291. if (!config.Pattern.Email.test(this.userInfo.email)) {
  1292. this.$message.error(this.lang.vaildate.email.format);
  1293. return;
  1294. }
  1295. }
  1296. this.getCodeString =
  1297. this.lang.waitCode1 +
  1298. this.timer +
  1299. this.lang.waitCode2;
  1300. let that = this;
  1301. if (!this.interval) {
  1302. this.getCode1(val);
  1303. this.interval = setInterval(() => {
  1304. that.timer--;
  1305. sessionStorage.setItem("timer", that.timer);
  1306. that.getCodeString =
  1307. this.lang.waitCode1 +
  1308. that.timer +
  1309. this.lang.waitCode2;
  1310. if (that.timer == 0) {
  1311. this.getCodeString = this.lang.newSignup.item11;
  1312. clearInterval(that.interval);
  1313. that.interval = null;
  1314. that.timer = 59;
  1315. sessionStorage.setItem("timer", that.timer);
  1316. }
  1317. }, 1000);
  1318. }
  1319. },
  1320. // 初始化定时器
  1321. initTimer: function () {
  1322. let t = sessionStorage.getItem("timer") || this.timer;
  1323. if (t == 59) {
  1324. this.getCodeString = this.lang.newSignup.item11;
  1325. } else {
  1326. this.timer = sessionStorage.getItem("timer");
  1327. this.getCode(0);
  1328. }
  1329. },
  1330. // 获取账户下拉
  1331. async getAccountDropdown() {
  1332. const res = await Api.getAccountDropdown(this.Host80, this.form.token, this.language);
  1333. if (res.ok) {
  1334. this.loginOptions = res.data.map((item) => ({
  1335. type: item.type,
  1336. cardNumber: item.cardNumber,
  1337. balance: item.balance,
  1338. disabled: item.balance == 0,
  1339. }));
  1340. this.userInfo = res.data[0]
  1341. } else {
  1342. this.loginOptions = []
  1343. }
  1344. },
  1345. changeAccount(e) {
  1346. let [type, cardNumber] = e.split("/");
  1347. this.form = { ...this.form, type, cardNumber };
  1348. // 触发余额校验
  1349. this.$nextTick(() => {
  1350. this.$refs.form.validateField('deductionAccount');
  1351. });
  1352. },
  1353. // 用户详情
  1354. async userSingle() {
  1355. const res = await Api.userSingle(this.Host80, this.form.token, this.language);
  1356. if (res.ok) {
  1357. this.userInfo = res.data
  1358. }
  1359. },
  1360. async payCard() {
  1361. try {
  1362. this.$refs.form.validate(async (valid) => {
  1363. if (!valid) {
  1364. return;
  1365. }
  1366. // 倒计时到期,禁止继续支付
  1367. if (this.timeLeft == 0) {
  1368. this.$message.error(this.lang.PaymentExpired || '支付已超时,请重新下单');
  1369. return;
  1370. }
  1371. // 余额校验
  1372. if (this.isBalanceInsufficient) {
  1373. this.$message.error(this.lang.amount1);
  1374. return;
  1375. }
  1376. const { type, cardNumber, cvv, pin, emailCode, serial } = this.form;
  1377. const { email } = this.userInfo;
  1378. this.dialogCheckWait = true;
  1379. const res = await Api.payCard(this.Host04, { type, cardNumber, cvv, pin, emailCode, serial, email }, this.form.token, this.language);
  1380. this.dialogCheckWait = false;
  1381. if (res.ok && res.data.code == 200) {
  1382. this.dialogCheckOK = true;
  1383. this.form.submitStatus = 1
  1384. if (this.countdownInterval) {
  1385. clearInterval(this.countdownInterval);
  1386. this.countdownInterval = null;
  1387. }
  1388. } else {
  1389. this.RES = res.msg || res.data.msg;
  1390. this.dialogCheck = true;
  1391. }
  1392. });
  1393. } catch (err) {
  1394. console.log("校验失败或异常:", err);
  1395. return false;
  1396. }
  1397. },
  1398. // 订单详情
  1399. async getDepositSerial() {
  1400. try {
  1401. const res = await Api.getDepositSerial(this.Host04, { serial: this.form.serial }, this.form.token, this.language);
  1402. if (res.ok) {
  1403. this.form = { ...this.form, ...res.data }
  1404. // 启动倒计时更新定时器
  1405. this.startCountdown();
  1406. this.$nextTick(() => {
  1407. if (this.form.callbackStatus == "2") {
  1408. this.isShow = true
  1409. } else if (this.form.submitStatus == 1) {
  1410. this.Pay()
  1411. this.isShow = false
  1412. } else {
  1413. this.isShow = true
  1414. }
  1415. });
  1416. }
  1417. } catch (err) {
  1418. console.log("校验失败或异常:", err);
  1419. return false;
  1420. }
  1421. },
  1422. // 语言切换函数
  1423. chooseLang(key) {
  1424. this.lang = content[key];
  1425. this.language = key;
  1426. sessionStorage.setItem("lang", this.language);
  1427. this.setRules();
  1428. // 切换语言后刷新 getCodeString,使按钮文案随语言变化
  1429. if (this.timer == 59 && !this.interval) {
  1430. this.getCodeString = this.lang.newSignup.item11;
  1431. } else {
  1432. this.getCodeString = this.lang.waitCode1 + this.timer + this.lang.waitCode2;
  1433. }
  1434. this.$nextTick(() => {
  1435. this.$refs.form.clearValidate();
  1436. });
  1437. },
  1438. closeDia() {
  1439. this.dialogCheckOK = false;
  1440. this.$nextTick(() => {
  1441. if (this.form.submitStatus == 1) {
  1442. this.Pay()
  1443. }
  1444. });
  1445. },
  1446. closeDia1() { this.dialogCheck = false; this.getDepositSerial() },
  1447. //成功跳转页面
  1448. Pay() {
  1449. window.location.href = this.Host80 + "/payment.html";
  1450. },
  1451. //取消订单
  1452. async Cancle() {
  1453. try {
  1454. this.$confirm(this.lang.Msg.Cancle, this.lang.Msg.SystemPrompt, {
  1455. confirmButtonText: this.lang.Confirm,
  1456. cancelButtonText: this.lang.Cancel,
  1457. type: 'warning'
  1458. }).then(async () => {
  1459. const { id } = this.form;
  1460. const res = await Api.payCancel(this.Host04, { id }, this.form.token, this.language);
  1461. if (res.ok) {
  1462. this.getDepositSerial()
  1463. if (this.countdownInterval) {
  1464. clearInterval(this.countdownInterval);
  1465. this.countdownInterval = null;
  1466. }
  1467. }
  1468. }).catch(() => {
  1469. });
  1470. } catch (err) {
  1471. console.log("校验失败或异常:", err);
  1472. return false;
  1473. }
  1474. },
  1475. copySerial() {
  1476. const serial = this.form.serial;
  1477. if (!serial) return;
  1478. if (navigator.clipboard && window.isSecureContext) {
  1479. // 使用 Clipboard API
  1480. navigator.clipboard.writeText(serial).then(() => {
  1481. this.$message.success(this.lang.CopySuccess || '复制成功');
  1482. }).catch(err => {
  1483. console.error('复制失败:', err);
  1484. this.copySerialFallback(serial);
  1485. });
  1486. } else {
  1487. // 降级方案
  1488. this.copySerialFallback(serial);
  1489. }
  1490. },
  1491. copySerialFallback(serial) {
  1492. const textarea = document.createElement('textarea');
  1493. textarea.value = serial;
  1494. textarea.setAttribute('readonly', '');
  1495. textarea.style.position = 'absolute';
  1496. textarea.style.left = '-9999px';
  1497. document.body.appendChild(textarea);
  1498. textarea.select();
  1499. try {
  1500. const successful = document.execCommand('copy');
  1501. if (successful) {
  1502. this.$message.success(this.lang.CopySuccess || '复制成功');
  1503. } else {
  1504. this.$message.error(this.lang.CopyFailed || '复制失败');
  1505. }
  1506. } catch (err) {
  1507. console.error('复制失败:', err);
  1508. this.$message.error(this.lang.CopyFailed || '复制失败');
  1509. }
  1510. document.body.removeChild(textarea);
  1511. },
  1512. initCountdown() {
  1513. if (!this.form.payTime || !this.form.nowTime) {
  1514. this.timeLeft = 0;
  1515. return;
  1516. }
  1517. // Safari / iOS 兼容
  1518. const expire = new Date(
  1519. this.form.payTime.replace(/-/g, '/')
  1520. ).getTime();
  1521. const serverNow = new Date(
  1522. this.form.nowTime.replace(/-/g, '/')
  1523. ).getTime();
  1524. const diff = Math.floor((expire - serverNow) / 1000);
  1525. this.timeLeft = diff > 0 ? diff : 0;
  1526. },
  1527. /* =============================
  1528. * 启动倒计时
  1529. * ============================= */
  1530. startCountdown() {
  1531. this.clearCountdown();
  1532. this.initCountdown();
  1533. if (this.timeLeft <= 0) return;
  1534. this.countdownInterval = setInterval(() => {
  1535. if (this.timeLeft <= 0) {
  1536. this.clearCountdown();
  1537. return;
  1538. }
  1539. this.timeLeft--;
  1540. }, 1000);
  1541. },
  1542. /* =============================
  1543. * 清理定时器
  1544. * ============================= */
  1545. clearCountdown() {
  1546. if (this.countdownInterval) {
  1547. clearInterval(this.countdownInterval);
  1548. this.countdownInterval = null;
  1549. }
  1550. },
  1551. /* =============================
  1552. * 格式化倒计时展示
  1553. * ============================= */
  1554. formatCountdown(seconds) {
  1555. const days = Math.floor(seconds / 86400);
  1556. const hours = Math.floor((seconds % 86400) / 3600);
  1557. const minutes = Math.floor((seconds % 3600) / 60);
  1558. const secs = seconds % 60;
  1559. const daysText = this.lang.days || '天';
  1560. const hoursText = this.lang.hours || '小时';
  1561. const minutesText = this.lang.minutes || '分钟';
  1562. const secondsText = this.lang.seconds || '秒';
  1563. if (days > 0) {
  1564. return `${days}${daysText} ${hours}${hoursText} ${minutes}${minutesText}`;
  1565. } else if (hours > 0) {
  1566. return `${hours}${hoursText} ${minutes}${minutesText} ${secs}${secondsText}`;
  1567. } else {
  1568. return `${String(minutes).padStart(2, '0')}:${String(secs).padStart(2, '0')}`;
  1569. }
  1570. },
  1571. setRules() {
  1572. this.rules = {
  1573. deductionAccount: [
  1574. {
  1575. required: true,
  1576. message: this.lang['Title7'],
  1577. trigger: "change",
  1578. },
  1579. {
  1580. validator: (rule, value, callback) => {
  1581. if (!value) {
  1582. callback();
  1583. return;
  1584. }
  1585. // 检查余额是否足够
  1586. if (this.isBalanceInsufficient) {
  1587. callback(new Error(this.lang.amount1));
  1588. } else {
  1589. callback();
  1590. }
  1591. },
  1592. trigger: "change",
  1593. },
  1594. ],
  1595. cvv: [
  1596. {
  1597. required: true,
  1598. message: this.lang['p2'],
  1599. trigger: "blur",
  1600. },
  1601. ],
  1602. pin: [
  1603. {
  1604. required: true,
  1605. message: this.lang['p3'],
  1606. trigger: "blur",
  1607. },
  1608. ],
  1609. emailCode: [
  1610. {
  1611. required: true,
  1612. message: this.lang['p4'],
  1613. trigger: "blur",
  1614. },
  1615. ],
  1616. };
  1617. }
  1618. },
  1619. mounted() {
  1620. let ht = window.location.protocol;
  1621. let ho = window.location.host.split('.')[1];
  1622. // this.Host04 = 'http://192.168.0.18:8004'
  1623. // this.Host80 = 'http://192.168.0.18:8000'
  1624. // this.Host04 = 'https:' + "//pay." + '44a5c8109e4' + ".com"
  1625. // this.Host80 = 'https:' + "//secure." + '44a5c8109e4' + ".com"
  1626. this.Host04 = ht + "//pay." + ho + ".com"
  1627. this.Host80 = ht + "//secure." + ho + ".com"
  1628. try {
  1629. const searchParams = new URLSearchParams(window.location.search);
  1630. const params = searchParams.get('params');
  1631. this.isShow = false
  1632. if (params) {
  1633. const str = parseParams(safeDecrypt(params));
  1634. this.form = {
  1635. ...this.form,
  1636. ...str,
  1637. }
  1638. this.language = this.form.lang;
  1639. sessionStorage.setItem("lang", this.language);
  1640. this.lang = content[this.form.lang];
  1641. if (!this.lang) {
  1642. setLang(this)
  1643. }
  1644. this.setRules()
  1645. this.getAccountDropdown()
  1646. // this.userSingle()
  1647. this.initTimer();
  1648. this.getDepositSerial()
  1649. }
  1650. } catch (error) {
  1651. console.error('解析URL参数时出错:', error);
  1652. }
  1653. },
  1654. beforeDestroy() {
  1655. this.clearCountdown();
  1656. },
  1657. });