|
|
@@ -0,0 +1,1686 @@
|
|
|
+function safeDecrypt(encryptedData) {
|
|
|
+ try {
|
|
|
+ // 检查数据是否为空或无效
|
|
|
+ if (!encryptedData || encryptedData === 'undefined' || encryptedData === 'null') {
|
|
|
+ console.warn('Empty or invalid encrypted data provided');
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+
|
|
|
+ // 尝试解密
|
|
|
+ const decrypted = CryptToJS.Decrypt(encryptedData);
|
|
|
+ return decrypted;
|
|
|
+ } catch (error) {
|
|
|
+ console.error('Decryption failed:', error.message);
|
|
|
+ // 返回空字符串而不是抛出错误
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+function setLang(that) {
|
|
|
+ var jsSrc = (navigator.language || navigator.browserLanguage);
|
|
|
+ console.log(jsSrc, 12);
|
|
|
+
|
|
|
+ // jsSrc = 'ko-IN'
|
|
|
+ if (jsSrc.indexOf('zh-C') >= 0) {
|
|
|
+ that.language = 'cn'
|
|
|
+ that.lang = content['cn'];
|
|
|
+ } else if (jsSrc.indexOf('es') >= 0) {
|
|
|
+ that.language = 'es'
|
|
|
+ that.lang = content['es'];
|
|
|
+ } else if (jsSrc.indexOf('zh-') >= 0) {
|
|
|
+ that.language = 'zhHant'
|
|
|
+ that.lang = content['zhHant'];
|
|
|
+ } else if (jsSrc.indexOf('ar') >= 0) {
|
|
|
+ that.language = 'ar'
|
|
|
+ that.lang = content['ar'];
|
|
|
+ } else if (jsSrc.indexOf('de') >= 0) {
|
|
|
+ that.language = 'de'
|
|
|
+ that.lang = content['de'];
|
|
|
+ } else if (jsSrc.indexOf('id') >= 0) {
|
|
|
+ that.language = 'id'
|
|
|
+ that.lang = content['id'];
|
|
|
+ } else if (jsSrc.indexOf('ko') >= 0 && jsSrc.indexOf('kok') == -1) {
|
|
|
+ that.language = 'ko'
|
|
|
+ that.lang = content['ko'];
|
|
|
+ } else if (jsSrc.indexOf('ms') >= 0) {
|
|
|
+ that.language = 'ms'
|
|
|
+ that.lang = content['ms'];
|
|
|
+ } else if (jsSrc.indexOf('th') >= 0) {
|
|
|
+ that.language = 'th'
|
|
|
+ that.lang = content['th'];
|
|
|
+ } else if (jsSrc.indexOf('vi') >= 0) {
|
|
|
+ that.language = 'vn'
|
|
|
+ that.lang = content['vn'];
|
|
|
+ } else if (jsSrc.indexOf('fa') >= 0) {
|
|
|
+ that.language = 'fa'
|
|
|
+ that.lang = content['fa'];
|
|
|
+ } else if (jsSrc.indexOf('pt') >= 0) {
|
|
|
+ that.language = 'pt'
|
|
|
+ that.lang = content['pt'];
|
|
|
+ } else if (jsSrc.indexOf('tr') >= 0) {
|
|
|
+ that.language = 'tr'
|
|
|
+ that.lang = content['tr'];
|
|
|
+ } else {
|
|
|
+ that.language = 'en'
|
|
|
+ that.lang = content['en'];
|
|
|
+ }
|
|
|
+ sessionStorage.setItem("lang", that.language);
|
|
|
+}
|
|
|
+
|
|
|
+function parseParams(str) {
|
|
|
+ const parts = str.split('/');
|
|
|
+ const tag = parts.pop();
|
|
|
+ const types = parts.pop();
|
|
|
+ const serial = parts.pop();
|
|
|
+ const lang = parts.pop();
|
|
|
+ const token = parts.join('/');
|
|
|
+ return {
|
|
|
+ token,
|
|
|
+ lang,
|
|
|
+ serial,
|
|
|
+ types,
|
|
|
+ tag
|
|
|
+ };
|
|
|
+}
|
|
|
+const SystemError = {
|
|
|
+ "cn": "网络状态不佳,请稍后重试。",
|
|
|
+ "en": "The network is not in good condition. Please try again later.",
|
|
|
+ "vn": "Mạng không được tốt lắm. Vui lòng thử lại sau.",
|
|
|
+}
|
|
|
+// 通用请求封装
|
|
|
+async function request(method, url, data = {}, token = "", language = "en") {
|
|
|
+ try {
|
|
|
+ const res = await axios({
|
|
|
+ method,
|
|
|
+ url,
|
|
|
+ data,
|
|
|
+ headers: token
|
|
|
+ ? { "access-token": token, language } // 正确 header
|
|
|
+ : { language }
|
|
|
+ });
|
|
|
+ if (res.data.code === 200) {
|
|
|
+ return { ok: true, data: res.data.data };
|
|
|
+ } else {
|
|
|
+ return { ok: false, msg: res.data.msg || SystemError[sessionStorage.setItem('lang')] || SystemError['en'] };
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ console.error("请求异常:", err);
|
|
|
+ return {
|
|
|
+ ok: false, msg:
|
|
|
+ SystemError[sessionStorage.setItem('lang')] || SystemError['en']
|
|
|
+ };
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+const Api = {
|
|
|
+ // 获取账户下拉
|
|
|
+ async getAccountDropdown(baseUrl, token, language) {
|
|
|
+ const res = await request("POST", baseUrl + "/wasabi/card/account/dropdown", {}, token, language);
|
|
|
+ if (!res.ok) return res;
|
|
|
+ return {
|
|
|
+ ok: true,
|
|
|
+ data: res.data
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ // 用户详情(同样格式)
|
|
|
+ async userSingle(baseUrl, token, language) {
|
|
|
+ const res = await request("POST", baseUrl + "/wasabi/merchant/user/single", {}, token, language);
|
|
|
+ if (!res.ok) return res;
|
|
|
+ return {
|
|
|
+ ok: true,
|
|
|
+ data: res.data
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ // 获取验证码
|
|
|
+ async sendCode(baseUrl, params, token, language) {
|
|
|
+ const res = await request("POST", baseUrl + "/ucard/send/email/code", params, token, language);
|
|
|
+ if (!res.ok) return res;
|
|
|
+ return {
|
|
|
+ ok: true,
|
|
|
+ data: res.data
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ // 支付
|
|
|
+ async payCard(baseUrl, params, token, language) {
|
|
|
+ const res = await request(
|
|
|
+ "POST",
|
|
|
+ baseUrl + '/ucard/pay',
|
|
|
+ params,
|
|
|
+ token,
|
|
|
+ language
|
|
|
+ );
|
|
|
+ if (!res.ok) return res;
|
|
|
+ return {
|
|
|
+ ok: true,
|
|
|
+ data: res.data
|
|
|
+ };
|
|
|
+ },
|
|
|
+ // 取消订单
|
|
|
+ async payCancel(baseUrl, params, token, language) {
|
|
|
+ const res = await request(
|
|
|
+ "POST",
|
|
|
+ baseUrl + '/finance/deposit/cancel',
|
|
|
+ params,
|
|
|
+ token,
|
|
|
+ language
|
|
|
+ );
|
|
|
+ if (!res.ok) return res;
|
|
|
+ return {
|
|
|
+ ok: true,
|
|
|
+ data: res.data
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ // 订单详情
|
|
|
+ async getDepositSerial(baseUrl, params, token, language) {
|
|
|
+ const res = await request(
|
|
|
+ "POST",
|
|
|
+ baseUrl + "/ucard/get/deposit/serial",
|
|
|
+ params,
|
|
|
+ token,
|
|
|
+ language
|
|
|
+ );
|
|
|
+ if (!res.ok) return res;
|
|
|
+ return {
|
|
|
+ ok: true,
|
|
|
+ data: res.data
|
|
|
+ };
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+var content = {
|
|
|
+ cn: {
|
|
|
+ "Title1": "存款账户",
|
|
|
+ "Title2": "存款方式",
|
|
|
+ "Title3": "存款金额",
|
|
|
+ "Title10": "提款账户",
|
|
|
+ "Title4": "提款方式",
|
|
|
+ "Title5": "提款金额",
|
|
|
+ "Title6": "付款账户",
|
|
|
+ "Title7": "请选择付款账户",
|
|
|
+ "Title8": "支付",
|
|
|
+ "Title9": "取消",
|
|
|
+ "cardNo": "卡号",
|
|
|
+ "bal": "余额",
|
|
|
+ "bagBal": "钱包余额",
|
|
|
+ "format": "最多两位小数的非负数",
|
|
|
+ "format1": "正整数",
|
|
|
+ "amount": "金额需是 ",
|
|
|
+ "amount1": "付款账户余额不足",
|
|
|
+ "Confirm": "确认",
|
|
|
+ "Cancel": "取消",
|
|
|
+ "Des1": "提交成功,待审核中...",
|
|
|
+ "Des38": "正在处理,请耐心等待...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "邮箱格式错误",
|
|
|
+ "empty": "邮箱不能为空",
|
|
|
+ "exist": "邮箱已存在"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "请选择您所在国家"
|
|
|
+ },
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "邮箱验证码",
|
|
|
+ "item10": "输入您的邮箱验证码",
|
|
|
+ "item11": "获取验证码",
|
|
|
+ },
|
|
|
+ "CodeSuccess": "验证码获取成功",
|
|
|
+ "agreemnet8": "电子邮件已存在",
|
|
|
+ "code": "邮箱验证码",
|
|
|
+ "getCode": "获取验证码",
|
|
|
+ "waitCode1": "等待 ",
|
|
|
+ "waitCode2": "s ",
|
|
|
+ "p1": "订单流水号",
|
|
|
+ "p2": "请输入CVV",
|
|
|
+ "p3": "请输入PIN",
|
|
|
+ "p4": "请输入邮箱验证码",
|
|
|
+ "p5": "订单流水号",
|
|
|
+ "t1": "为确保您的资金安全并顺利完成支付,请您依次完成以下步骤:",
|
|
|
+ "t2": "确认您的流水订单号,确保支付信息准确无误。",
|
|
|
+ "t3": "若选择 银行卡支付,系统将要求您验证 CVV 和 PIN,以保障交易安全。",
|
|
|
+ "t4": "请前往您的邮箱查看验证码并及时输入,以继续下一步操作。",
|
|
|
+ "t5": "核对所有信息无误后,请尽快完成支付,以避免订单超时或金额变动。",
|
|
|
+ "t6": "感谢您的配合,祝您使用愉快!",
|
|
|
+ "PaymentDeadline": "支付剩余时间",
|
|
|
+ "PaymentExpired": "支付已超时,请重新下单",
|
|
|
+ "days": "天",
|
|
|
+ "hours": "小时",
|
|
|
+ "minutes": "分钟",
|
|
|
+ "seconds": "秒",
|
|
|
+ "Copy": "复制",
|
|
|
+ "CopySuccess": "复制成功",
|
|
|
+ "CopyFailed": "复制失败",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "确定要取消吗?",
|
|
|
+ "SystemPrompt": "系统提示",
|
|
|
+ "pagesStatus": "订单已取消",
|
|
|
+ "callbackStatus": "此订单已失效,请重新下单",
|
|
|
+ }
|
|
|
+ },
|
|
|
+ zhHant: {
|
|
|
+ "Title1": "存款帳戶",
|
|
|
+ "Title2": "存款方式",
|
|
|
+ "Title3": "存款金額",
|
|
|
+ "Title10": "提款帳戶",
|
|
|
+ "Title4": "提款方式",
|
|
|
+ "Title5": "提款金額",
|
|
|
+ "Title6": "付款帳戶",
|
|
|
+ "Title7": "請選擇付款帳戶",
|
|
|
+ "Title8": "支付",
|
|
|
+ "Title9": "取消",
|
|
|
+ "cardNo": "卡號",
|
|
|
+ "bal": "餘額",
|
|
|
+ "bagBal": "錢包餘額",
|
|
|
+ "format": "最多兩位小數的非負數",
|
|
|
+ "format1": "正整數",
|
|
|
+ "amount": "金額需是 ",
|
|
|
+ "amount1": "付款帳戶餘額不足",
|
|
|
+ "Confirm": "確認",
|
|
|
+ "Cancel": "取消",
|
|
|
+ "Des1": "提交成功,待審核中...",
|
|
|
+ "Des38": "正在處理,請耐心等待...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "邮箱格式錯誤",
|
|
|
+ "empty": "邮箱不能為空",
|
|
|
+ "exist": "邮箱已存在"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "請選擇您所在國家"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "邮箱驗證碼",
|
|
|
+ "item10": "輸入您的邮箱驗證碼",
|
|
|
+ "item11": "獲取驗證碼"
|
|
|
+ },
|
|
|
+ "CodeSuccess": "驗證碼獲取成功",
|
|
|
+ "agreemnet8": "電子郵件已存在",
|
|
|
+ "code": "邮箱驗證碼",
|
|
|
+ "getCode": "獲取驗證碼",
|
|
|
+ "waitCode1": "等待 ",
|
|
|
+ "waitCode2": "秒 ",
|
|
|
+ "p1": "訂單流水號",
|
|
|
+ "p2": "請輸入CVV",
|
|
|
+ "p3": "請輸入PIN",
|
|
|
+ "p4": "請輸入邮箱驗證碼",
|
|
|
+ "p5": "訂單流水號",
|
|
|
+ "t1": "為確保您的資金安全並順利完成支付,請依序完成以下步驟:",
|
|
|
+ "t2": "確認您的流水訂單號,確保支付資訊正確無誤。",
|
|
|
+ "t3": "若選擇銀行卡支付,系統將要求您驗證 CVV 和 PIN,以保障交易安全。",
|
|
|
+ "t4": "請前往您的邮箱查看驗證碼並及時輸入,以繼續下一步操作。",
|
|
|
+ "t5": "核對所有資訊無誤後,請盡快完成支付,以避免訂單超時或金額變動。",
|
|
|
+ "t6": "感謝您的配合,祝您使用愉快!",
|
|
|
+ "PaymentDeadline": "支付剩餘時間",
|
|
|
+ "PaymentExpired": "支付已超時,請重新下單",
|
|
|
+ "days": "天",
|
|
|
+ "hours": "小時",
|
|
|
+ "minutes": "分鐘",
|
|
|
+ "seconds": "秒",
|
|
|
+ "Copy": "複製",
|
|
|
+ "CopySuccess": "複製成功",
|
|
|
+ "CopyFailed": "複製失敗",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "確定要取消嗎?",
|
|
|
+ "SystemPrompt": "系統提示",
|
|
|
+ "pagesStatus": "訂單已取消",
|
|
|
+ "callbackStatus": "此訂單已失效,請重新下單"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ en: {
|
|
|
+ "Title1": "Deposit Account",
|
|
|
+ "Title2": "Deposit Method",
|
|
|
+ "Title3": "Deposit Amount",
|
|
|
+ "Title10": "Withdrawal Account",
|
|
|
+ "Title4": "Withdrawal Method",
|
|
|
+ "Title5": "Withdrawal Amount",
|
|
|
+ "Title6": "Payment Account",
|
|
|
+ "Title7": "Please select payment account",
|
|
|
+ "Title8": "Pay",
|
|
|
+ "Title9": "Cancel",
|
|
|
+ "cardNo": "Card Number",
|
|
|
+ "bal": "Balance",
|
|
|
+ "bagBal": "Wallet Balance",
|
|
|
+ "format": "Non-negative number with up to two decimals",
|
|
|
+ "format1": "Positive integer",
|
|
|
+ "amount": "Amount must be ",
|
|
|
+ "amount1": "Insufficient payment account balance",
|
|
|
+ "Confirm": "Confirm",
|
|
|
+ "Cancel": "Cancel",
|
|
|
+ "Des1": "Submitted successfully, pending review...",
|
|
|
+ "Des38": "Processing, please wait...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "Invalid email format",
|
|
|
+ "empty": "Email cannot be empty",
|
|
|
+ "exist": "Email already exists"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "Please select your country"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "Email verification code",
|
|
|
+ "item10": "Enter your email verification code",
|
|
|
+ "item11": "Get code"
|
|
|
+ },
|
|
|
+ "CodeSuccess": "Verification code sent successfully",
|
|
|
+ "agreemnet8": "Email already exists",
|
|
|
+ "code": "Email verification code",
|
|
|
+ "getCode": "Get code",
|
|
|
+ "waitCode1": "Wait ",
|
|
|
+ "waitCode2": "s ",
|
|
|
+ "p1": "Order reference number",
|
|
|
+ "p2": "Please enter CVV",
|
|
|
+ "p3": "Please enter PIN",
|
|
|
+ "p4": "Please enter the email verification code",
|
|
|
+ "p5": "Order reference number",
|
|
|
+ "t1": "To ensure your funds are secure and your payment is completed smoothly, please follow the steps below:",
|
|
|
+ "t2": "Confirm your order reference number to ensure the payment information is correct.",
|
|
|
+ "t3": "If you choose bank card payment, the system will require CVV and PIN verification for security.",
|
|
|
+ "t4": "Please check your email for the verification code and enter it promptly to proceed.",
|
|
|
+ "t5": "After verifying all details, please complete the payment as soon as possible to avoid timeout or changes in the amount.",
|
|
|
+ "t6": "Thank you for your cooperation. Enjoy your experience!",
|
|
|
+ "PaymentDeadline": "Time remaining to pay",
|
|
|
+ "PaymentExpired": "Payment expired, please place a new order",
|
|
|
+ "days": "day(s)",
|
|
|
+ "hours": "hour(s)",
|
|
|
+ "minutes": "minute(s)",
|
|
|
+ "seconds": "second(s)",
|
|
|
+ "Copy": "Copy",
|
|
|
+ "CopySuccess": "Copied",
|
|
|
+ "CopyFailed": "Copy failed",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "Are you sure you want to cancel?",
|
|
|
+ "SystemPrompt": "System prompt",
|
|
|
+ "pagesStatus": "Order has been cancelled",
|
|
|
+ "callbackStatus": "This order has expired, please place a new order"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ vn: {
|
|
|
+ "Title1": "Tài khoản gửi tiền",
|
|
|
+ "Title2": "Phương thức gửi tiền",
|
|
|
+ "Title3": "Số tiền gửi",
|
|
|
+ "Title10": "Tài khoản rút tiền",
|
|
|
+ "Title4": "Phương thức rút tiền",
|
|
|
+ "Title5": "Số tiền rút",
|
|
|
+ "Title6": "Tài khoản thanh toán",
|
|
|
+ "Title7": "Vui lòng chọn tài khoản thanh toán",
|
|
|
+ "Title8": "Thanh toán",
|
|
|
+ "Title9": "Hủy",
|
|
|
+ "cardNo": "Số thẻ",
|
|
|
+ "bal": "Số dư",
|
|
|
+ "bagBal": "Số dư ví",
|
|
|
+ "format": "Số không âm với tối đa hai chữ số thập phân",
|
|
|
+ "format1": "Số nguyên dương",
|
|
|
+ "amount": "Số tiền phải ",
|
|
|
+ "amount1": "Số dư tài khoản thanh toán không đủ",
|
|
|
+ "Confirm": "Xác nhận",
|
|
|
+ "Cancel": "Hủy",
|
|
|
+ "Des1": "Gửi thành công, đang chờ xét duyệt...",
|
|
|
+ "Des38": "Đang xử lý, vui lòng chờ...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "Định dạng email không hợp lệ",
|
|
|
+ "empty": "Email không được để trống",
|
|
|
+ "exist": "Email đã tồn tại"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "Vui lòng chọn quốc gia của bạn"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "Mã xác thực email",
|
|
|
+ "item10": "Nhập mã xác thực từ email của bạn",
|
|
|
+ "item11": "Lấy mã"
|
|
|
+ },
|
|
|
+ "CodeSuccess": "Lấy mã thành công",
|
|
|
+ "agreemnet8": "Email đã tồn tại",
|
|
|
+ "code": "Mã email",
|
|
|
+ "getCode": "Lấy mã",
|
|
|
+ "waitCode1": "Chờ ",
|
|
|
+ "waitCode2": "s ",
|
|
|
+ "p1": "Mã tham chiếu đơn hàng",
|
|
|
+ "p2": "Vui lòng nhập CVV",
|
|
|
+ "p3": "Vui lòng nhập PIN",
|
|
|
+ "p4": "Vui lòng nhập mã xác thực email",
|
|
|
+ "p5": "Mã tham chiếu đơn hàng",
|
|
|
+ "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:",
|
|
|
+ "t2": "Xác nhận mã tham chiếu đơn hàng để đảm bảo thông tin chính xác.",
|
|
|
+ "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.",
|
|
|
+ "t4": "Hãy kiểm tra email và nhập mã xác thực để tiếp tục.",
|
|
|
+ "t5": "Sau khi xác nhận thông tin, vui lòng thanh toán sớm để tránh hết hạn.",
|
|
|
+ "t6": "Cảm ơn sự hợp tác của bạn. Chúc bạn trải nghiệm vui vẻ!",
|
|
|
+ "PaymentDeadline": "Thời gian thanh toán còn lại",
|
|
|
+ "PaymentExpired": "Thanh toán đã hết hạn, vui lòng đặt lại",
|
|
|
+ "days": "ngày",
|
|
|
+ "hours": "giờ",
|
|
|
+ "minutes": "phút",
|
|
|
+ "seconds": "giây",
|
|
|
+ "Copy": "Sao chép",
|
|
|
+ "CopySuccess": "Sao chép thành công",
|
|
|
+ "CopyFailed": "Sao chép thất bại",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "Bạn có chắc muốn hủy không?",
|
|
|
+ "SystemPrompt": "Thông báo hệ thống",
|
|
|
+ "pagesStatus": "Đơn hàng đã bị hủy",
|
|
|
+ "callbackStatus": "Đơn hàng này đã hết hiệu lực, vui lòng đặt lại"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ de: {
|
|
|
+ "Title1": "Einzahlungskonto",
|
|
|
+ "Title2": "Einzahlungsmethode",
|
|
|
+ "Title3": "Einzahlungsbetrag",
|
|
|
+ "Title10": "Auszahlungskonto",
|
|
|
+ "Title4": "Auszahlungsmethode",
|
|
|
+ "Title5": "Auszahlungsbetrag",
|
|
|
+ "Title6": "Zahlungskonto",
|
|
|
+ "Title7": "Bitte Zahlungskonto auswählen",
|
|
|
+ "Title8": "Bezahlen",
|
|
|
+ "Title9": "Abbrechen",
|
|
|
+ "cardNo": "Kartennummer",
|
|
|
+ "bal": "Kontostand",
|
|
|
+ "bagBal": "Wallet-Guthaben",
|
|
|
+ "format": "Nicht-negative Zahl mit bis zu zwei Dezimalstellen",
|
|
|
+ "format1": "Positive ganze Zahl",
|
|
|
+ "amount": "Der Betrag muss ",
|
|
|
+ "amount1": "Unzureichendes Guthaben auf dem Zahlungskonto",
|
|
|
+ "Confirm": "Bestätigen",
|
|
|
+ "Cancel": "Abbrechen",
|
|
|
+ "Des1": "Erfolgreich eingereicht, wird überprüft...",
|
|
|
+ "Des38": "Wird verarbeitet, bitte warten...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "Ungültiges E-Mail-Format",
|
|
|
+ "empty": "E-Mail darf nicht leer sein",
|
|
|
+ "exist": "E-Mail existiert bereits"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "Bitte wählen Sie Ihr Land aus"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "E-Mail-Bestätigungscode",
|
|
|
+ "item10": "Geben Sie Ihren E-Mail-Bestätigungscode ein",
|
|
|
+ "item11": "Code anfordern"
|
|
|
+ },
|
|
|
+ "CodeSuccess": "Bestätigungscode erfolgreich gesendet",
|
|
|
+ "agreemnet8": "E-Mail existiert bereits",
|
|
|
+ "code": "E-Mail-Bestätigungscode",
|
|
|
+ "getCode": "Code anfordern",
|
|
|
+ "waitCode1": "Warten ",
|
|
|
+ "waitCode2": "s ",
|
|
|
+ "p1": "Bestellreferenznummer",
|
|
|
+ "p2": "Bitte CVV eingeben",
|
|
|
+ "p3": "Bitte PIN eingeben",
|
|
|
+ "p4": "Bitte E-Mail-Bestätigungscode eingeben",
|
|
|
+ "p5": "Bestellreferenznummer",
|
|
|
+ "t1": "Um die Sicherheit Ihrer Gelder zu gewährleisten und die Zahlung reibungslos abzuschließen, folgen Sie bitte den folgenden Schritten:",
|
|
|
+ "t2": "Bestätigen Sie die Bestellreferenznummer, um sicherzustellen, dass die Zahlungsinformationen korrekt sind.",
|
|
|
+ "t3": "Wenn Sie Kartenzahlung wählen, verlangt das System eine CVV- und PIN-Verifizierung zur Sicherheit.",
|
|
|
+ "t4": "Bitte überprüfen Sie Ihre E-Mail auf den Bestätigungscode und geben Sie ihn umgehend ein.",
|
|
|
+ "t5": "Bitte schließen Sie die Zahlung zeitnah ab, um ein Ablaufen der Bestellung oder Betragsänderungen zu vermeiden.",
|
|
|
+ "t6": "Vielen Dank für Ihre Zusammenarbeit und viel Freude bei der Nutzung!",
|
|
|
+ "PaymentDeadline": "Verbleibende Zahlungszeit",
|
|
|
+ "PaymentExpired": "Zahlung abgelaufen, bitte neu bestellen",
|
|
|
+ "days": "Tag(e)",
|
|
|
+ "hours": "Stunde(n)",
|
|
|
+ "minutes": "Minute(n)",
|
|
|
+ "seconds": "Sekunde(n)",
|
|
|
+ "Copy": "Kopieren",
|
|
|
+ "CopySuccess": "Kopiert",
|
|
|
+ "CopyFailed": "Kopieren fehlgeschlagen",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "Sind Sie sicher, dass Sie stornieren möchten?",
|
|
|
+ "SystemPrompt": "Systemhinweis",
|
|
|
+ "pagesStatus": "Bestellung wurde storniert",
|
|
|
+ "callbackStatus": "Diese Bestellung ist abgelaufen, bitte bestellen Sie erneut"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ es: {
|
|
|
+ "Title1": "Cuenta de depósito",
|
|
|
+ "Title2": "Método de depósito",
|
|
|
+ "Title3": "Monto del depósito",
|
|
|
+ "Title10": "Cuenta de retiro",
|
|
|
+ "Title4": "Método de retiro",
|
|
|
+ "Title5": "Monto del retiro",
|
|
|
+ "Title6": "Cuenta de pago",
|
|
|
+ "Title7": "Seleccione la cuenta de pago",
|
|
|
+ "Title8": "Pagar",
|
|
|
+ "Title9": "Cancelar",
|
|
|
+ "cardNo": "Número de tarjeta",
|
|
|
+ "bal": "Saldo",
|
|
|
+ "bagBal": "Saldo de la billetera",
|
|
|
+ "format": "Número no negativo con hasta dos decimales",
|
|
|
+ "format1": "Entero positivo",
|
|
|
+ "amount": "El monto debe ser ",
|
|
|
+ "amount1": "Saldo insuficiente en la cuenta de pago",
|
|
|
+ "Confirm": "Confirmar",
|
|
|
+ "Cancel": "Cancelar",
|
|
|
+ "Des1": "Enviado, en revisión...",
|
|
|
+ "Des38": "Procesando, por favor espere...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "Formato de correo electrónico inválido",
|
|
|
+ "empty": "El correo electrónico no puede estar vacío",
|
|
|
+ "exist": "El correo electrónico ya existe"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "Seleccione su país"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "Código de verificación por correo",
|
|
|
+ "item10": "Ingrese el código enviado a su correo",
|
|
|
+ "item11": "Obtener código"
|
|
|
+ },
|
|
|
+ "CodeSuccess": "Código enviado con éxito",
|
|
|
+ "agreemnet8": "El correo electrónico ya existe",
|
|
|
+ "code": "Código de correo",
|
|
|
+ "getCode": "Obtener código",
|
|
|
+ "waitCode1": "Esperar ",
|
|
|
+ "waitCode2": "s ",
|
|
|
+ "p1": "Número de referencia del pedido",
|
|
|
+ "p2": "Ingrese el CVV",
|
|
|
+ "p3": "Ingrese el PIN",
|
|
|
+ "p4": "Ingrese el código de verificación del correo",
|
|
|
+ "p5": "Número de referencia del pedido",
|
|
|
+ "t1": "Para garantizar la seguridad de sus fondos y completar el pago sin problemas, siga los pasos a continuación:",
|
|
|
+ "t2": "Confirme el número de referencia del pedido para asegurar que la información sea correcta.",
|
|
|
+ "t3": "Si elige pago con tarjeta bancaria, el sistema solicitará la verificación de CVV y PIN por seguridad.",
|
|
|
+ "t4": "Revise su correo y escriba el código recibido para continuar.",
|
|
|
+ "t5": "Después de verificar la información, complete el pago lo antes posible para evitar vencimientos.",
|
|
|
+ "t6": "¡Gracias por su cooperación, disfrute su experiencia!",
|
|
|
+ "PaymentDeadline": "Tiempo restante para pagar",
|
|
|
+ "PaymentExpired": "El pago ha expirado, haga un nuevo pedido",
|
|
|
+ "days": "día(s)",
|
|
|
+ "hours": "hora(s)",
|
|
|
+ "minutes": "minuto(s)",
|
|
|
+ "seconds": "segundo(s)",
|
|
|
+ "Copy": "Copiar",
|
|
|
+ "CopySuccess": "Copiado",
|
|
|
+ "CopyFailed": "Error al copiar",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "¿Está seguro de que desea cancelar?",
|
|
|
+ "SystemPrompt": "Aviso del sistema",
|
|
|
+ "pagesStatus": "El pedido ha sido cancelado",
|
|
|
+ "callbackStatus": "Este pedido ha expirado, realice uno nuevo"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ id: {
|
|
|
+ "Title1": "Akun Deposit",
|
|
|
+ "Title2": "Metode Deposit",
|
|
|
+ "Title3": "Jumlah Deposit",
|
|
|
+ "Title10": "Akun Penarikan",
|
|
|
+ "Title4": "Metode Penarikan",
|
|
|
+ "Title5": "Jumlah Penarikan",
|
|
|
+ "Title6": "Akun Pembayaran",
|
|
|
+ "Title7": "Silakan pilih akun pembayaran",
|
|
|
+ "Title8": "Bayar",
|
|
|
+ "Title9": "Batal",
|
|
|
+ "cardNo": "Nomor Kartu",
|
|
|
+ "bal": "Saldo",
|
|
|
+ "bagBal": "Saldo Dompet",
|
|
|
+ "format": "Angka non-negatif dengan maksimal dua desimal",
|
|
|
+ "format1": "Bilangan bulat positif",
|
|
|
+ "amount": "Jumlah harus ",
|
|
|
+ "amount1": "Saldo akun pembayaran tidak mencukupi",
|
|
|
+ "Confirm": "Konfirmasi",
|
|
|
+ "Cancel": "Batal",
|
|
|
+ "Des1": "Berhasil dikirim, menunggu tinjauan...",
|
|
|
+ "Des38": "Sedang diproses, harap tunggu...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "Format email tidak valid",
|
|
|
+ "empty": "Email tidak boleh kosong",
|
|
|
+ "exist": "Email sudah terdaftar"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "Silakan pilih negara Anda"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "Kode verifikasi email",
|
|
|
+ "item10": "Masukkan kode verifikasi dari email Anda",
|
|
|
+ "item11": "Dapatkan kode"
|
|
|
+ },
|
|
|
+ "CodeSuccess": "Kode berhasil dikirim",
|
|
|
+ "agreemnet8": "Email sudah ada",
|
|
|
+ "code": "Kode email",
|
|
|
+ "getCode": "Dapatkan kode",
|
|
|
+ "waitCode1": "Menunggu ",
|
|
|
+ "waitCode2": "d ",
|
|
|
+ "p1": "Nomor referensi pesanan",
|
|
|
+ "p2": "Silakan masukkan CVV",
|
|
|
+ "p3": "Silakan masukkan PIN",
|
|
|
+ "p4": "Silakan masukkan kode verifikasi email",
|
|
|
+ "p5": "Nomor referensi pesanan",
|
|
|
+ "t1": "Untuk memastikan keamanan dana Anda dan menyelesaikan pembayaran dengan lancar, silakan ikuti langkah-langkah berikut:",
|
|
|
+ "t2": "Konfirmasi nomor referensi pesanan untuk memastikan informasi pembayaran benar.",
|
|
|
+ "t3": "Jika memilih pembayaran dengan kartu, sistem akan meminta verifikasi CVV dan PIN demi keamanan.",
|
|
|
+ "t4": "Silakan periksa email Anda dan masukkan kode verifikasi untuk melanjutkan.",
|
|
|
+ "t5": "Setelah semua informasi benar, selesaikan pembayaran segera untuk menghindari kedaluwarsa.",
|
|
|
+ "t6": "Terima kasih atas kerja sama Anda. Semoga pengalaman Anda menyenangkan!",
|
|
|
+ "PaymentDeadline": "Sisa waktu pembayaran",
|
|
|
+ "PaymentExpired": "Pembayaran kedaluwarsa, silakan pesan ulang",
|
|
|
+ "days": "hari",
|
|
|
+ "hours": "jam",
|
|
|
+ "minutes": "menit",
|
|
|
+ "seconds": "detik",
|
|
|
+ "Copy": "Salin",
|
|
|
+ "CopySuccess": "Berhasil disalin",
|
|
|
+ "CopyFailed": "Gagal menyalin",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "Yakin ingin membatalkan?",
|
|
|
+ "SystemPrompt": "Notifikasi sistem",
|
|
|
+ "pagesStatus": "Pesanan telah dibatalkan",
|
|
|
+ "callbackStatus": "Pesanan ini telah kedaluwarsa, silakan pesan ulang"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ms: {
|
|
|
+ "Title1": "Akaun Deposit",
|
|
|
+ "Title2": "Kaedah Deposit",
|
|
|
+ "Title3": "Jumlah Deposit",
|
|
|
+ "Title10": "Akaun Pengeluaran",
|
|
|
+ "Title4": "Kaedah Pengeluaran",
|
|
|
+ "Title5": "Jumlah Pengeluaran",
|
|
|
+ "Title6": "Akaun Pembayaran",
|
|
|
+ "Title7": "Sila pilih akaun pembayaran",
|
|
|
+ "Title8": "Bayar",
|
|
|
+ "Title9": "Batal",
|
|
|
+ "cardNo": "Nombor Kad",
|
|
|
+ "bal": "Baki",
|
|
|
+ "bagBal": "Baki Dompet",
|
|
|
+ "format": "Nombor tidak negatif dengan maksimum dua titik perpuluhan",
|
|
|
+ "format1": "Integer positif",
|
|
|
+ "amount": "Jumlah mesti ",
|
|
|
+ "amount1": "Baki akaun pembayaran tidak mencukupi",
|
|
|
+ "Confirm": "Sahkan",
|
|
|
+ "Cancel": "Batal",
|
|
|
+ "Des1": "Berjaya dihantar, menunggu semakan...",
|
|
|
+ "Des38": "Sedang diproses, sila tunggu...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "Format emel tidak sah",
|
|
|
+ "empty": "Emel tidak boleh kosong",
|
|
|
+ "exist": "Emel sudah wujud"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "Sila pilih negara anda"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "Kod pengesahan emel",
|
|
|
+ "item10": "Masukkan kod pengesahan dari emel anda",
|
|
|
+ "item11": "Dapatkan kod"
|
|
|
+ },
|
|
|
+ "CodeSuccess": "Kod berjaya dihantar",
|
|
|
+ "agreemnet8": "Emel sudah wujud",
|
|
|
+ "code": "Kod emel",
|
|
|
+ "getCode": "Dapatkan kod",
|
|
|
+ "waitCode1": "Menunggu ",
|
|
|
+ "waitCode2": "s ",
|
|
|
+ "p1": "Nombor rujukan pesanan",
|
|
|
+ "p2": "Sila masukkan CVV",
|
|
|
+ "p3": "Sila masukkan PIN",
|
|
|
+ "p4": "Sila masukkan kod pengesahan emel",
|
|
|
+ "p5": "Nombor rujukan pesanan",
|
|
|
+ "t1": "Untuk memastikan keselamatan dana anda dan melengkapkan pembayaran dengan lancar, sila ikut langkah berikut:",
|
|
|
+ "t2": "Sahkan nombor rujukan pesanan untuk memastikan maklumat adalah tepat.",
|
|
|
+ "t3": "Jika memilih pembayaran kad, sistem akan meminta pengesahan CVV dan PIN.",
|
|
|
+ "t4": "Sila semak emel anda dan masukkan kod pengesahan untuk meneruskan.",
|
|
|
+ "t5": "Selepas semua maklumat disahkan, sila lengkapkan pembayaran segera untuk mengelakkan tamat tempoh.",
|
|
|
+ "t6": "Terima kasih atas kerjasama anda. Selamat menggunakan perkhidmatan kami!",
|
|
|
+ "PaymentDeadline": "Masa pembayaran yang tinggal",
|
|
|
+ "PaymentExpired": "Pembayaran tamat tempoh, sila buat pesanan baharu",
|
|
|
+ "days": "hari",
|
|
|
+ "hours": "jam",
|
|
|
+ "minutes": "minit",
|
|
|
+ "seconds": "saat",
|
|
|
+ "Copy": "Salin",
|
|
|
+ "CopySuccess": "Berjaya disalin",
|
|
|
+ "CopyFailed": "Salinan gagal",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "Adakah anda pasti mahu batalkan?",
|
|
|
+ "SystemPrompt": "Pemberitahuan sistem",
|
|
|
+ "pagesStatus": "Pesanan telah dibatalkan",
|
|
|
+ "callbackStatus": "Pesanan ini telah luput, sila buat pesanan baharu"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ th: {
|
|
|
+ "Title1": "บัญชีฝากเงิน",
|
|
|
+ "Title2": "วิธีการฝากเงิน",
|
|
|
+ "Title3": "จำนวนเงินฝาก",
|
|
|
+ "Title10": "บัญชีถอนเงิน",
|
|
|
+ "Title4": "วิธีการถอนเงิน",
|
|
|
+ "Title5": "จำนวนเงินถอน",
|
|
|
+ "Title6": "บัญชีชำระเงิน",
|
|
|
+ "Title7": "กรุณาเลือกบัญชีชำระเงิน",
|
|
|
+ "Title8": "ชำระเงิน",
|
|
|
+ "Title9": "ยกเลิก",
|
|
|
+ "cardNo": "หมายเลขบัตร",
|
|
|
+ "bal": "ยอดคงเหลือ",
|
|
|
+ "bagBal": "ยอดเงินในวอลเล็ต",
|
|
|
+ "format": "ตัวเลขที่ไม่เป็นลบและมีทศนิยมไม่เกินสองตำแหน่ง",
|
|
|
+ "format1": "จำนวนเต็มบวก",
|
|
|
+ "amount": "จำนวนเงินต้อง ",
|
|
|
+ "amount1": "ยอดเงินในบัญชีชำระไม่เพียงพอ",
|
|
|
+ "Confirm": "ยืนยัน",
|
|
|
+ "Cancel": "ยกเลิก",
|
|
|
+ "Des1": "ส่งสำเร็จ กำลังรอการตรวจสอบ...",
|
|
|
+ "Des38": "กำลังดำเนินการ โปรดรอ...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "รูปแบบอีเมลไม่ถูกต้อง",
|
|
|
+ "empty": "อีเมลไม่สามารถเว้นว่างได้",
|
|
|
+ "exist": "อีเมลนี้มีอยู่แล้ว"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "กรุณาเลือกประเทศของคุณ"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "รหัสยืนยันอีเมล",
|
|
|
+ "item10": "กรอกรหัสยืนยันจากอีเมลของคุณ",
|
|
|
+ "item11": "ขอรหัส"
|
|
|
+ },
|
|
|
+ "CodeSuccess": "ส่งรหัสสำเร็จ",
|
|
|
+ "agreemnet8": "อีเมลนี้มีอยู่แล้ว",
|
|
|
+ "code": "รหัสยืนยันอีเมล",
|
|
|
+ "getCode": "ขอรหัส",
|
|
|
+ "waitCode1": "รอ ",
|
|
|
+ "waitCode2": "วินาที ",
|
|
|
+ "p1": "หมายเลขอ้างอิงคำสั่งซื้อ",
|
|
|
+ "p2": "กรุณากรอก CVV",
|
|
|
+ "p3": "กรุณากรอก PIN",
|
|
|
+ "p4": "กรุณากรอกรหัสยืนยันอีเมล",
|
|
|
+ "p5": "หมายเลขอ้างอิงคำสั่งซื้อ",
|
|
|
+ "t1": "เพื่อความปลอดภัยของเงินทุนและการชำระเงินที่ราบรื่น โปรดทำตามขั้นตอนต่อไปนี้:",
|
|
|
+ "t2": "ยืนยันหมายเลขอ้างอิงคำสั่งซื้อเพื่อให้แน่ใจว่าข้อมูลถูกต้อง",
|
|
|
+ "t3": "หากเลือกชำระเงินด้วยบัตร ระบบจะขอให้ยืนยัน CVV และ PIN",
|
|
|
+ "t4": "โปรดตรวจสอบอีเมลและกรอกรหัสเพื่อดำเนินการต่อ",
|
|
|
+ "t5": "เมื่อข้อมูลถูกต้องแล้ว โปรดชำระเงินโดยเร็วเพื่อหลีกเลี่ยงการหมดเวลา",
|
|
|
+ "t6": "ขอบคุณสำหรับความร่วมมือ ขอให้ท่านมีความสุขในการใช้งาน!",
|
|
|
+ "PaymentDeadline": "เวลาที่เหลือสำหรับการชำระเงิน",
|
|
|
+ "PaymentExpired": "การชำระเงินหมดเวลา กรุณาสั่งใหม่",
|
|
|
+ "days": "วัน",
|
|
|
+ "hours": "ชั่วโมง",
|
|
|
+ "minutes": "นาที",
|
|
|
+ "seconds": "วินาที",
|
|
|
+ "Copy": "คัดลอก",
|
|
|
+ "CopySuccess": "คัดลอกสำเร็จ",
|
|
|
+ "CopyFailed": "คัดลอกไม่สำเร็จ",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "ยืนยันที่จะยกเลิกใช่หรือไม่?",
|
|
|
+ "SystemPrompt": "ข้อความจากระบบ",
|
|
|
+ "pagesStatus": "คำสั่งซื้อถูกยกเลิกแล้ว",
|
|
|
+ "callbackStatus": "คำสั่งซื้อนี้หมดอายุแล้ว โปรดสั่งใหม่"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ar: {
|
|
|
+ "Title1": "حساب الإيداع",
|
|
|
+ "Title2": "طريقة الإيداع",
|
|
|
+ "Title3": "مبلغ الإيداع",
|
|
|
+ "Title10": "حساب السحب",
|
|
|
+ "Title4": "طريقة السحب",
|
|
|
+ "Title5": "مبلغ السحب",
|
|
|
+ "Title6": "حساب الدفع",
|
|
|
+ "Title7": "يرجى اختيار حساب الدفع",
|
|
|
+ "Title8": "دفع",
|
|
|
+ "Title9": "إلغاء",
|
|
|
+ "cardNo": "رقم البطاقة",
|
|
|
+ "bal": "الرصيد",
|
|
|
+ "bagBal": "رصيد المحفظة",
|
|
|
+ "format": "عدد غير سالب بحد أقصى منزلتين عشريتين",
|
|
|
+ "format1": "عدد صحيح موجب",
|
|
|
+ "amount": "يجب أن يكون المبلغ ",
|
|
|
+ "amount1": "رصيد حساب الدفع غير كافٍ",
|
|
|
+ "Confirm": "تأكيد",
|
|
|
+ "Cancel": "إلغاء",
|
|
|
+ "Des1": "تم الإرسال، في انتظار المراجعة...",
|
|
|
+ "Des38": "جارٍ المعالجة، يرجى الانتظار...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "صيغة البريد الإلكتروني غير صحيحة",
|
|
|
+ "empty": "لا يمكن أن يكون البريد الإلكتروني فارغًا",
|
|
|
+ "exist": "البريد الإلكتروني موجود بالفعل"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "يرجى اختيار دولتك"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "رمز التحقق من البريد الإلكتروني",
|
|
|
+ "item10": "أدخل رمز التحقق من بريدك الإلكتروني",
|
|
|
+ "item11": "الحصول على الرمز"
|
|
|
+ },
|
|
|
+ "CodeSuccess": "تم إرسال رمز التحقق بنجاح",
|
|
|
+ "agreemnet8": "البريد الإلكتروني موجود بالفعل",
|
|
|
+ "code": "رمز التحقق من البريد الإلكتروني",
|
|
|
+ "getCode": "الحصول على الرمز",
|
|
|
+ "waitCode1": "انتظار ",
|
|
|
+ "waitCode2": " ثانية ",
|
|
|
+ "p1": "رقم مرجع الطلب",
|
|
|
+ "p2": "يرجى إدخال CVV",
|
|
|
+ "p3": "يرجى إدخال PIN",
|
|
|
+ "p4": "يرجى إدخال رمز التحقق من البريد الإلكتروني",
|
|
|
+ "p5": "رقم مرجع الطلب",
|
|
|
+ "t1": "لضمان أمان أموالك وإتمام عملية الدفع بسلاسة، يرجى اتباع الخطوات التالية:",
|
|
|
+ "t2": "تحقق من رقم مرجع الطلب للتأكد من صحة معلومات الدفع.",
|
|
|
+ "t3": "إذا اخترت الدفع بواسطة البطاقة البنكية، سيطلب النظام التحقق من CVV و PIN لضمان أمان المعاملة.",
|
|
|
+ "t4": "يرجى التحقق من بريدك الإلكتروني للحصول على رمز التحقق وإدخاله فورًا للمتابعة.",
|
|
|
+ "t5": "بعد التأكد من صحة جميع المعلومات، يرجى إتمام الدفع في أسرع وقت لتجنب انتهاء المهلة.",
|
|
|
+ "t6": "شكرًا لتعاونكم، ونتمنى لكم تجربة ممتعة!",
|
|
|
+ "PaymentDeadline": "الوقت المتبقي لإتمام الدفع",
|
|
|
+ "PaymentExpired": "انتهت صلاحية الدفع، يرجى إعادة الطلب",
|
|
|
+ "days": "يوم",
|
|
|
+ "hours": "ساعة",
|
|
|
+ "minutes": "دقيقة",
|
|
|
+ "seconds": "ثانية",
|
|
|
+ "Copy": "نسخ",
|
|
|
+ "CopySuccess": "تم النسخ بنجاح",
|
|
|
+ "CopyFailed": "فشل النسخ",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "هل أنت متأكد من الإلغاء؟",
|
|
|
+ "SystemPrompt": "تنبيه النظام",
|
|
|
+ "pagesStatus": "تم إلغاء الطلب",
|
|
|
+ "callbackStatus": "انتهت صلاحية هذا الطلب، يرجى تقديم طلب جديد"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ko: {
|
|
|
+ "Title1": "입금 계좌",
|
|
|
+ "Title2": "입금 방식",
|
|
|
+ "Title3": "입금 금액",
|
|
|
+ "Title10": "출금 계좌",
|
|
|
+ "Title4": "출금 방식",
|
|
|
+ "Title5": "출금 금액",
|
|
|
+ "Title6": "결제 계좌",
|
|
|
+ "Title7": "결제 계좌를 선택하세요",
|
|
|
+ "Title8": "결제",
|
|
|
+ "Title9": "취소",
|
|
|
+ "cardNo": "카드 번호",
|
|
|
+ "bal": "잔액",
|
|
|
+ "bagBal": "지갑 잔액",
|
|
|
+ "format": "최대 소수점 두 자리의 음이 아닌 숫자",
|
|
|
+ "format1": "양의 정수",
|
|
|
+ "amount": "금액은 ",
|
|
|
+ "amount1": "결제 계좌 잔액이 부족합니다",
|
|
|
+ "Confirm": "확인",
|
|
|
+ "Cancel": "취소",
|
|
|
+ "Des1": "제출 완료, 검토 중...",
|
|
|
+ "Des38": "처리 중입니다. 잠시만 기다려주세요...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "잘못된 이메일 형식입니다",
|
|
|
+ "empty": "이메일은 비워둘 수 없습니다",
|
|
|
+ "exist": "이미 등록된 이메일입니다"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "거주 국가를 선택해주세요"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "이메일 인증 코드",
|
|
|
+ "item10": "이메일로 받은 인증 코드를 입력하세요",
|
|
|
+ "item11": "코드 받기"
|
|
|
+ },
|
|
|
+ "CodeSuccess": "인증 코드가 성공적으로 전송되었습니다",
|
|
|
+ "agreemnet8": "이메일이 이미 존재합니다",
|
|
|
+ "code": "이메일 인증 코드",
|
|
|
+ "getCode": "코드 받기",
|
|
|
+ "waitCode1": "대기 ",
|
|
|
+ "waitCode2": "초 ",
|
|
|
+ "p1": "주문 조회 번호",
|
|
|
+ "p2": "CVV를 입력해주세요",
|
|
|
+ "p3": "PIN을 입력해주세요",
|
|
|
+ "p4": "이메일 인증 코드를 입력해주세요",
|
|
|
+ "p5": "주문 조회 번호",
|
|
|
+ "t1": "자금의 안전을 위해 아래 단계를 순서대로 진행해주세요:",
|
|
|
+ "t2": "결제 정보가 정확한지 주문 조회 번호를 확인하세요.",
|
|
|
+ "t3": "카드 결제를 선택하신 경우 CVV와 PIN 확인이 필요합니다.",
|
|
|
+ "t4": "이메일을 확인하여 인증 코드를 입력해주세요.",
|
|
|
+ "t5": "모든 정보 확인 후 가능한 빨리 결제를 완료해주세요.",
|
|
|
+ "t6": "협조해주셔서 감사합니다. 즐거운 이용 되세요!",
|
|
|
+ "PaymentDeadline": "남은 결제 시간",
|
|
|
+ "PaymentExpired": "결제가 만료되었습니다. 다시 주문해주세요",
|
|
|
+ "days": "일",
|
|
|
+ "hours": "시간",
|
|
|
+ "minutes": "분",
|
|
|
+ "seconds": "초",
|
|
|
+ "Copy": "복사",
|
|
|
+ "CopySuccess": "복사되었습니다",
|
|
|
+ "CopyFailed": "복사 실패",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "취소하시겠습니까?",
|
|
|
+ "SystemPrompt": "시스템 알림",
|
|
|
+ "pagesStatus": "주문이 취소되었습니다",
|
|
|
+ "callbackStatus": "이 주문은 만료되었습니다. 새로 주문해 주세요"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ pt: {
|
|
|
+ "Title1": "Conta de Depósito",
|
|
|
+ "Title2": "Método de Depósito",
|
|
|
+ "Title3": "Valor do Depósito",
|
|
|
+ "Title10": "Conta de Saque",
|
|
|
+ "Title4": "Método de Saque",
|
|
|
+ "Title5": "Valor do Saque",
|
|
|
+ "Title6": "Conta de Pagamento",
|
|
|
+ "Title7": "Selecione a conta de pagamento",
|
|
|
+ "Title8": "Pagar",
|
|
|
+ "Title9": "Cancelar",
|
|
|
+ "cardNo": "Número do Cartão",
|
|
|
+ "bal": "Saldo",
|
|
|
+ "bagBal": "Saldo da Carteira",
|
|
|
+ "format": "Número não negativo com até duas casas decimais",
|
|
|
+ "format1": "Número inteiro positivo",
|
|
|
+ "amount": "O valor deve ser ",
|
|
|
+ "amount1": "Saldo insuficiente na conta de pagamento",
|
|
|
+ "Confirm": "Confirmar",
|
|
|
+ "Cancel": "Cancelar",
|
|
|
+ "Des1": "Enviado com sucesso, aguardando revisão...",
|
|
|
+ "Des38": "Processando, por favor aguarde...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "Formato de e-mail inválido",
|
|
|
+ "empty": "O e-mail não pode estar vazio",
|
|
|
+ "exist": "O e-mail já existe"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "Por favor, selecione o seu país"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "Código de verificação por e-mail",
|
|
|
+ "item10": "Digite o código enviado para o seu e-mail",
|
|
|
+ "item11": "Obter código"
|
|
|
+ },
|
|
|
+ "CodeSuccess": "Código enviado com sucesso",
|
|
|
+ "agreemnet8": "O e-mail já existe",
|
|
|
+ "code": "Código de e-mail",
|
|
|
+ "getCode": "Obter código",
|
|
|
+ "waitCode1": "Aguarde ",
|
|
|
+ "waitCode2": "s ",
|
|
|
+ "p1": "Número de referência do pedido",
|
|
|
+ "p2": "Digite o CVV",
|
|
|
+ "p3": "Digite o PIN",
|
|
|
+ "p4": "Digite o código de verificação do e-mail",
|
|
|
+ "p5": "Número de referência do pedido",
|
|
|
+ "t1": "Para garantir a segurança dos seus fundos e concluir o pagamento, siga os passos abaixo:",
|
|
|
+ "t2": "Confirme o número de referência para garantir que as informações estão corretas.",
|
|
|
+ "t3": "Se optar por pagar com cartão, será necessário verificar o CVV e o PIN.",
|
|
|
+ "t4": "Verifique o seu e-mail e insira o código recebido.",
|
|
|
+ "t5": "Após confirmar todas as informações, conclua o pagamento o quanto antes.",
|
|
|
+ "t6": "Obrigado pela cooperação. Aproveite a sua experiência!",
|
|
|
+ "PaymentDeadline": "Tempo restante para pagar",
|
|
|
+ "PaymentExpired": "Pagamento expirou, faça um novo pedido",
|
|
|
+ "days": "dia(s)",
|
|
|
+ "hours": "hora(s)",
|
|
|
+ "minutes": "minuto(s)",
|
|
|
+ "seconds": "segundo(s)",
|
|
|
+ "Copy": "Copiar",
|
|
|
+ "CopySuccess": "Copiado",
|
|
|
+ "CopyFailed": "Falha ao copiar",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "Tem certeza de que deseja cancelar?",
|
|
|
+ "SystemPrompt": "Aviso do sistema",
|
|
|
+ "pagesStatus": "O pedido foi cancelado",
|
|
|
+ "callbackStatus": "Este pedido expirou, faça um novo pedido"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fa: {
|
|
|
+ "Title1": "حساب واریز",
|
|
|
+ "Title2": "روش واریز",
|
|
|
+ "Title3": "مبلغ واریز",
|
|
|
+ "Title10": "حساب برداشت",
|
|
|
+ "Title4": "روش برداشت",
|
|
|
+ "Title5": "مبلغ برداشت",
|
|
|
+ "Title6": "حساب پرداخت",
|
|
|
+ "Title7": "لطفاً حساب پرداخت را انتخاب کنید",
|
|
|
+ "Title8": "پرداخت",
|
|
|
+ "Title9": "لغو",
|
|
|
+ "cardNo": "شماره کارت",
|
|
|
+ "bal": "موجودی",
|
|
|
+ "bagBal": "موجودی کیف پول",
|
|
|
+ "format": "عدد غیرمنفی با حداکثر دو رقم اعشار",
|
|
|
+ "format1": "عدد صحیح مثبت",
|
|
|
+ "amount": "مبلغ باید ",
|
|
|
+ "amount1": "موجودی حساب پرداخت کافی نیست",
|
|
|
+ "Confirm": "تأیید",
|
|
|
+ "Cancel": "لغو",
|
|
|
+ "Des1": "با موفقیت ارسال شد، در انتظار بررسی...",
|
|
|
+ "Des38": "در حال پردازش، لطفاً صبر کنید...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "فرمت ایمیل نادرست است",
|
|
|
+ "empty": "ایمیل نمیتواند خالی باشد",
|
|
|
+ "exist": "ایمیل قبلاً ثبت شده است"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "لطفاً کشور محل سکونت خود را انتخاب کنید"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "کد تأیید ایمیل",
|
|
|
+ "item10": "کد تأیید ارسالشده به ایمیل خود را وارد کنید",
|
|
|
+ "item11": "دریافت کد"
|
|
|
+ },
|
|
|
+ "CodeSuccess": "کد با موفقیت ارسال شد",
|
|
|
+ "agreemnet8": "ایمیل قبلاً موجود است",
|
|
|
+ "code": "کد تأیید ایمیل",
|
|
|
+ "getCode": "دریافت کد",
|
|
|
+ "waitCode1": "انتظار ",
|
|
|
+ "waitCode2": " ثانیه ",
|
|
|
+ "p1": "شماره پیگیری سفارش",
|
|
|
+ "p2": "لطفاً CVV را وارد کنید",
|
|
|
+ "p3": "لطفاً PIN را وارد کنید",
|
|
|
+ "p4": "لطفاً کد تأیید ایمیل را وارد کنید",
|
|
|
+ "p5": "شماره پیگیری سفارش",
|
|
|
+ "t1": "برای اطمینان از امنیت وجوه شما و تکمیل موفقیتآمیز پرداخت، لطفاً مراحل زیر را انجام دهید:",
|
|
|
+ "t2": "شماره پیگیری سفارش خود را بررسی کنید تا از صحت اطلاعات پرداخت اطمینان حاصل شود.",
|
|
|
+ "t3": "در صورت انتخاب پرداخت با کارت بانکی، سیستم از شما میخواهد CVV و PIN را برای افزایش امنیت وارد کنید.",
|
|
|
+ "t4": "لطفاً ایمیل خود را بررسی کرده و کد تأیید را وارد کنید تا بتوانید ادامه دهید.",
|
|
|
+ "t5": "پس از بررسی اطلاعات، لطفاً هرچه سریعتر پرداخت را تکمیل کنید تا از انقضا یا تغییر مبلغ جلوگیری شود.",
|
|
|
+ "t6": "از همکاری شما سپاسگزاریم. روز خوبی داشته باشید!",
|
|
|
+ "PaymentDeadline": "زمان باقیمانده برای پرداخت",
|
|
|
+ "PaymentExpired": "مهلت پرداخت به پایان رسیده، لطفاً دوباره سفارش دهید",
|
|
|
+ "days": "روز",
|
|
|
+ "hours": "ساعت",
|
|
|
+ "minutes": "دقیقه",
|
|
|
+ "seconds": "ثانیه",
|
|
|
+ "Copy": "کپی",
|
|
|
+ "CopySuccess": "کپی شد",
|
|
|
+ "CopyFailed": "کپی ناموفق بود",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "آیا از لغو اطمینان دارید؟",
|
|
|
+ "SystemPrompt": "پیام سیستم",
|
|
|
+ "pagesStatus": "سفارش لغو شد",
|
|
|
+ "callbackStatus": "این سفارش منقضی شده است، لطفاً دوباره سفارش دهید"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ tr: {
|
|
|
+ "Title1": "Mevduat Hesabı",
|
|
|
+ "Title2": "Mevduat Yöntemi",
|
|
|
+ "Title3": "Mevduat Tutarı",
|
|
|
+ "Title10": "Çekim Hesabı",
|
|
|
+ "Title4": "Çekim Yöntemi",
|
|
|
+ "Title5": "Çekim Tutarı",
|
|
|
+ "Title6": "Ödeme Hesabı",
|
|
|
+ "Title7": "Lütfen ödeme hesabını seçin",
|
|
|
+ "Title8": "Öde",
|
|
|
+ "Title9": "İptal",
|
|
|
+ "cardNo": "Kart Numarası",
|
|
|
+ "bal": "Bakiye",
|
|
|
+ "bagBal": "Cüzdan Bakiyesi",
|
|
|
+ "format": "En fazla iki ondalıklı negatif olmayan sayı",
|
|
|
+ "format1": "Pozitif tam sayı",
|
|
|
+ "amount": "Tutar ",
|
|
|
+ "amount1": "Ödeme hesabı bakiyesi yetersiz",
|
|
|
+ "Confirm": "Onayla",
|
|
|
+ "Cancel": "İptal",
|
|
|
+ "Des1": "Gönderildi, incelemede...",
|
|
|
+ "Des38": "İşleniyor, lütfen bekleyin...",
|
|
|
+ "vaildate": {
|
|
|
+ "email": {
|
|
|
+ "format": "Geçersiz e-posta formatı",
|
|
|
+ "empty": "E-posta boş olamaz",
|
|
|
+ "exist": "E-posta zaten mevcut"
|
|
|
+ },
|
|
|
+ "country": {
|
|
|
+ "empty": "Lütfen ülkenizi seçin"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "newSignup": {
|
|
|
+ "item9": "E-posta doğrulama kodu",
|
|
|
+ "item10": "E-posta doğrulama kodunu girin",
|
|
|
+ "item11": "Kod al"
|
|
|
+ },
|
|
|
+ "CodeSuccess": "Kod başarıyla gönderildi",
|
|
|
+ "agreemnet8": "E-posta zaten mevcut",
|
|
|
+ "code": "E-posta kodu",
|
|
|
+ "getCode": "Kod al",
|
|
|
+ "waitCode1": "Bekle ",
|
|
|
+ "waitCode2": "sn ",
|
|
|
+ "p1": "Sipariş referans numarası",
|
|
|
+ "p2": "Lütfen CVV girin",
|
|
|
+ "p3": "Lütfen PIN girin",
|
|
|
+ "p4": "Lütfen e-posta doğrulama kodunu girin",
|
|
|
+ "p5": "Sipariş referans numarası",
|
|
|
+ "t1": "Fon güvenliğiniz için ödeme işlemini aşağıdaki adımlarla tamamlayınız:",
|
|
|
+ "t2": "Ödeme bilgilerinin doğruluğu için sipariş referans numarasını kontrol edin.",
|
|
|
+ "t3": "Kartla ödeme seçtiğinizde sistem CVV ve PIN doğrulaması isteyecektir.",
|
|
|
+ "t4": "Lütfen e-postanızı kontrol ederek doğrulama kodunu girin.",
|
|
|
+ "t5": "Bilgileri doğruladıktan sonra zaman aşımını önlemek için ödemeyi hızlıca tamamlayın.",
|
|
|
+ "t6": "İşbirliğiniz için teşekkür ederiz. İyi kullanımlar!",
|
|
|
+ "PaymentDeadline": "Kalan ödeme süresi",
|
|
|
+ "PaymentExpired": "Ödeme süresi doldu, lütfen yeniden sipariş verin",
|
|
|
+ "days": "gün",
|
|
|
+ "hours": "saat",
|
|
|
+ "minutes": "dakika",
|
|
|
+ "seconds": "saniye",
|
|
|
+ "Copy": "Kopyala",
|
|
|
+ "CopySuccess": "Kopyalandı",
|
|
|
+ "CopyFailed": "Kopyalama başarısız",
|
|
|
+ "Msg": {
|
|
|
+ "Cancle": "İptal etmek istediğinize emin misiniz?",
|
|
|
+ "SystemPrompt": "Sistem uyarısı",
|
|
|
+ "pagesStatus": "Sipariş iptal edildi",
|
|
|
+ "callbackStatus": "Bu siparişin süresi doldu, lütfen yeniden sipariş verin"
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+let config = {
|
|
|
+ Pattern: {
|
|
|
+ Password:
|
|
|
+ /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?!.*([~!@&%$^\\(\\)#_]).*\\1.*\\1.*\\1)[A-Za-z0-9~!@&%$^\\(\\)#_]{8,16}$/,
|
|
|
+ Email: /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/,
|
|
|
+ },
|
|
|
+
|
|
|
+};
|
|
|
+
|
|
|
+let vm = new Vue({
|
|
|
+ el: "#paycard",
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ dialogCheck: false,
|
|
|
+ dialogCheckOK: false,
|
|
|
+ dialogCheckWait: false,
|
|
|
+ Host80: "",
|
|
|
+ Host04: "",
|
|
|
+ loginOptions: [],
|
|
|
+ //多语言
|
|
|
+ langList: {
|
|
|
+ en: "ENGLISH",
|
|
|
+ cn: "中文简体",
|
|
|
+ zhHant: "中文繁體",
|
|
|
+ vn: "Tiếng Việt",
|
|
|
+ de: "Deutsch",
|
|
|
+ es: "Español",
|
|
|
+ id: "Indonesian",
|
|
|
+ ms: "Melayu",
|
|
|
+ th: "ภาษาไทย",
|
|
|
+ ar: "العربية",
|
|
|
+ ko: "한국어",
|
|
|
+ pt: "Português",
|
|
|
+ fa: "زبان پارسی",
|
|
|
+ tr: "Türkçe",
|
|
|
+ },
|
|
|
+ tips: ['t2', 't3', 't4', 't5'],
|
|
|
+ language: "cn",
|
|
|
+ lang: {},
|
|
|
+ RES: '',
|
|
|
+ isShow: false,
|
|
|
+ rules: {},
|
|
|
+ form: { amount: "", deductionAccount: '' },
|
|
|
+ userInfo: {},
|
|
|
+ timer: 59,
|
|
|
+ interval: null,
|
|
|
+ getCodeString: "",
|
|
|
+ countdownInterval: null,
|
|
|
+ timeLeft: 0
|
|
|
+ };
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ // 当前选择扣款账户余额
|
|
|
+ currentBalance() {
|
|
|
+ if (!this.form.deductionAccount || !this.loginOptions.length) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ const target = this.loginOptions.find(
|
|
|
+ (item) => item.type + "/" + item.cardNumber === this.form.deductionAccount
|
|
|
+ );
|
|
|
+ return target ? Number(target.balance) || 0 : 0;
|
|
|
+ },
|
|
|
+ loginOptionsDisplay() {
|
|
|
+ return this.loginOptions.map(item => {
|
|
|
+ let label = "";
|
|
|
+ if (item.type == "1") {
|
|
|
+ label = `${this.lang["cardNo"]} - ${item.cardNumber} ${this.lang["bal"]}: ${item.balance}`;
|
|
|
+ } else {
|
|
|
+ label = `${this.lang["bagBal"]}: ${item.balance}`;
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ value: item.type + '/' + item.cardNumber,
|
|
|
+ lable: label
|
|
|
+ };
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 余额是否不足
|
|
|
+ isBalanceInsufficient() {
|
|
|
+ const amount = Number(this.form.amount) || 0;
|
|
|
+ return amount > this.currentBalance;
|
|
|
+ },
|
|
|
+ countdownText() {
|
|
|
+ return this.timeLeft > 0
|
|
|
+ ? this.formatCountdown(this.timeLeft)
|
|
|
+ : this.lang.PaymentExpired;
|
|
|
+ },
|
|
|
+ pagesStatus() {
|
|
|
+ return this.form.status == "5";
|
|
|
+ },
|
|
|
+ callbackStatus() {
|
|
|
+ return this.form.callbackStatus == "2";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ //验证码
|
|
|
+ async getCode1(val) {
|
|
|
+ const { email, country } = this.userInfo;
|
|
|
+ if (val) {
|
|
|
+ let res = await Api.sendCode(this.Host04, {
|
|
|
+ email, country
|
|
|
+ }, this.form.token, this.language);
|
|
|
+ if (res.ok) {
|
|
|
+ this.$message({
|
|
|
+ message: this.lang.CodeSuccess,
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ if (res.msg == "邮箱已存在" || res.msg == "Mailbox already exists") {
|
|
|
+ this.$pigeon.MessageError(this.lang.agreemnet8);
|
|
|
+ } else {
|
|
|
+ this.$pigeon.MessageError(res.msg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 获取验证码
|
|
|
+ getCode: async function (val) {
|
|
|
+ if (val) {
|
|
|
+ if (!this.userInfo.country) {
|
|
|
+ this.$message.error(this.lang.vaildate.country.empty);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!this.userInfo.email) {
|
|
|
+ this.$message.error(this.lang.vaildate.email.empty);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!config.Pattern.Email.test(this.userInfo.email)) {
|
|
|
+ this.$message.error(this.lang.vaildate.email.format);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.getCodeString =
|
|
|
+ this.lang.waitCode1 +
|
|
|
+ this.timer +
|
|
|
+ this.lang.waitCode2;
|
|
|
+ let that = this;
|
|
|
+ if (!this.interval) {
|
|
|
+ this.getCode1(val);
|
|
|
+ this.interval = setInterval(() => {
|
|
|
+ that.timer--;
|
|
|
+ sessionStorage.setItem("timer", that.timer);
|
|
|
+ that.getCodeString =
|
|
|
+ this.lang.waitCode1 +
|
|
|
+ that.timer +
|
|
|
+ this.lang.waitCode2;
|
|
|
+ if (that.timer == 0) {
|
|
|
+ this.getCodeString = this.lang.newSignup.item11;
|
|
|
+ clearInterval(that.interval);
|
|
|
+ that.interval = null;
|
|
|
+ that.timer = 59;
|
|
|
+ sessionStorage.setItem("timer", that.timer);
|
|
|
+ }
|
|
|
+ }, 1000);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 初始化定时器
|
|
|
+ initTimer: function () {
|
|
|
+ let t = sessionStorage.getItem("timer") || this.timer;
|
|
|
+ if (t == 59) {
|
|
|
+ this.getCodeString = this.lang.newSignup.item11;
|
|
|
+ } else {
|
|
|
+ this.timer = sessionStorage.getItem("timer");
|
|
|
+ this.getCode(0);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 获取账户下拉
|
|
|
+ async getAccountDropdown() {
|
|
|
+ const res = await Api.getAccountDropdown(this.Host80, this.form.token, this.language);
|
|
|
+ if (res.ok) {
|
|
|
+ this.loginOptions = res.data.map((item) => ({
|
|
|
+ type: item.type,
|
|
|
+ cardNumber: item.cardNumber,
|
|
|
+ balance: item.balance,
|
|
|
+ disabled: item.balance == 0,
|
|
|
+ }));
|
|
|
+ this.userInfo = res.data[0]
|
|
|
+ } else {
|
|
|
+ this.loginOptions = []
|
|
|
+ }
|
|
|
+ },
|
|
|
+ changeAccount(e) {
|
|
|
+ let [type, cardNumber] = e.split("/");
|
|
|
+ this.form = { ...this.form, type, cardNumber };
|
|
|
+ // 触发余额校验
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.form.validateField('deductionAccount');
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 用户详情
|
|
|
+ async userSingle() {
|
|
|
+ const res = await Api.userSingle(this.Host80, this.form.token, this.language);
|
|
|
+ if (res.ok) {
|
|
|
+ this.userInfo = res.data
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async payCard() {
|
|
|
+ try {
|
|
|
+ this.$refs.form.validate(async (valid) => {
|
|
|
+ if (!valid) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 倒计时到期,禁止继续支付
|
|
|
+ if (this.timeLeft == 0) {
|
|
|
+ this.$message.error(this.lang.PaymentExpired || '支付已超时,请重新下单');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 余额校验
|
|
|
+ if (this.isBalanceInsufficient) {
|
|
|
+ this.$message.error(this.lang.amount1);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const { type, cardNumber, cvv, pin, emailCode, serial } = this.form;
|
|
|
+ const { email } = this.userInfo;
|
|
|
+ this.dialogCheckWait = true;
|
|
|
+ const res = await Api.payCard(this.Host04, { type, cardNumber, cvv, pin, emailCode, serial, email }, this.form.token, this.language);
|
|
|
+ this.dialogCheckWait = false;
|
|
|
+ if (res.ok && res.data.code == 200) {
|
|
|
+ this.dialogCheckOK = true;
|
|
|
+ this.form.submitStatus = 1
|
|
|
+ if (this.countdownInterval) {
|
|
|
+ clearInterval(this.countdownInterval);
|
|
|
+ this.countdownInterval = null;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.RES = res.msg || res.data.msg;
|
|
|
+ this.dialogCheck = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch (err) {
|
|
|
+ console.log("校验失败或异常:", err);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 订单详情
|
|
|
+ async getDepositSerial() {
|
|
|
+ try {
|
|
|
+ const res = await Api.getDepositSerial(this.Host04, { serial: this.form.serial }, this.form.token, this.language);
|
|
|
+ if (res.ok) {
|
|
|
+ this.form = { ...this.form, ...res.data }
|
|
|
+ // 启动倒计时更新定时器
|
|
|
+ this.startCountdown();
|
|
|
+ this.$nextTick(() => {
|
|
|
+ if (this.form.callbackStatus == "2") {
|
|
|
+ this.isShow = true
|
|
|
+ } else if (this.form.submitStatus == 1) {
|
|
|
+ this.Pay()
|
|
|
+ this.isShow = false
|
|
|
+ } else {
|
|
|
+ this.isShow = true
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ console.log("校验失败或异常:", err);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 语言切换函数
|
|
|
+ chooseLang(key) {
|
|
|
+ this.lang = content[key];
|
|
|
+ this.language = key;
|
|
|
+ sessionStorage.setItem("lang", this.language);
|
|
|
+ this.setRules();
|
|
|
+ // 切换语言后刷新 getCodeString,使按钮文案随语言变化
|
|
|
+ if (this.timer == 59 && !this.interval) {
|
|
|
+ this.getCodeString = this.lang.newSignup.item11;
|
|
|
+ } else {
|
|
|
+ this.getCodeString = this.lang.waitCode1 + this.timer + this.lang.waitCode2;
|
|
|
+ }
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.form.clearValidate();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ closeDia() {
|
|
|
+ this.dialogCheckOK = false;
|
|
|
+ this.$nextTick(() => {
|
|
|
+ if (this.form.submitStatus == 1) {
|
|
|
+ this.Pay()
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ closeDia1() { this.dialogCheck = false; this.getDepositSerial() },
|
|
|
+ //成功跳转页面
|
|
|
+ Pay() {
|
|
|
+ window.location.href = this.Host80 + "/payment.html";
|
|
|
+ },
|
|
|
+ //取消订单
|
|
|
+ async Cancle() {
|
|
|
+ try {
|
|
|
+ this.$confirm(this.lang.Msg.Cancle, this.lang.Msg.SystemPrompt, {
|
|
|
+ confirmButtonText: this.lang.Confirm,
|
|
|
+ cancelButtonText: this.lang.Cancel,
|
|
|
+ type: 'warning'
|
|
|
+ }).then(async () => {
|
|
|
+ const { id } = this.form;
|
|
|
+ const res = await Api.payCancel(this.Host04, { id }, this.form.token, this.language);
|
|
|
+ if (res.ok) {
|
|
|
+ this.getDepositSerial()
|
|
|
+ if (this.countdownInterval) {
|
|
|
+ clearInterval(this.countdownInterval);
|
|
|
+ this.countdownInterval = null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }).catch(() => {
|
|
|
+ });
|
|
|
+ } catch (err) {
|
|
|
+ console.log("校验失败或异常:", err);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ copySerial() {
|
|
|
+ const serial = this.form.serial;
|
|
|
+ if (!serial) return;
|
|
|
+ if (navigator.clipboard && window.isSecureContext) {
|
|
|
+ // 使用 Clipboard API
|
|
|
+ navigator.clipboard.writeText(serial).then(() => {
|
|
|
+ this.$message.success(this.lang.CopySuccess || '复制成功');
|
|
|
+ }).catch(err => {
|
|
|
+ console.error('复制失败:', err);
|
|
|
+ this.copySerialFallback(serial);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 降级方案
|
|
|
+ this.copySerialFallback(serial);
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ copySerialFallback(serial) {
|
|
|
+ const textarea = document.createElement('textarea');
|
|
|
+ textarea.value = serial;
|
|
|
+ textarea.setAttribute('readonly', '');
|
|
|
+ textarea.style.position = 'absolute';
|
|
|
+ textarea.style.left = '-9999px';
|
|
|
+ document.body.appendChild(textarea);
|
|
|
+ textarea.select();
|
|
|
+
|
|
|
+ try {
|
|
|
+ const successful = document.execCommand('copy');
|
|
|
+ if (successful) {
|
|
|
+ this.$message.success(this.lang.CopySuccess || '复制成功');
|
|
|
+ } else {
|
|
|
+ this.$message.error(this.lang.CopyFailed || '复制失败');
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ console.error('复制失败:', err);
|
|
|
+ this.$message.error(this.lang.CopyFailed || '复制失败');
|
|
|
+ }
|
|
|
+
|
|
|
+ document.body.removeChild(textarea);
|
|
|
+ },
|
|
|
+ initCountdown() {
|
|
|
+ if (!this.form.payTime || !this.form.nowTime) {
|
|
|
+ this.timeLeft = 0;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Safari / iOS 兼容
|
|
|
+ const expire = new Date(
|
|
|
+ this.form.payTime.replace(/-/g, '/')
|
|
|
+ ).getTime();
|
|
|
+
|
|
|
+ const serverNow = new Date(
|
|
|
+ this.form.nowTime.replace(/-/g, '/')
|
|
|
+ ).getTime();
|
|
|
+
|
|
|
+ const diff = Math.floor((expire - serverNow) / 1000);
|
|
|
+
|
|
|
+ this.timeLeft = diff > 0 ? diff : 0;
|
|
|
+ },
|
|
|
+
|
|
|
+ /* =============================
|
|
|
+ * 启动倒计时
|
|
|
+ * ============================= */
|
|
|
+ startCountdown() {
|
|
|
+ this.clearCountdown();
|
|
|
+
|
|
|
+ this.initCountdown();
|
|
|
+ if (this.timeLeft <= 0) return;
|
|
|
+
|
|
|
+ this.countdownInterval = setInterval(() => {
|
|
|
+ if (this.timeLeft <= 0) {
|
|
|
+ this.clearCountdown();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.timeLeft--;
|
|
|
+ }, 1000);
|
|
|
+ },
|
|
|
+
|
|
|
+ /* =============================
|
|
|
+ * 清理定时器
|
|
|
+ * ============================= */
|
|
|
+ clearCountdown() {
|
|
|
+ if (this.countdownInterval) {
|
|
|
+ clearInterval(this.countdownInterval);
|
|
|
+ this.countdownInterval = null;
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ /* =============================
|
|
|
+ * 格式化倒计时展示
|
|
|
+ * ============================= */
|
|
|
+ formatCountdown(seconds) {
|
|
|
+ const days = Math.floor(seconds / 86400);
|
|
|
+ const hours = Math.floor((seconds % 86400) / 3600);
|
|
|
+ const minutes = Math.floor((seconds % 3600) / 60);
|
|
|
+ const secs = seconds % 60;
|
|
|
+
|
|
|
+ const daysText = this.lang.days || '天';
|
|
|
+ const hoursText = this.lang.hours || '小时';
|
|
|
+ const minutesText = this.lang.minutes || '分钟';
|
|
|
+ const secondsText = this.lang.seconds || '秒';
|
|
|
+
|
|
|
+ if (days > 0) {
|
|
|
+ return `${days}${daysText} ${hours}${hoursText} ${minutes}${minutesText}`;
|
|
|
+ } else if (hours > 0) {
|
|
|
+ return `${hours}${hoursText} ${minutes}${minutesText} ${secs}${secondsText}`;
|
|
|
+ } else {
|
|
|
+ return `${String(minutes).padStart(2, '0')}:${String(secs).padStart(2, '0')}`;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ setRules() {
|
|
|
+ this.rules = {
|
|
|
+ deductionAccount: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: this.lang['Title7'],
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ if (!value) {
|
|
|
+ callback();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 检查余额是否足够
|
|
|
+ if (this.isBalanceInsufficient) {
|
|
|
+ callback(new Error(this.lang.amount1));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ cvv: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: this.lang['p2'],
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ pin: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: this.lang['p3'],
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ emailCode: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: this.lang['p4'],
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ let ht = window.location.protocol;
|
|
|
+ let ho = window.location.host.split('.')[1];
|
|
|
+ // this.Host04 = 'http://192.168.0.18:8004'
|
|
|
+ // this.Host80 = 'http://192.168.0.18:8000'
|
|
|
+ // this.Host04 = 'https:' + "//pay." + '44a5c8109e4' + ".com"
|
|
|
+ // this.Host80 = 'https:' + "//secure." + '44a5c8109e4' + ".com"
|
|
|
+ this.Host04 = ht + "//pay." + ho + ".com"
|
|
|
+ this.Host80 = ht + "//secure." + ho + ".com"
|
|
|
+ try {
|
|
|
+ const searchParams = new URLSearchParams(window.location.search);
|
|
|
+ const params = searchParams.get('params');
|
|
|
+ this.isShow = false
|
|
|
+ if (params) {
|
|
|
+ const str = parseParams(safeDecrypt(params));
|
|
|
+ this.form = {
|
|
|
+ ...this.form,
|
|
|
+ ...str,
|
|
|
+ }
|
|
|
+ this.language = this.form.lang;
|
|
|
+ sessionStorage.setItem("lang", this.language);
|
|
|
+ this.lang = content[this.form.lang];
|
|
|
+ if (!this.lang) {
|
|
|
+ setLang(this)
|
|
|
+ }
|
|
|
+ this.setRules()
|
|
|
+ this.getAccountDropdown()
|
|
|
+ // this.userSingle()
|
|
|
+ this.initTimer();
|
|
|
+ this.getDepositSerial()
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('解析URL参数时出错:', error);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ beforeDestroy() {
|
|
|
+ this.clearCountdown();
|
|
|
+ },
|
|
|
+});
|