CINXE.COM
Checkout Payment - OnePlus (United States)
<!doctype html> <html from="CMS-Render:OnePlus Overseas"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" /> <title>Checkout Payment - OnePlus (United States)</title> <link rel="canonical" href="https://www.oneplus.com/us/checkout/payment" /> <link rel="alternate" hreflang="x-default" href="https://www.oneplus.com/checkout/payment" /> <link rel="alternate" hreflang="en-US" href="https://www.oneplus.com/us/checkout/payment" /> <link rel="alternate" hreflang="es-US" href="https://www.oneplus.com/us_es/checkout/payment" /> <link rel="alternate" hreflang="fr-CA" href="https://www.oneplus.com/ca_fr/checkout/payment" /> <link rel="alternate" hreflang="en-CA" href="https://www.oneplus.com/ca_en/checkout/payment" /> <link rel="alternate" hreflang="es-MX" href="https://www.oneplus.com/mx/checkout/payment" /> <link rel="alternate" hreflang="es-CL" href="https://www.oneplus.com/cl/checkout/payment" /> <link rel="alternate" hreflang="de-AT" href="https://www.oneplus.com/at/checkout/payment" /> <link rel="alternate" hreflang="nl-BE" href="https://www.oneplus.com/be_nl/checkout/payment" /> <link rel="alternate" hreflang="fr-BE" href="https://www.oneplus.com/be_fr/checkout/payment" /> <link rel="alternate" hreflang="bg-BG" href="https://www.oneplus.com/bg/checkout/payment" /> <link rel="alternate" hreflang="hr-HR" href="https://www.oneplus.com/hr/checkout/payment" /> <link rel="alternate" hreflang="el-CY" href="https://www.oneplus.com/cy_gr/checkout/payment" /> <link rel="alternate" hreflang="tr-CY" href="https://www.oneplus.com/cy_tr/checkout/payment" /> <link rel="alternate" hreflang="cs-CZ" href="https://www.oneplus.com/cz/checkout/payment" /> <link rel="alternate" hreflang="da-DK" href="https://www.oneplus.com/dk/checkout/payment" /> <link rel="alternate" hreflang="ee-EE" href="https://www.oneplus.com/ee/checkout/payment" /> <link rel="alternate" hreflang="fi-FI" href="https://www.oneplus.com/fi/checkout/payment" /> <link rel="alternate" hreflang="fr-FR" href="https://www.oneplus.com/fr/checkout/payment" /> <link rel="alternate" hreflang="de-DE" href="https://www.oneplus.com/de/checkout/payment" /> <link rel="alternate" hreflang="el-GR" href="https://www.oneplus.com/gr/checkout/payment" /> <link rel="alternate" hreflang="hu-HU" href="https://www.oneplus.com/hu/checkout/payment" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/ie/checkout/payment" /> <link rel="alternate" hreflang="it-IT" href="https://www.oneplus.com/it/checkout/payment" /> <link rel="alternate" hreflang="lv-LV" href="https://www.oneplus.com/lv/checkout/payment" /> <link rel="alternate" hreflang="lt-LT" href="https://www.oneplus.com/lt/checkout/payment" /> <link rel="alternate" hreflang="fr-LU" href="https://www.oneplus.com/lu_fr/checkout/payment" /> <link rel="alternate" hreflang="de-LU" href="https://www.oneplus.com/lu_de/checkout/payment" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/mt/checkout/payment" /> <link rel="alternate" hreflang="nl-NL" href="https://www.oneplus.com/nl/checkout/payment" /> <link rel="alternate" hreflang="pl-PL" href="https://www.oneplus.com/pl/checkout/payment" /> <link rel="alternate" hreflang="pt-PT" href="https://www.oneplus.com/pt/checkout/payment" /> <link rel="alternate" hreflang="ro-RO" href="https://www.oneplus.com/ro/checkout/payment" /> <link rel="alternate" hreflang="es-ES" href="https://www.oneplus.com/es/checkout/payment" /> <link rel="alternate" hreflang="sk-SK" href="https://www.oneplus.com/sk/checkout/payment" /> <link rel="alternate" hreflang="sl-SI" href="https://www.oneplus.com/si/checkout/payment" /> <link rel="alternate" hreflang="sv-SE" href="https://www.oneplus.com/se/checkout/payment" /> <link rel="alternate" hreflang="en-GB" href="https://www.oneplus.com/uk/checkout/payment" /> <link rel="alternate" hreflang="nb-NO" href="https://www.oneplus.com/no/checkout/payment" /> <link rel="alternate" hreflang="ru-RU" href="https://www.oneplus.com/ru/checkout/payment" /> <link rel="alternate" hreflang="tr-TR" href="https://www.oneplus.com/tr/checkout/payment" /> <link rel="alternate" hreflang="ru-BY" href="https://www.oneplus.com/by/checkout/payment" /> <link rel="alternate" hreflang="ru-KZ" href="https://www.oneplus.com/kz/checkout/payment" /> <link rel="alternate" hreflang="uk-UA" href="https://www.oneplus.com/ua/checkout/payment" /> <link rel="alternate" hreflang="sr-RS" href="https://www.oneplus.com/rs/checkout/payment" /> <link rel="alternate" hreflang="zh" href="https://www.oneplus.com/cn/checkout/payment" /> <link rel="alternate" hreflang="zh-HK" href="https://www.oneplus.com/hk/checkout/payment" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/hk_en/checkout/payment" /> <link rel="alternate" hreflang="en-IN" href="https://www.oneplus.in/checkout/payment" /> <link rel="alternate" hreflang="th-TH" href="https://www.oneplus.com/th/checkout/payment" /> <link rel="alternate" hreflang="en-MY" href="https://www.oneplus.com/my/checkout/payment" /> <link rel="alternate" hreflang="vi-VN" href="https://www.oneplus.com/vn/checkout/payment" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/au/checkout/payment" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/sg/checkout/payment" /> <link rel="alternate" hreflang="en-NP" href="https://www.oneplus.com/np/checkout/payment" /> <link rel="alternate" hreflang="my-MM" href="https://www.oneplus.com/mm/checkout/payment" /> <link rel="alternate" hreflang="en-PH" href="https://www.oneplus.com/ph/checkout/payment" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/bd/checkout/payment" /> <link rel="alternate" hreflang="ar-AE" href="https://www.oneplus.com/ae/checkout/payment" /> <link rel="alternate" hreflang="ar-SA" href="https://www.oneplus.com/sa/checkout/payment" /> <link rel="alternate" hreflang="en-IL" href="https://www.oneplus.com/il/checkout/payment" /> <link rel="alternate" hreflang="en-PK" href="https://www.oneplus.com/pk/checkout/payment" /> <link rel="alternate" hreflang="ar-IQ" href="https://www.oneplus.com/iq/checkout/payment" /> <link rel="alternate" hreflang="ar-EG" href="https://www.oneplus.com/eg/checkout/payment" /> <link rel="alternate" hreflang="ar-BH" href="https://www.oneplus.com/bh/checkout/payment" /> <link rel="alternate" hreflang="ar-OM" href="https://www.oneplus.com/om/checkout/payment" /> <link rel="alternate" hreflang="ar-JO" href="https://www.oneplus.com/jo/checkout/payment" /> <link rel="alternate" hreflang="ar-QA" href="https://www.oneplus.com/qa_ar/checkout/payment" /> <link rel="alternate" hreflang="en-QA" href="https://www.oneplus.com/qa_en/checkout/payment" /> <link rel="alternate" hreflang="fr-TN" href="https://www.oneplus.com/tn_fr/checkout/payment" /> <link rel="alternate" hreflang="en-TN" href="https://www.oneplus.com/tn_en/checkout/payment" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/za/checkout/payment" /> <link rel="alternate" hreflang="en" href="https://www.oneplus.com/global/checkout/payment" /> <meta name="description" content="" /> <meta name="keywords" content="" /> <meta name="robots" content="INDEX,FOLLOW" /> <meta name="referrer" content="no-referrer-when-downgrade"> <meta http-equiv="x-dns-prefetch-control" content="on"> <link rel="preconnect" href="https://oasis.opstatics.com"> <link rel="preconnect" href="https://cdn.opstatics.com"> <link rel="preconnect" href="https://mallapi-na.oneplus.com"> <link rel="preconnect" href="https://image01.oneplus.net"> <link rel="preconnect" href="https://storeapi-na.oneplus.com"> <link rel="preconnect" href="https://image01.oneplus.net"> <link rel="dns-prefetch" href="https://www.googletagmanager.com"> <link rel="dns-prefetch" href="https://www.googleadservices.com"> <link rel="dns-prefetch" href="https://www.google-analytics.com"> <link rel="dns-prefetch" href="https://googleads.g.doubleclick.net"> <link rel="dns-prefetch" href="https://stats.g.doubleclick.net"> <link rel="dns-prefetch" href="https://www.facebook.com"> <link rel="dns-prefetch" href="https://connect.facebook.net"> <link rel="dns-prefetch" href="https://privacy-policy.truste.com"> <meta property="og:title" content="Never Settle - OnePlus.com" /> <meta property="og:image" content="https://www.oneplus.com/content/dam/oasis/page/common/logo/OnePlus_Logo.png" /> <meta property="og:description" content="OnePlus creates beautifully designed products with premium build quality & brings the best technology to users around the world. No tradeoffs, we #NeverSettle." /> <meta name="title:webview" content="Checkout"> <link rel="icon" href="https://oasis.opstatics.com/content/dam/oasis/oneplus.ico" type="image/x-icon" /> <link rel="shortcut icon" href="https://oasis.opstatics.com/content/dam/oasis/oneplus.ico" type="image/x-icon" /> <input type="hidden" id="google-map-url" name="google-map-url" value="https://maps.googleapis.com/maps/api/js?key=AIzaSyCGy2hxCtx9htbtwbP8ZBgfB9SJtZaiY5k&libraries=places&language=en"> <script>window.isNewLoginConfig = {callbackUrl: window.location.origin + '/account/login', bizAppKey: 'DkPXNvHbK1uQrd4nG5drut', environment: 'prod', userCenter: 'https://accounts.oneplus.com/v2/profile.html'};window.op=window.op||{};window.op.initTime=new Date();window.isEncrypt=true;window.mallUrl="https://mallapi-na.oneplus.com/v2/api/router";window.isPreLoadLoginPopup = true; window.preLoadLoginPopupSrc = 'https://accounts.oneplus.com/v2/popper.html?bizAppKey=DkPXNvHbK1uQrd4nG5drut&callback=https%3A%2F%2Fwww.oneplus.com%2Faccount%2Flogin';window.preLoadHtmlSrc= 'https://accounts.oneplus.com/v2/popper.html?bizAppKey=DkPXNvHbK1uQrd4nG5drut&callback=https%3A%2F%2Fwww.oneplus.com%2Faccount%2Flogin'</script> <script src="https://cdn.opstatics.com/js/packages/account_web_sdk/index.umd.js"></script> <link rel="preload" href="https://oasis.opstatics.com/content/dam/statics/oasis/font/aem-font/index-v3.css?version=v1" as="style" crossorigin> <link rel="preload" href="https://cdn.opstatics.com/store/20170907/assets/styles/vendor.css?v=1739171933084" as="style" crossorigin> <link rel="preload" href="https://cdn.opstatics.com/store/20170907/assets/scripts/vendor.js?v=1739171933084" as="script" crossorigin> <link rel="preload" href="https://cdn.opstatics.com/store/20170907/checkout-payment/index.css?v=1739171933084" as="style" crossorigin> <link rel="preload" href="https://cdn.opstatics.com/store/20170907/checkout-payment/index.js?v=1739171933084" as="script" crossorigin> <style> #header.new-nav .icon-header.ico-header-logo { margin-right: 0; } #header.new-nav .user-info-nav .user-info-content .user-avatar { display: flex; } @media screen and (max-width: 1024px) { #header.new-nav.nav-fixed .nav .nav-right .header-search.show-in-mobile { display: none; } } </style> <script>window.isCommunity=!!(typeof window.COMMUNITY_APP_ACCOUNT !== 'undefined' && typeof window.COMMUNITY_APP_ACCOUNT.COMMUNITY_APP_ACCOUNT_LOGIN !== 'undefined' && typeof window.COMMUNITY_APP_ACCOUNT.COMMUNITY_APP_ACCOUNT_LOGIN === 'function')</script> <script>window.obusCountryCode = "us";window.isAccessObus=true;window.isProductionEnv='https://www.oneplus.com/us'.indexOf('test')==-1&&'https://www.oneplus.com/us'.indexOf('dev')==-1</script> </head> <body class="cms-index-index cms-home hide-body "> <style> .order-detail-card.no-padding{ padding:32px 24px 0 24px } </style> <style type="text/css" id="universal-loading-canvas-style"> .hide-body{height:0;overflow:hidden}body,html{overflow-x:hidden}.universal-loading-canvas{position:fixed;top:0;height:100%;width:100%}.universal-loading-canvas .univesal-loading-container{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.univesal-loading-container{display:block;width:48px;height:48px}@media screen and (max-width:735px){.univesal-loading-container{width:40px;height:40px}}.univesal-loading-container .universal-spinner{-webkit-animation:1.4s linear infinite rotator;animation:1.4s linear infinite rotator;width:100%;height:100%}.univesal-loading-container .path{stroke-dasharray:187;stroke-dashoffset:0;-webkit-transform-origin:center;transform-origin:center;stroke:#000 !important;-webkit-animation:1.4s ease-in-out infinite dash;animation:1.4s ease-in-out infinite dash}@-webkit-keyframes rotator{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@keyframes rotator{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(270deg);transform:rotate(270deg)}}@-webkit-keyframes white-colors{0%,25%,50%,75%,to{stroke:#fff}}@keyframes white-colors{0%,25%,50%,75%,to{stroke:#fff}}@-webkit-keyframes dash{0%{stroke-dashoffset:187}50%{stroke-dashoffset:46.75;-webkit-transform:rotate(135deg);transform:rotate(135deg)}to{stroke-dashoffset:187;-webkit-transform:rotate(450deg);transform:rotate(450deg)}}@keyframes dash{0%{stroke-dashoffset:187}50%{stroke-dashoffset:46.75;-webkit-transform:rotate(135deg);transform:rotate(135deg)}to{stroke-dashoffset:187;-webkit-transform:rotate(450deg);transform:rotate(450deg)}} </style> <section class="universal-loading-canvas" id="universal-loading-canvas"> <i class="univesal-loading-container"> <svg class="universal-spinner" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg"> <circle class="path" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle> </svg> </i> </section> <input type="hidden" id="local_price_format" value="%7B%22pattern%22%3A%22%24%25s%22%2C%22precision%22%3A2%2C%22requiredPrecision%22%3A2%2C%22decimalSymbol%22%3A%22.%22%2C%22groupSymbol%22%3A%22%2C%22%2C%22groupLength%22%3A3%2C%22integerRequired%22%3A1%7D"> <input type="hidden" id="mark-currency-format" name="mark-currency-format" value="%7B%22pattern%22%3A%22%24%25s%22%2C%22precision%22%3A2%2C%22requiredPrecision%22%3A2%2C%22decimalSymbol%22%3A%22.%22%2C%22groupSymbol%22%3A%22%2C%22%2C%22groupLength%22%3A3%2C%22integerRequired%22%3A1%7D"> <input type="hidden" id="_current_store" value="us"> <input type="hidden" id="link-home" name="link-home" value="https://www.oneplus.com/us/"> <input type="hidden" id="_india_host" value="https://www.oneplus.in"> <input type="hidden" id="_net_host" value="https://www.oneplus.com"> <input type="hidden" id="_cn_host" value="https://www.oneplus.com/cn"> <input type="hidden" id="_in_account" value="https://account.oneplus.in"> <input type="hidden" id="_com_account" value="https://account.oneplus.com"> <input type="hidden" id="assets-public-path" name="assets-public-path" value="https://cdn.opstatics.com"> <input type="hidden" id="sign-in-url" name="sign-in-url" value="https://account.oneplus.com/json/store/signIn"> <input type="hidden" id="link-user-center" name="link-user-center" value="https://www.oneplus.com/us/customer/info"> <input type="hidden" id="mark-current-store" name="mark-current-store" value="us"> <input type="hidden" name="mark-currency-code" id="mark-currency-code" value="USD"> <input type="hidden" name="risk-jump-url" id="risk-jump-url" value="https://www.oneplus.com/us/account/sign-in/security_warning"> <input type="hidden" id="user-behavior-url" name="user-behavior-url" value="https://mallapi-na.oneplus.com/v2/api/router"> <input type="hidden" id="mall-api-url" name="mall-api-url" value="https://mallapi-na.oneplus.com/v2/api/router"> <input type="hidden" id="member-api-url" name="member-api-url" value="https://memberapi-na.oneplus.com/v2/api/router"> <input type="hidden" id="membership-api-url" name="membership-api-url" value="https://membershipapi-na.oneplus.com/api/2.0"> <input type="hidden" id="mall-rest-url" name="mall-rest-url" value="https://mallapi-na.oneplus.com/v2/api/rest"> <input type="hidden" id="mall-api-url-rest" name="mall-api-url" value="https://mallapi-na.oneplus.com/v2/api/rest"> <input type="hidden" id="domain_rest_levin" name="domain_rest_levin" value="https://mallapi-na.oneplus.com/v2/api/rest"> <script type="text/javascript"> var onloadCallback = function() { $('#g_recaptcha').removeClass('hidden'); grecaptcha.render('g_recaptcha_placeholder', { 'sitekey' : '6LcXjQcUAAAAANKDft8a25E8PRogqCPKENK2LCnv', 'theme' : 'white', 'tabindex' : 5, 'size' : 'width: 304px; height: 80px;' }); }; </script> <script type="application/json" id="header-data-email-list"> ["@gmail.com","@hotmail.com","@yahoo.com","@outlook.com","@yahoo.co.in","@googlemail.com","@hotmail.co.uk","@hotmail.fr","@yahoo.in","@hotmail.it","@ymail.com","@msn.com","@yahoo.co.uk","@mail.ru","@hotmail.com","@foxmail.com"] </script> </script> <script type="application/json" id="header-data-email-err-list"> { "180085": "Oops! Please try again.", "180082": "Subscribe too many. Try again later.", "180080": "Oops, you have already subscribed." } </script> <script type="application/json" id="header-data-translation"> { "emailTooFast":"Subscribe too many. Try again later.", "emailFail":"Oops! Please try again.", "emailPlaceholder": "Email address", "phonePlaceholder": "Enter phone number", "emailOrPhonePlaceholder": "Your e-mail or phone number", "phonePlaceholder": "Enter phone number", "emailOrPhonePlaceholder": "Your e-mail or phone number", "emailEmptyErrorTip":"The email address field cannot be empty.", "emailInvalidErrorTip":"Invalid email address. Please retry.", "emailSystemErrorTip":"System error, please try again later.", "emailSubscribedErrorTip":"Oops, you have already subscribed.", "emailFrequentErrorTip":"System busy, please try again later.", "succeedTip":"Thanks for subscribing!", "source":"auto-subscribe-source", "listId":"7a427be021", "event":"Subscribe", "form":"Subscription_for_Gift", "event_click":"Subscribe_Click", "form_click":"Gift_for_Subscription_Ribbon_Click", "iconImg":"https://image01.oneplus.net/shop/201811/15/1755/5ccb72c2de1ce47220a0e1fad8e79915.png", "day":7, "twitterUrl":"https://twitter.com/OnePlus_USA", "instagramUrl":"https://www.instagram.com/oneplus_usa/", "facebookUrl":"https://business.facebook.com/oneplusna", "forumUrl":"https://forums.oneplus.com", "isReportData":false, "questionTips":"How would you rate your experience on this page?", "shareFeedBack":"Rate now" } </script> <script type="application/json" id="header-data-url-list"> [] </script> <script> window.AJAX_OPTIONS = { timeout: 60000, tips: 'Oops, the spaceship just got lost! We are trying to get it back to earth.' } </script> <script type="application/json" id="signin-locale-data"> { "signInPage": { "creatRegister":"Your phone number is not registered. Would you like to register now ?", "registerTerms":"I agree to <a href=\"https://www.oneplus.com/us/legal/user-agreement\" class=\"link-blue\" target=\"_blank\">User Agreement</a>. Please see our <a href=\"https://www.oneplus.com/us/legal/privacy-policy\" class=\"link-blue\" target=\"_blank\">Privacy Policy</a>.", "creatRegisterBtn":"Creat and log in", "signInTitle":"Welcome", "bindMobileTitle": "Bind Mobile Number", "verifyMobileTitle": "Confirm Mobile Number", "verifyEmailTitle": "Confirm Your Email", "verifyAccountTitle": "Confirm Your Account", "createPwdTitle": "Create Your Password", "signInSubtitle": "Please use OnePlus account to log in.", "signInTips":"Or login with", "createAccount": "Create Account", "signIn": "Sign in", "signUp": "Sign up", "password": "Password", "confirm":"Confirm", "cancel": "Cancel", "facebook": "Facebook", "google": "Google", "forgotPassword": "Forgot password", "email": "Email", "emailOrNumber": "Email/Mobile Number", "mobileNumber": "Mobile Number", "change": "Change", "edit": "Edit", "otp": "Enter the OTP", "getOtp": "Get code", "otpTerms": "If you never register with your phone number, a new account will be created when you use OTP to login.", "terms": "Protected by reCAPTCHA and subject to the OnePlus <a href=\"https://www.oneplus.com/us/legal/user-agreement\" class=\"link-blue\" target=\"_blank\">User Agreement</a> and <a href=\"https://www.oneplus.com/us/legal/privacy-policy\" class=\"link-blue\" target=\"_blank\">Privacy Policy</a>.", "emailCode": "Email code", "getEmailCode": "Get email code", "signUseOTP": "Phone number", "signUsePwd": "Password", "verifyMobile": "Verify Mobile Number", "hasSendEmail": "We have sent a verification code to your", "hasSendCode": "We have sent a verification code to your", "sendAgain": "Send again", "later": " later", "sendedText":"", "sendSucceedToast": "Verification code is sent.", "sendMobileSucceed": "The verification code has been sent.", "sendVerifyCodeSucceed": "The verification code has been sent.", "bindMobileTips": "For account security and normal use, please bind your mobile number according to the Cyber Security Law.", "verifyMobileTips": "For account security and normal use, you need to verify your mobile number.", "verifyEmailTips": "For account security and normal use, you need to verify your email account.", "kindlyRemind":"Kindly Remind", "richContentDialogTip":"Login failed. Your account is set to be deactivated. Please reactivate your account before logging in.", "closeWindow":"Close window", "richRecover": "Reactive account", "bindAgree": "By submitting this form, you agree to our <br><a href=\"{privacyLegalLink}\" class=\"text-black text-strong text-underline\">Privacy Policy</a> and <a href=\"{termsConditionsLink}\" class=\"text-black text-strong text-underline\">Terms of Use</a>", "format":{ "dd":"days", "hh": "hour", "mm": "min", "ss": "s" }, "passwordRulesTips":{ "letterRule":"2 or more of letters, numbers and symbols", "lengthRule":"8 ~16 characters" } }, "accountTips": { "mobileErrorTip": "Please enter a valid mobile number.", "emailErrorTip":"Please ensure the email follows this format: name@example.com", "mobileEmptyErrorTip": "Please enter a valid mobile number.", "emailEmptyErrorTip":"Please enter a valid email address.", "mobileOrEmailEmptyErrorTip":"Please enter a valid email address or phone number", "emailPatternErrorTip":"Please ensure the email follows this format: name@example.com", "emailUnConfirmTip": "Your account may not be confirmed. Check your email for the confirmation link. Please <a href=\"{verifyEmailLink}\" class=\"link-action link-underline\">Confirm</a>", "emailNoExistedTip": "The email does not exist. Please <a href=\"{signUpLink}\" class=\"link-action link-underline\">Sign up</a>", "emailDeactivatedErrorTip":"The account is deactivated.", "pwdErrorTip":"Password does not meet minimal requirements.", "pwdPatternErrorTip":"Password does not meet minimal requirements.", "pwdEmptyErrorTip":"Please enter a valid password.", "pwdFormatErrorTip": "Please enter a valid password.", "pwdRulesErrorTip":"Please ensure your password meets all requirements listed below.", "pwdNoMatchError":"Password or email is incorrect. Please try again.", "paramsError":"Password or email is incorrect. Please try again.", "tooManyAttemptsErrorTip":"Too Many Attempts. Please try again later.", "googleVerifyErrorTip":"Google verification error. Please try again.", "verifyErrorTip": "VerifyCode incorrect, please input again." } } </script> <script> window.GLOBAL_ACCOUNT_CONFIG = { "DOMAIN_ACCOUNT_CENTER_OATH": "https://account.oneplus.com/service", "DOMAIN_ACCOUNT_CENTER": "https://account.oneplus.com/service", "DOMAIN_ACCOUNT": "https://account.oneplus.com", "DOMAIN_XMAN": "https://storeapi-na.oneplus.com", "HOME_URL": "https://www.oneplus.com/us", "recaptcha": { "size": "invisible", "tabindex": 5 }, "defaultUrl": "https://www.oneplus.com/us", "signInLink": "https://account.oneplus.com/signin", "signUpLink": "https://account.oneplus.com/signup", "forgotLink": "https://account.oneplus.com/forgot", "verifyEmailLink": "https://account.oneplus.com/signup#/email?rt=1", "verifyUrlLink": "https://account.oneplus.com/confirm-url", "setUserNameLink": "https://account.oneplus.com/update-username", "userAgreementLink": "https://www.oneplus.com/us/legal/user-agreement", "privacyPolicy": "https://www.oneplus.com/us/legal/privacy-policy", "privacyLegalLink": "https://www.oneplus.com/us/privacy-and-legal", "termsConditionsLink": "https://www.oneplus.com/us/privacy-and-legal#terms-and-conditions", "isGray": true, "isSupportOTP": false, "supportType": "email", "isSnsFacebook": false, loginConfig: { app: 10, client: 1 }, telConfig: { cn: { // 中国 name: 'China', reg: /^1[1|2|3|4|5|6|7|8|9]\d{9}$/, prefix: '+86', mc: 'cn' }, in: { // 印度 name: 'India', reg: /^[6789]\d{9}$/, prefix: '+91', mc: 'in' }, us: { // 美国 name: 'United States', reg: /^[0-9-+()\s]{10}$/, prefix: '+1', mc: 'us' }, uk: { name: 'United Kingdom', reg: /^[0-9(\-+)\s]{7,}$/i, prefix: '+44', mc: 'uk' } }, grayConfig: { signIn: ['https://account.oneplus.com/signin', 'https://www.oneplus.com/us/account/sign-in'], signUp: ['https://account.oneplus.com/signup', 'https://www.oneplus.com/us/account/sign-up'], forgot: ['https://account.oneplus.com/forgot', 'https://www.oneplus.com/us/account/forgot-password'] } } function checkGray(pageName, isOld) { var search = window.location.search if (window.GLOBAL_ACCOUNT_CONFIG.isGray) { if (isOld) { var grayConfig = window.GLOBAL_ACCOUNT_CONFIG.grayConfig if (grayConfig && grayConfig[pageName] && grayConfig[pageName][1]) { window.location.href = grayConfig[pageName][0] + search } } } else { if (!isOld) { var grayConfig = window.GLOBAL_ACCOUNT_CONFIG.grayConfig if (grayConfig && grayConfig[pageName] && grayConfig[pageName][1]) { window.location.href = grayConfig[pageName][1] + search } } } } </script> <script type="application/json" id="localize-domain-data"> { "localizeDomain": { "mainapi": "https://storeapi-na.oneplus.com", "reviewapi": "https://reviewapi-na.oneplus.com", "accountapi": "https://accountapi-na.oneplus.com", "payapi": "https://payapi-na.oneplus.com", "supportapi": "https://supportapi-na.oneplus.com", "mallapi":"https://mallapi-na.oneplus.com" } } </script> <link rel="stylesheet" crossorigin href="https://oasis.opstatics.com/content/dam/statics/oasis/font/aem-font/index-v3.css?version=v1"/> <link rel="stylesheet" crossorigin href="https://cdn.opstatics.com/store/20170907/assets/styles/vendor.css?v=1739171933084" /> <link rel="stylesheet" crossorigin href="https://cdn.opstatics.com/store/20170907/checkout-payment/index.css?v=1739171933084"> <script src="https://cdn.opstatics.com/store/20170907/assets/scripts/vendor.js?v=1739171933084"></script> <div v-if="isShowFloating" id="floating-layer"> <online-chat></online-chat> </div> <div id="page-header"> <div class="hidden-in-member-app hidden-in-store-app"> <div id="header" class="checkout-header new-nav" > <a class="ico-header-logo brand-img icon-header" href="https://www.oneplus.com/us" @click="trackHeaderClick('back to homepage','OnePlus Logo')"></a> <a class="cart" href="https://www.oneplus.com/us/jcart" @click="trackHeaderClick('Shopping cart','entry')"><span class="ico-header-cart icon-header"></span></a> </div> </div> <current-limiting-dialog ref="currentLimitingDialog"></current-limiting-dialog> <script type="application/json" id="current-limiting-translation"> { "title": "Hold on a minute!", "subtitle": "Too many people are trying to load this page.Please give the servers a little time to process.", "refresh": "Refresh page" } </script> </div> <style> .region-banner .one-select__content--field .select-box .select-title { z-index: 10; } @media screen and (max-width: 1024px) { .paypal-fast-payment-box { min-height: 79px; } } .paypal-fast-payment-box { min-height: 38px; } @media screen and (max-width: 649px) { .checkout-faq .faq-wrap .faq-content.is1312px { padding: 0 20px; } } .na-oneplus-open-tips .font-body-md { font-size: 12px; } .order-review-module .info-item .content { font-size: unset; } /** 常驻问卷入口样式 */ /** 常驻问卷入口样式 */ .question-container .question-wrap { display: inline-flex; flex-wrap: wrap; } .question-container .question-wrap .label { margin-right: 8px; } .question-container .question-wrap .value { display: inline-flex; flex-wrap: wrap; margin-left: 0; } .question.pay-question { border-top: 1px solid #eaeaea; } .question.pay-question .question-wrap { padding: 30px 0px; } @media screen and (min-width: 1024px) { .question.pay-question .question-wrap { max-width: 1440px; padding: 32px 64px; } } @media screen and (min-width: 650px) and (max-width: 1023px) { .question.pay-question .question-wrap, .question.checkout-question .question-wrap { max-width: 1440px; padding: 32px 48px; } } @media screen and (max-width: 649px) { .question.pay-question .question-wrap { max-width: 1312px; min-width: 300px; padding: 30px 20px; } } .main-product-content { width: 100%; } .shipping-title .add-btn { white-space: nowrap; } </style> <style> .coupon-terms__content ul { padding-left:16px; } .coupon-terms__content li{ list-style: inherit; } </style> <main id="checkout-payment"> <!-- 加载一加字体 --> <div class="load-oneplus-font">OnePlus</div> <!-- 群体优惠 --> <div class="discount-program" v-if="discountProgramName" >{{ discountProgramName }}</div> <!-- 页面主体 --> <div class="checkout-payment common-content"> <div class="checkout-content-header hidden-pc"> <div class="font-heading-lg-display checkout-title">{{$t('checkout')}}</div> <step-bar class="step-bar-container" :current-step="currentStep" :steps="checkoutSteps" :is-free="isFree" :is-presale-final="isPresaleFinal" @click-step="clickStep" > </step-bar> </div> <div class="checkout-main flex"> <div class="checkout-info"> <div class="checkout-content-header hidden-mobile"> <div class="font-heading-lg-display">{{$t('checkout')}}</div> <step-bar class="step-bar-container" :current-step="currentStep" :steps="checkoutSteps" :is-free="isFree" :is-presale-final="isPresaleFinal" @click-step="clickStep" > </step-bar> </div> <div class="checkout-load-cover" id="checkout-info" > <div class="shipping-cover"> <template v-if="showLoadingPage"> <div class="skeleton-item first loading-pad"></div> <div class="skeleton-item second loading-pad"></div> <div class="skeleton-item third loading-pad"></div> </template> <template v-else-if="currentStep == 1"> <div v-if="supportFastPaypal" class="skeleton-item" > <paypal-fast-payment ref="fastPaypal" :create-paypal-order-params="getOrderBasicParams" :currency-code="currencyCode" :before-get-paypal-order-detail="beforeGetPaypalOrderDetail" @get-paypal-order-detail-msg="getPaypalOrderDetail" > </paypal-fast-payment> <div class="fast-paypal flex"> <span class="divider"></span> <div class="middle"> <span>{{ $t('orRegularPay') }}</span> </div> <span class="divider"></span> </div> </div> <div v-if="isAllVirtual" class="warning-box" > <one-warning :type="'warning'" :content="virtualGoodsTips" ></one-warning> </div> <shipping-info class="skeleton-item" ref="shippingInfoRef" :is-visitor="isVisitor" :list="shippingAddressList" :selected="selectedShippingAddressId" :visitor-tmp-address="visitorTmpAddress" :loading="pageLoading" :email-required="emailRequired" :is-edit-address="isEditAddress" :is-presale="isPreSale" :is-all-virtual="isAllVirtual" :is-presale-final="isPresaleFinal" :paypal-address="fastPaypalAddress" :visitor-address="visitorAddress" :deposit-address="depositAddress" :email-empty-address="emailEmptyAddress" @change="changeShippingAddress" @edit="editingAddress" @error="handleAddressErr" > </shipping-info> <delivery-list class="skeleton-item" v-if="!isEditAddress && !isAllVirtual" :loading="loadingObj.delivery" :delivery-list="shippingMethodList" :selected="selectedDeliveryId" :hera-etd-text="heraEtdText" :hide-eta-bar="hideEtaBar" :is-deposit="isPresaleStart" :is-blind="isBlindSale" @change="changeShippingMethod" > </delivery-list> </template> <template v-else-if="currentStep == 2"> <!-- 以旧换新立减方式选择 --> <!-- 以旧换新立减方式选择 --> <trade-in-list v-if="isTradeInExist && (tradeInMethodData || isOnlyShowGetPayLater)" v-show="!isAddAddress" :data="tradeInMethodData" :edit-trade-in="editTradeInMethod" :subtotal-price="+checkoutData.subtotalPrice" :btn-loading="loadingObj.continue" :is-only-show-get-pay-later="isOnlyShowGetPayLater" @change="selectTradeIn" @confirm="confirmTradeIn" @edit="changeTradeIn" > </trade-in-list> <div v-if="!editTradeInMethod || !hasTradeIn"> <one-warning v-if="showErrorTip" v-show="!isAddAddress" :type="isFree?'warning':payErrorTextType" :content="payErrorText" ></one-warning> <div v-if="!isAddAddress" class="payment-title flex flex-space-between" > <span class="font-subheading-xl-display">{{$t('payment')}}</span> <span class="payment-title-right flex"><i class="ico ico-security-outline"></i><span class="font-body-lg" >{{$t('securePayment')}}<span></span> </div> <!-- 零元单单独选择订单地址 --> <div class="billing-address-warper" v-if="isFree" v-show="!isAddAddress" > <billing-address class="skeleton-item" :address-list="shippingAddressList" :is-show-edit="false" :is-show-add-btn="!isVisitor" :address="billingAddress||selectedShippingAddress" :shipping-address="selectedShippingAddress" :is-visitor="isVisitor" :same-as-shipping="sameAsShipping" :selected="billingAddress.id" @error="billingAddressError" @same-address="freeOrderSAMEAsShippingChange" @add-address="addAddress" @billing="changeBilling" ></billing-address> </div> <new-button class="next-step-btn" v-if="isFree" v-show="!isAddAddress" @click="goReviewOrder" :repeat-click="loadingObj.billing" > {{ $t('payMethodList.reviewOrder') }} </new-button> <div v-if="isAddAddress" class="add-address-box" > <add-billing-address class="skeleton-item" dark-mode :address="null" :is-visitor="isVisitor" @cancel="cancelAddAddress" @save="changeBillingAddress" ></add-billing-address> </div> <pay-method-list v-if="!isFree" v-show="!isAddAddress" :billing-address="billingAddress" :shipping-address="selectedShippingAddress" :is-visitor="isVisitor" :address-list="shippingAddressList" :is-presale-final="isPresaleFinal" :same-as-shipping="sameAsShipping" :currency-code="currencyCode" :create-paypal-order-params="getOrderBasicParams" :is-selected-paypal-fast="isSelectedPaypalFast" :fast-paypal-data="fastPaypalData" :is-all-virtual="isAllVirtual" :amount="+checkoutData.subtotalPrice" :pay-method-list="merchantPaymentMethods" @change-billing="changeBilling" @review-order="goReviewOrder" @pay-error="handlePayError" @on-select-payment="onSelectPayment" @get-pay-data="getPayData" @add-address="addAddress" > </pay-method-list> </div> </template> <template v-else> <order-review class="skeleton-item" :shipping="depositAddress || selectedShippingAddress" :delivery="selectedShippingMethod" :shipping-readonly="isPresaleFinal" :is-all-virtual="isAllVirtual" :is-free="isFree" :payment="paymentInfo" :billing="billingAddress" :same-as-shipping="sameAsShipping" :price-update="priceUpdate" @click-edit="clickEdit" > </order-review> </template> </div> <div class="skeleton-item button-load text-load" v-if="showNextBtn" > <new-button class="next-step-btn" @click="nextStep(2)" :disabled="loadingObj.continue" > {{$t('continueToPay')}} </new-button> </div> <div class="skeleton-item" v-if="currentStep==3" > <div class="need-user-agree" v-if="testFlag == 1 || testFlag == 2"> <!-- 用户条款 --> <div class="user-agree"> <one-checkbox v-model="isUserAgree" class="user-agree-checkbox-wrapper"> <div v-if="isTradeInExist" v-html="$t('order.placeOrderTcTrade')" class="font-body-md tc-content" ></div> <div v-else v-html="$t('order.placeOrderTc')" class="font-body-md tc-content" ></div> </one-checkbox> </div> <!-- 提交订单按钮 --> <new-button class="final-step next-step-btn" @click="onClickPlaceOrder" :disabled="placeOrderBtnDisabled" :repeat-click="loadingObj.submit" > {{ submitOrderBtn }} </new-button> <!-- 提交按钮提示文案 --> <p v-if="!submitOrderText" class="font-body-md text-gray submit-text">{{ submitOrderText }}</p> </div> <!-- 原始版本 --> <template v-else> <p class="font-body-md text-gray submit-text">{{ submitOrderText }}</p> <new-button class="final-step next-step-btn" @click="onClickPlaceOrder" :disabled="priceUpdate" :repeat-click="loadingObj.submit" > {{ submitOrderBtn }} </new-button> <div v-if="isTradeInExist" v-html="$t('order.placeOrderTcTrade')" class="font-body-md tc-content" ></div> <div v-else v-html="$t('order.placeOrderTc')" class="font-body-md tc-content" > </div> </template> </div> </div> </div> <order-detail class="checkout-right" :is-visitor="isVisitor" :coupon-data="couponData" :current-step="currentStep" :is-use-points="isUsePoints" :is-confirm-address="!!selectedShippingAddress&&!!selectedShippingMethod" @click-coupon="clickCoupon" @visitor-add-coupon="visitorAddCoupon" @integral-switch-change="integralSwitchChange" @on-remove-trade-in="onRemoveTradeIn" :product-details="checkoutData" :is-loading="pageLoading||loadingObj.continue" :price-loading="loadingObj.promo" :active-group-name="activeGroupName" ></order-detail> </div> </div> <div class="checkout-faq"> <faq class="common-content" v-if="faqs.length" :faq-title="faqTitle" :is1312px="true" :ext-style="{ backgroundColor: 'white' }" :is-need-common-burying-point="true" :faqs="faqs" ></faq> <!-- 欧美hotjar问卷入口 --> <section-question-eu v-if="showHotjarQuestion" class="question-container" :page-type="pageType" :question-label="hotjarData.label" :question-value="hotjarData.value" :hotjar-event-id="hotjarData.eventId" :question-cookie-time="hotjarData.cookieTime" :question-scenes-key="hotjarData.questionScenes" @close-hotjar-question="closeHotjarQuestion"></section-question-eu> </div> <!-- 地址弹窗 --> <shipping-dialog v-if="shippingDialogInit" v-model="shippingDialogVisable" ref="shippingDialog" :email-required="emailRequired" :is-presale="isPreSale" :is-deposit="isPresaleStart" :is-visitor="isVisitor" :is-all-virtual="isAllVirtual" :is-blind="isBlindSale" :shipping-list="shippingAddressList" :selected-shipping="selectedShippingAddressId" :selected-delivery="selectedDeliveryId" :delivery-list="shippingMethodList" :hera-etd-text="heraEtdText" :hide-eta-bar="hideEtaBar" :visitor-address="visitorAddress" :product-data="checkoutData.products" @address-list="updateShippingList" @confirm="confirmNewAddress" @cancel="closeDialog('shipping')" > </shipping-dialog> <!-- 支付弹窗 --> <one-dialog class="pay-dialog" v-if="paymentDialogInit&&paymentDialogVisable" v-model="paymentDialogVisable" ref="paymentDialog" :title="$t('payment')" is-fixed-height :confirm-button-text="$t('save')" :cancel-button-text="$t('cancel')" :is-close-click-confirm="false" :show-confirm-button="isShowEditPaymentDialogConfirmBtn" @cancel="closeDialog('payment')" @close-overlay="closeDialog('payment')" @close="closeDialog('payment')" @confirm="confrimPaymentDialog" > <pay-method-list ref="payMethodList" is-form-dialog :billing-address="billingAddress" :shipping-address="selectedShippingAddress" :currency-code="currencyCode" :selected-index="paymentInfo?.selectedIndex" :select-item="paymentInfo?.selectItem" :create-paypal-order-params="getOrderBasicParams" :is-selected-paypal-fast="isSelectedPaypalFast" :is-presale-final="isPresaleFinal" :fast-paypal-data="fastPaypalData" :amount="+checkoutData.subtotalPrice" :pay-method-list="merchantPaymentMethods" @change-billing="changeBilling" @on-select-payment="onSelectPayment" @on-edit-pay-method-selected="onEditPayMethodSelected" @get-pay-data="getPayData" > </pay-method-list> </one-dialog> <!-- 账单地址弹窗 --> <one-dialog v-if="billingDialogInit" v-model="billingDialogVisable" ref="billingDialog" :title="$t('billingInfo')" :confirm-button-text="$t('save')" :cancel-button-text="$t('cancel')" :is-close-click-confirm="false" :confirm-button-loading="loadingObj.billing" @cancel="closeBillingDialog" @close-overlay="closeBillingDialog" @close="closeBillingDialog" @confirm="confirmBillingAddress" > <billing-address class="billing-address-dialog" ref="billingAddressDialog" :address-list="shippingAddressList" :address="billingAddress || selectedShippingAddress" :shipping-address="selectedShippingAddress" :is-visitor="isVisitor" :same-as-shipping="sameAsShipping" :selected="billingAddress.id" :is-show-edit="false" :is-show-add-btn="!isVisitor" :is-in-dialog="true" @add-addressing="addBillingAddressing" @error="billingAddressError" @same-address="sameAsShippingInDialogChange" @billing="billingAddressChangeDialog" ></billing-address> </one-dialog> <!-- 优惠券弹窗 --> <!-- 优惠券弹窗 --> <coupon-dialog :show-dialog="showCouponDialog" ref="couponDialog" :type="couponType" :coupon-data="couponData" :selected-coupons="selectedCoupons" :loading="loadingObj.promo" :coupon-usable="couponUsable" :is-confirm-address="!!selectedShippingAddress&&!!selectedShippingMethod" @cancel="cancelCouponChange" @confirm="confirmCouponSelect" @bind="checkBindCoupon" > </coupon-dialog> <!-- 以旧换新说明弹窗 --> <trade-in-process-dialog v-if="showTradeInMsgDialogFirst" v-model="showTradeInMsgDialog" :is-no-type="hasTradeIn" @cancel="openTradeInMsgDialog(false)" ></trade-in-process-dialog> <!-- 以旧换新确认弹窗 --> <one-dialog v-model="showRemoveTradeInConfirmDialog" v-if="showRemoveTradeInConfirmDialog" :show-cancel-button="false" :show-confirm-button="false" :is-show-close-icon="false" :is-use-button-slot="true" @cancel="closeDialog('tradeIn')" @close-overlay="closeDialog('tradeIn')" @close="closeDialog('tradeIn')" > {{ tradeInConfirmText.title }} <div slot="button" class="trade-in-dialog-button-box" > <new-button type="primary" class="sure" @click="onClickConfirm" > {{ tradeInConfirmText.confirm }} </new-button> <new-button type="secondary" @click="closeDialog('tradeIn')" > {{ tradeInConfirmText.cancel }} </new-button> </div> </one-dialog> <!-- 地址错误弹窗 --> <one-dialog v-if="addressErrDialogInit" v-model="addressErrDialogVisable" :title="$t('Confirm Address')" :show-cancel-button="false" :confirm-button-text="$t('Update now')" @confirm="confirmAddressErrDialog" > We are unable to verify your address. Please update your address information first. </one-dialog> <!-- 权益缺货弹窗 S --> <benefit-out-of-stock-dialog v-if="showBenefitOutOfStockData" v-model="showBenefitOutOfStockData" :benefit-out-of-stock-data="benefitOutOfStockData" ref="benefitOutOfStockDialog" @on-confirm-update-benefits="updataBenefits" ></benefit-out-of-stock-dialog> <!-- 缺货弹窗 --> <out-of-stock-dialog v-if="showOutOfStockData" :out-of-stock-data="outOfStockData" ref="outOfStockDialog" @on-confirm-delete-product="onConfirmDeleteProduct" > </out-of-stock-dialog> <!-- 安第斯风控弹窗 --> <verify-phone-dialog v-if="verifyPhoneDialogInit" :phone-number="bindPhone" :is-high-risk="isHighRiskUser" @close-overlay="closeCodeDialog" @close="closeCodeDialog" @get-send-code="getSendCode" ></verify-phone-dialog> <verify-email-dialog v-if="verifyEmailDialogInit" :email="bindEmail" @close-overlay="closeCodeDialog" @close="closeCodeDialog" @get-send-code="getSendEmailCode" > </verify-email-dialog> <valuate-order-expired v-if="popValuateOrderExpired" v-model="popValuateOrderExpired" :expire-valuated-order="expireValuatedOrderList" :cart-type="expireCartType" ></valuate-order-expired> <!-- 异常弹窗 --> <one-dialog ref="errorDialog" position="center" v-model="showErrorDialog" :is-show-close-icon="false" :show-cancel-button="false" :confirm-button-text="$t('confirm')" :is-close-on-click-overlay="false" :z-index="2006" @confirm="confirmErrDialog" @close-overlay="confirmErrDialog" > <p class="font-body-lg error-content"> {{errorDialogMsg}} </p> </one-dialog> <!-- toast --> <one-toast v-if="toastInit" ref="checkoutToast" :text="toastText" hide-icon :duration="3000" ></one-toast> <!-- 用户同意条款弹窗 --> <one-dialog v-model="userAgreeDialogVisable" :title="$t('Agree & Proceed')" :is-show-close-icon="false" :confirm-button-text="$t('Agree & Continue')" :cancel-button-text="$t('Cancel')" @confirm="confirmUserAgree" > <div v-if="isTradeInExist" v-html="$t('order.placeOrderTcTrade')" class="font-body-md tc-content" ></div> <div v-else v-html="$t('order.placeOrderTc')" class="font-body-md tc-content" > </div> </one-dialog> </main> <input type="hidden" id="bind-email-get-code" value="https://account.oneplus.com/service/web/user/bind/email/code/get" > <input type="hidden" id="bind-email-verify" value="https://account.oneplus.com/service/web/user/bind/email/code/verify" > <input type="hidden" id="checkout-order-pay-url" value="https://www.oneplus.com/us/transaction/pay" > <input type="hidden" id="checkout-order-list-url" value="https://www.oneplus.com/us/sales/order/history" > <input type="hidden" id="bind-phone-callback-url" value="/customer/info#/edit-mobile-number" > <input type="hidden" id="get-check-gstin-url" value="https://mallapi-na.oneplus.com/v2/api/router" > <input type="hidden" name="get-user-url" id="get-user-url" value="https://mallapi-na.oneplus.com/v2/api/rest/mallapp/query/user/info" > <input type="hidden" id="checkout-order-success-url" value="https://www.oneplus.com/us/order/success" > <input type="hidden" id="checkout-onepage-url" value="https://www.oneplus.com/us/checkout/onepage" > <script> // 控制欧美客服悬浮入口是否显示 window.customerServiceShow = false var GMT_TIME = 0 window.PAGE_CONFIG = { failUrl: 'https://pay.oneplus.com/payment', homePageUrl: 'https://www.oneplus.com/us', visitorPaySuccessUrl: 'https://www.oneplus.com/us/payment/guest-success?orderno=', CODE_CAN_PAY: [ 'E21003', 'E20002', 'E21019', 'E20003', 'E20004', 'E21001', 'E21011', 'E21015', 'E21030', 'E21031', 'E21032', 'E21017', 'E21033', 'E21018', 'E21034', 'E21002', 'E21004', 'E21005', 'E21010', 'E21006', 'E21007', 'E21009', 'E21012', 'E21013', 'E21014', 'E21016', 'E10012', 'continuePay' ], IS_PAY_PROCESSING: ['E21008', 'processing'], orderCenterUrl: 'https://www.oneplus.com/us/sales/order/history?from=Pay', orderDetailUrl: 'https://www.oneplus.com/us/sales/order/history?from=Pay#/detail', retryParams: { initDuring: 3000, addInterval: 1000, maxCall: 10 }, TIME_REDIRECT: 10, affirmConfig: { loadJs: 'https://cdn1.affirm.com/js/v2/affirm.js', publicKey: 'ZCV7ILFPHLC6NE1X' }, adyenConfig: { locale: 'en-US', environment: 'live', clientKey: 'live_XM2ZG44EVBD7NOEW65KW55EJXIQZ6HSA', brands: ['amex', 'jcb', 'mc', 'visa', 'discover', 'diners', 'bcmc'], languageMap: { fr: 'FR', es: 'ES' }, oneyAssetsJs: 'https://assets.oney.io/build/loader.min.js', oneyMerchantGuid: 'e4432230-a6da-4d6f-b1ce-5544203af21a' }, stripeConfig: { loadJs: 'https://js.stripe.com/v3/', publicKey: 'pk_live_51Ji926LbK2mR2OXyRs7IzKEHWSwkTrDC7KY1g72XPnWqzCisz6NCOH2sCBoX6MceolBOlIcHcZvZ85hRjS3mhgnT00o174PEwH' }, paypalConfig: { loadJs: 'https://www.paypal.com/sdk/js?client-id=AU98tojXuKl7iSaMNzpoN871KTvXe7W-jiKDcO32brbNWaoR9O1GsWGcI-F7Iz30-ZSnMQSHXqDnLMnb&intent=authorize', style: { layout: 'vertical', shape: 'rect', height: 44, label: 'paypal', tagline: false }, FUNDING_SOURCES: ['PAYPAL', 'PAYLATER', 'VENMO'], mapErrorCode: { 'INTERNAL_SERVER_ERROR': 'E20002', 'NOT_AUTHORIZED': 'E20002', 'AUTHENTICATION_FAILURE': 'E21016', 'INVALID_REQUEST': 'E00009', 'UNPROCESSABLE_ENTITY': 'E21003', 'RESOURCE_NOT_FOUND': 'E21003', 'default': 'E21003' } } } window.GLOBAL_CONFIG = { isHouseNumber: false, postcodeCountryCodes: ['US', 'IN'], showTaxStore: ['us', 'us_es', 'ca_fr', 'ca_en'], redCoinsStore: ['in','us','us_es','ca_en','ca_fr','uk','fr','de','it','es','ie','at','be_fr','be_nl','hr','dk','fi','hu','lt','lu_de','lu_fr','nl','pt','si','bg','cy_tr','cy_gr','cz','ee','gr','lv','mt','pl','ro','sk','se'], pickUp: { phonePrefix: "+91 " }, BLOCK_TIME: 10000, changePickUpTime: 1000, isGray: true, paymentDelay: { minNum: 1, maxNum: 3, fixed: 2 }, presaleStartCode: 20, presaleFinalCode: 40, paypalFilterCountry: ["in"], paypalMinPrice: 10 } </script> <script type="application/json" id="data-translation" > { "price-unrevealed": "Price Unrevealed", "free":"Free", "valuateOrderExpired": { "title": "", "confirmText": "Confirm", "message": "We're sorry that the old device value has just changed. please refresh the page to submit your order again and apply the new discount." }, "checkout": "Checkout", "checkoutSteps": { "contactInfo": "Contact Information", "shipping": "Shipping", "billing":"Billing", "payment": "Payment", "review": "Review" }, "trade-in": { "title":"Trade-in Method", "change":"Change", "termsUrl": "/trade-in", "learnMore":"Learn more about the differences", "confirm": "Confirm", "immediateDisable":"Sorry, based on your account information, we cannot offer you Instant Credit at this time. However, you can still use our Get Paid Later option for your Trade-in Program. Here's why Instant Credit is unavailable for you:", "disable1":"1. One Trade-In Order per Month: Instant Credit only can be used for one trade-in order per month. It appears that you may have already used this option within the past month.", "disable2":"2. Zero Order Value: Your order value is currently zero, with all available promotions applied.", "disable3":"3. Chargeback Issue: A previous trade-in credit chargeback issue was caused.", "disable4":"We apologize for any inconvenience this may cause. If you have any questions or concerns, please don't hesitate to contact our customer support team.", "instantCredit":"Instant Credit", "credited":"Credited today", "saveNow":"Your device's value and trade-in bonus instantly applied. Save {amt} Today.", "getPaidLater":"Get Paid Later", "getPaidLaterContent":"Pay full amount for your new OnePlus device order, the device value and bonus will be issued as cashback when trade-in completed." }, "coupon": { "title":"Promotion", "stackableCoupon":"Stackable Coupon", "enterCode":"Enter promo code", "couponHistory":"Coupon History", "coupon":"Coupon", "claim":"Claim", "claimSuccess":"Claimed successfully", "couponChanged":"A better coupon switched for you", "notApplicable":"Claimed successfully, but the coupon is not applicable for this order", "giftCode":"Gift Code", "cashCoupon":"Cash Coupon", "noCoupon":"No Coupons", "noGift":"No Gift Codes", "noCash":"No Cash Coupons", "unavailable":"Unavailable", "tc":"Terms of Usage", "history":"Coupon History", "invalidCode":"Please enter a valid promo code", "exceedLimit":"Failed to claim. Coupon claiming limit has been reached.", "couponTc":"1. You can only apply one voucher code to each order. If you cancel an order, applied coupon will be returned to your account.<br>2. If you request a refund, please note that applied coupon will not be returned to your account.<br>3. Coupon cannot be exchanged for cash.<br>4. OnePlus reserves the right to revoke or re-evaluate the use of any and all issued coupons. <br>5. Coupon can be used together with the gift code.", "tokenTc":"1. The number of cash coupons you can apply to each order has no limit.<br>2. When the cash coupon(s) you applied exceed the total price of your order, the remaining amount will not be returned to your account.<br>3. If you cancel an order or request a refund, applied cash coupons will be returned to your account.<br>4. Cash coupons are not transferable, exchangeable, redeemable for cash.<br>5. OnePlus reserves the right to revoke or reevaluate the use of any and all issued cash coupons.<br>6. Cash coupon can be used together with the coupon and gift code.", "unavailableTips":"The following coupons are not applicable to the products you’re purchasing, or the total cost does not reach the required minimum.", "unavailableGiftTips":"The following coupons are not applicable to the products you\u2019re purchasing, or the total cost does not reach the required minimum, or the gift is out of stock.", "noAddressCoupon":"Claimed successfully, but the coupon is currently unavailable. Please confirm your address first." }, "warning": { "promoInfoChanged":"Your order information has been updated. Please click the 'Confirm' button to update and re-confirm your order details.", "freeOrder":"You don’t need to select a payment method since your order amount is 0.", "payError":"Oops, too many payment attempts have been made with this card. Please use a different card or payment method and try again.", "giftPromoEnd":"Sorry, the gifts promotion has already run out. Please edit your cart.", "payChange":"Shipping information and delivery method can’t be edited when paying balance.", "priceUpdate":"Due to the order price updates, the previous selected method is unavailable. Please reselect a new one.", "riskMemberErr":"Sorry for the inconvenience, our system has identified potential risk with your account, which currently prevents you from placing an order. We kindly request trying again with a different account. Thank you for your cooperation.", "inventory":"Sorry, the items are currently out of stock. Please try again.", "depositError":"Sorry, the due date for paying the balance has passed.", "balanceBillingNoChange":"Billing information can’t be edited when paying balance.", "dontChangeBillingTips":"Billing information can’t be edited later when paying the balance, please check them carefully." }, "orRegularPay":"or regular checkout below", "edit":"Edit", "save": "Save", "cancel": "Cancel", "confirm":"Confirm", "yes": "Yes", "no": "No", "payment": "Payment", "payInfoEmpty":" Error", "continueToPay": "Continue to Payment", "placeOrder":"Place order", "paymentMethod": "Payment Method", "securePayment":"Secure payment", "billing": { "editBilling":"Billing", "tipContent":"The billing address is printed on your invoice and order receipt", "title":"Billing Address", "sameAsShipping":"Billing address same as shipping address" }, "billingInfo": "Billing Information", "isReportData":false, "order": { "orderReview":"Order Review", "placeOrderTcTrade":"By placing this order, I agree to the <a href=\"https://www.oneplus.com/us\/legal\/us-privacy-policy\" class=\"text-blue\" target=\"_blank\">Privacy Policy for OnePlus Store<span class=\"ico ico-arrow-skip\"\/><\/a>, <a href=\"https://www.oneplus.com/us\/legal\/terms-of-sales\" class=\"text-blue\" target=\"_blank\">Terms of Sale<span class=\"ico ico-arrow-skip\"\/><\/a>, <a href=\"https://www.oneplus.com/us\/trade-in-rule\" class=\"text-blue\" target=\"_blank\">Trade-in Terms and Conditions<span class=\"ico ico-arrow-skip\"\/><\/a>, and <a href=\"https://www.oneplus.com/us\/support\/terms-and-conditions-of-redcoins\" class=\"text-blue\" target=\"_blank\">Terms and Conditions of RedCoins<span class=\"ico ico-arrow-skip\"\/><\/a>.", "placeOrderTc":"By placing this order, I agree to the <a href=\"https://www.oneplus.com/us\/legal\/privacy-policy\" class=\"text-blue\" target=\"_blank\">Privacy Policy for OnePlus Store<span class=\"ico ico-arrow-skip\"\/><\/a>, <a href=\"https://www.oneplus.com/us\/legal\/terms-of-sales\" class=\"text-blue\" target=\"_blank\">Terms of Sale<span class=\"ico ico-arrow-skip\"\/><\/a>, and <a href=\"https://www.oneplus.com/us\/support\/terms-and-conditions-of-redcoins\" class=\"text-blue\" target=\"_blank\">Terms and Conditions of RedCoins<span class=\"ico ico-arrow-skip\"\/><\/a>.", "placeOrder":"Place order" }, "shipping":{ "shippingInfo": "Shipping Information", "newAddress": "+ New address", "showAll":"Show all", "delivery":"Delivery", "addressNotSupport":"Sorry, the delivery service is currently unavailable for your address. Please try another address.", "checkShippingTipDeposit": "Shipping information and shipping method can’t be edited later when paying the balance, please check them carefully.", "checkShippingTip":"Shipping information and shipping method can’t be edited when paying balance.", "addressError":"We are unable to verify your address. Please update your address information first." }, "payMethodList": { "paypalTips": "You will be redirected to Paypal to enter your payment details and then directed back to review and place the order.", "endingNumber": "Ending in", "expiryDate": "Expiry Date", "selectYouPlan": "Select your plan", "selectYouBank": "Select your bank", "change": "Change", "reviewOrder": "Review order", "expressCheckout": "Express Checkout", "holdNameTips": "Exactly as it appears on card", "cardholderNamePlaceholder": "Cardholder Name *", "cardNumberPlaceholder": "Card Number *", "expiryDatePlaceholder": "Expiry Date (MM/YY) *", "securityCode": "Security Code *", "pleaseEnterCardholderName": "Please enter your cardholder name", "paypalBtnText": "Pay with PayPal", "iDealTips": "You will be redirected to iDeal to complete your payment.", "iDealBtnText": "Pay with iDeal", "oneyTips": "You will be redirected to Oney to complete your payment.", "oneyBtnText": "Pay with Oney", "sofortTips": "You will be redirected to Sofort to complete your payment.", "sofortBtnText": "Pay with Sofort", "affirmTips": "You will be redirected to Affirm to complete your payment.", "affirmBtnText": "Pay with Affirm", "klarnaTips": "You will be redirected to Klarna to complete your payment.", "klarnaBtnText": "Pay with Klarna", "legalNotice": "Legal Notice", "generalConditions": "General Conditions" }, "address": { "confirm":"Confirm", "hideUseLocationBtn": "", "googleAutoCompleteOff":"", "hasHouseNumber":"false", "houseNumber":"House Number *", "houseNumberValid":"Please Enter a Valid House Number", "contactInfo":"Contact Information", "city":"City *", "cityErrorMsg": "Please enter a city", "region":"State *", "regionErrMsg":"Please select a valid state", "postcode":"Zip Code *", "postcodeErrMsg":"Please enter a valid zip code", "phone":"Phone Number *", "phoneErrMsg":"Please enter a valid phone number", "phoneTips":"Used to contact you with delivery info", "addressValidateFailed":"The city/state does not match the zip code", "streetAddress":"Street Address *", "streetErrMsg":"Please enter your street address", "addStreet2":"Add Apt, Suite, Building", "street2Optional":"Apt, Suite, Building (Optional)", "street2ErrorMsg":"Please enter valid address", "firstName":"First Name *", "firstNameErrMsg":"Please enter your first name", "lastName":"Last Name *", "lastNameErrMsg":"Please enter your last name", "login": "Log in", "default":"Default", "continueToDelivery": "Continue to Shipping Method", "locationNotMatch":"Your current location is in a different country/region from the current one of the site.", "countryNotMatch":"The country of your PayPal address does not apply to this OnePlus site. Try switching to the site of your region.", "maxAmount":"Oops, the maximum number of addresses has been reached. The new address can’t be saved.", "notExisted": "Sorry, this address does not exist. Please choose another address.", "validateFailedText":"Your address information does not correspond with your ZIP Code.", "validateFailedLongText":"We are unable to verify your address.Your address information does not correspond with your ZIP Code.", "userAddressUrl":"https://www.oneplus.com/us/customer/address", "manageAddress":"Manage my addresses", "edit":"Edit", "privacyUrl":"https://www.oneplus.com/us/legal/privacy-policy", "privacyPolicy":"Privacy Policy", "eamilAddress":"Email Address *", "emailOptional":"Email Address (Optional)", "emailErrMsg":"Please enter a valid email address", "emailTips":"Provide email to receive order confirmation and updates. Please use popular email services such as Gmail, Yahoo Mail, Hotmail, and Outlook. Other email services might not be supported.", "visitorExited":"Welcome back! This email address is already in use.", "visitorHint":" for faster checkout and RedCoins reward", "visitorSubscribeHint":"Email me with news and offers from OnePlus. Unsubscribe at any time. ", "shippingAddress": "Shipping Address", "billingAddress":"Billing Address", "useCurLocation": "Use current location", "cancel": "Cancel", "continue":"Continue", "setAsDefault": "Set as default address", "addressInformation": " Address information", "save": "Save", "updateTips":"Please update your address information." }, "delivery": { "signatureTips":"Packages must be signed for by the recipient upon delivery. If the recipient cannot be contacted, the delivery time will be rescheduled. Please keep your phone line open.", "today":"Today", "tomorrow":"Tomorrow", "shippingMethod":"Shipping Method", "estimatedDelivery":"Estimated Delivery", "estimatedDispatch":"Estimated Dispatch", "presaleDefaultEtdText":"Estimated to ship within 10 days after final payment", "orderToday":"Ordered today by", "note":"Note", "confirm":"Confirm", "tipContent":[ { "content":"1. The estimated delivery date listed below may differ if the delivery address of your order is inaccurate, the goods are out of stock or the order is not placed within the cut-off time. Packages will only be dispatched and delivered on business days. If the order is placed on non-working days or public holidays, delays may happen." }, { "content":"2. Priority shipping may not be available for certain addresses." }, { "content":"3. Delivery may require a signature." }, { "content":"4. All orders are dispatched on a first-come, first-served basis, regardless of the selected shipping method. Priority Delivery provides a safer and upgraded shipping experience by using better carrier service." } ], "standardFree": "Free" }, "outOfStock": { "title":"The items below are currently out of stock.", "removeAndContinue": "You can remove the out-of-stock items and continue.", "chooseAnother": "Please choose another item.", "gift": "Gift", "outOfStock": "Out of stock", "avaliableAmt": "(Only {amt} in stock)", "stockInsufficient":"Stock insufficient", "remove":"Remove and checkout", "back":"Back to cart", "cartUrl":"https://www.oneplus.com/us/jcart" }, "payInfoEmpty":"Error", "edit-address": "Edit Address", "add-new-address": "Add New Address", "delete": "Delete", "edit": "Edit", "verifyPhone": { "errorCodeText":"Please enter the correct code", "getCodeText":"Get code", "confirmText":"Confirm", "verifyCodePlaceholder":"Enter verification code", "verifyTitle":"Verify your phone", "enterCode":"Enter verification code", "verifyTip":"Please press 'Get code' and enter the verification code we sent to your phone below to verify your phone.", "sendAgainText_0":"Send again", "sendAgainText_1":"later", "timeFormat":"s", "confirm":"Confirm", "sendText":" Send verification code" }, "verifyEmail":{ "verifyTitle":"Verify your Email", "verifyTip":"Please press 'Get code' and enter the verification code we sent to your Email below to verify your Email.", "verifyCodePlaceholder":"Enter verification code", "getCodeText":"Get code", "confirmText":"Confirm", "timeFormat":"s", "errorCodeText":"Please enter the correct code" }, "applyCouponFail": "Your new voucher is available now. Please add it manually.", "isReportData": false, "addPromoCode": { "tipsContent": " 1. Cash coupon can not be applied when order value is already $0.<br> 2. When cash coupon value exceeds order value, extra value of cash coupon will not remain in your OnePlus account.", "changeOrAdd": "Change or add coupon", "addPromo": "Add promo code", "available": "available" }, "orderDetail": { "availableCoupons":"*Coupons are not available for the current event.", "freeShippingCoupon":"", "orderReceived": "Reward {rewardRedCoins} RedCoins once order received", "orderShipped": "Reward free shipping coupon for accessories once order shipped", "orderSummary": "Order Summary", "deposit": "Deposit", "revealedBy": "Full price will be revealed by", "toBePaid": "Balance to be paid", "depositPaid": "Deposit Paid", "gift": "GIFT", "invitation": "INVITATION", "preSale":"Pre-Sale", "earlyBird":"Early Bird", "flashSale": "Flash Sale", "showMore": "Show more", "collapse": "Collapse", "appExclusiveDiscount": "APP EXCLUSIVE DISCOUNT", "appGift": "APP EXCLUSIVE GIFT", "payBy": "Pay by", "service": "SERVICE", "depositPreSaleText": "Pay the {nowBalanceSpend} balance by" }, "integralSwitch": { "redCoinsTips": "Condition of use:<br>1. 70 RedCoins can be used to redeem 1 USD.<br>2. RedCoins can be obtained by participating in points activities or daily tasks.<br>3. If you cancel the order after placing the order, the RedCoins you used will be returned to your account.", "redCoinsNot": "RedCoins not enough", "redCoinsNotSupport": "Current products do not support RedCoins", "redCoinsCant": "RedCoins can’t be used right now", "currentRedCoins": "Current RedCoins", "unavailable": "Unavailable", "redCoins": "RedCoins", "redCoinsValueText": "Redeem {deductedRedCoins} RedCoins for {redCoinsDeductAmount} off" }, "priceDetails": { "tradeInAnythingBonus": "Recycling Reward", "stackableCoupon":"Stackable Coupon", "salesTaxTips": "The sales tax listed on the checkout page is only an estimate. Your invoice will contain the final sales tax, including state and local taxes, as well as any applicable rebates or fees.", "RDFTips": "Per Colorado SB 21-260, we are required to collect a $0.27 nonrefundable Retail Delivery Fee from each Colorado customer for every sale, effective July 1, 2022.", "subtotal": "Subtotal", "depositPaid": "Deposit Paid", "shippingFee": "Shipping Fee", "addressConfirmed": "Calculated once address confirmed", "salesTax": "Sales Tax", "retailDeliveryFee": "Retail Delivery Fee", "total": "Total", "save": "Save", "totalSavings": " Total Savings", "tradeInDiscount": "Trade-in Discount", "redCoinsDeductions": "RedCoins Deduction", "cashCoupon": "Cash Coupon", "itemDiscount": "Item Discount", "coupon": "Coupon", "invoiceTips": "Your invoice will be able to download on the 'Order Detail' page once your order is shipped." }, "tradeIn": { "tradeInProgram": "Trade-in Program", "remove": "Remove", "device": "Device", "deviceValue": "Device Value", "limitedTimeBonus": "Limited-time Bonus", "totalDiscount": "Total Trade-in Discount", "learnProcess": "Learn Trade-in process", "euro-value":"Currently only support Euro payments, equivalent to {price}", "tradeInBonusTips": "*The trade-in bonus will not be issued if the new device order gets cancelled, rejected, or returned.", "instantCreditTitle1": "Purchase at a discounted price with credit/debit card", "instantCreditText1": "If your submission qualifies for instant credit, you can choose to get an instant trade-in discount towards the purchase of the new devices. Please note that only credit/debit card is accepted.", "instantCreditTitle2": "Ship your old device", "instantCreditText2": "Click 'Download Shipping Label' in your confirmation email or the payment success page to print it. Please reset your old device and send it to us for assessment.", "instantCreditTitle3": "Confirm your trade-in offer", "instantCreditText3": "You'll be notified with an updated value and offer. If you accept it, we will debit your credit card for the difference based on the latest quote or refund the excess amount to your account in 2-3 business days.<br>If you decline the updated offer but keep your new device, we’ll send your old device back and the trade-in offer will be charged from your card.", "getPaidLaterTitle1": "Pay the full amount and get the trade-in amount refunded later", "getPaidLaterText1": "Purchase your new phone in the full amount and get the trade-in amount refunded later.", "getPaidLaterTitle3": "Confirm your trade-in offer", "getPaidLaterText3": "You'll be notified with an updated value and offer. If you accept it, we will issue cashback for your order in 2-3 business days. If you decline the updated offer, we’ll send your old device back to you.", "faq1": "1. If your device’s trade-in value is higher than your purchase order value, we’ll send an cash coupon for the remaining amount to your OnePlus account.", "faq2": " 2. If you cancel, reject or return the new device order, we’ll send you a cash coupon instead of cashback for your trade-in order. The extra trade-in bonus will NOT be sent to your account.", "faq3": "3. The most recent status of your trade-in is available online anytime on the My Orders page(be sure to choose the correct country).", "faq4":"4. You can learn more about", "linkText": "OnePlus Trade-in Terms & Conditions", "FAQ": "FAQ", "instantCredit": "Instant Credit", "getPaidLater": "Get Paid Later", "noInstantDiscountTitle1": "Pay the full amount and get the trade-in amount refunded later", "noInstantDiscountTitle2": "Ship your old device", "noInstantDiscountTitle3": "Confirm your trade-in offer", "noInstantDiscountText1": "Purchase your new phone in the full amount and get the trade-in amount refunded later.", "noInstantDiscountText2": "Click 'Download Shipping Label' in your confirmation email or the payment success page to print it. Please reset your old device and send it to us for assessment.", "noInstantDiscountText3": "You'll be notified with an updated value and offer. If you accept it, we will issue cashback for your order in 2-3 business days. If you decline the updated offer, we’ll send your old device back to you.", "isDeviceValue": true, "totalDiscount": "Total Trade-in Discount" }, "hotjarQuestion": { "eu": { "label":"What problem did you encounter regarding the checkout ?", "value":"Share feedback", "eventId":"nss_checkout_eu", "cookieTime":"30", "questionScenes":"checkout" }, "na":{ "label":"What problem did you encounter regarding the checkout ?", "value":"Share feedback", "eventId":"nss_checkout_us", "cookieTime":"30", "questionScenes":"checkout" } }, "payHotjarQuestion": { "eu": { "label":"What problem did you encounter regarding the payment?", "value":"Share feedback", "eventId":"nss_payment_eu", "cookieTime":"30", "questionScenes":"payment" }, "na":{ "label":"What problem did you encounter regarding the payment?", "value":"Share feedback", "eventId":"nss_payment_us", "cookieTime":"30", "questionScenes":"payment" } }, "benefitPackage": { "more":"Show more", "less": "Collapse", "coupon": "COUPON", "lottery": "LOTTERY", "redCoins": "REDCOINS", "thirdPartyCode": "THIRD PARTY CODE", "giftCode": "GIFT CODE", "cashCoupon": "CASH COUPON", "virtualGoodsTips": "No physical delivery needed! Your order exclusively consists of virtual goods, and you'll find them securely stored in your account.", "benefitOutOfStockTips": "Sorry, {benefitName} is out of stock.", "updateBenefits": "Update benefits", "terms": "Terms and Conditions", "benefitBundleDetails": "Benefits Bundle Details", "benefitsStatus": "Benefits status", "couponCode": "Coupon Code", "howToGet": "How to get", "howToUse": "How to use", "availableTime": "Available Time", "validityDate": "Validity Date", "pending": "Pending", "success": "Issued", "failed": "Failed", "expired": "Expired", "paymentCompletedAndShared":"Thank you for your purchase! Share the order page for a chance to win {equityName}. Good luck!", "paymentCompleted":"The {equityName} will be issued to your account once the payment of {productName} is completed.", "shipped": "The {equityName} will be sent to your account once the shipping of the {productName} starts.", "signedFor": "Upon receipt of the {productName}, The {equityName} will be promptly credited to your account.", "designatedProductShipped": "For orders of {productName} placed between {startTime} and {endTime}, the {equityName} will be sent to your account once the shipping process begins.", "designatedProductDelivery": "The {equityName} is only applicable with eligible purchase of the {productName} between {startTime} and {endTime}, which can be redeemed after product is delivered.", "lotteryToUseTips": "{tagOpen}Go try your luck in the lottery{tagClose}", "couponToUseTips": "View the coupons and apply {tagOpen}here{tagClose} to your order", "redCoinsToUseTips": "View the RedCoins in your {tagOpen}RedCoins center{tagClose}", "benefitFailedTips": "Sorry, there are some issues with the current distribution of the benefits. You can {tagOpen}contact customer service{tagClose} for assistance.", "thirdPartyCodeToUseTips": "View the coupons and apply {tagOpen}here{tagClose}", "couponDefaultIconUrl": "https://image01.oneplus.net/shop/202311/24/1-M00-48-A4-CkvTlmVgQgqAbWPMAAAF9fT-i_4248.svg", "lotteryDefaultIconUrl": "https://image01.oneplus.net/shop/202311/24/1-M00-48-0F-CkvLh2VgQXKAd_MjAAAGqeQbh0g015.svg", "redCoinsDefaultIconUrl": "https://image01.oneplus.net/shop/202311/24/1-M00-48-0F-CkvLh2VgQaGACI7LAAAE9ZSae1A180.svg", "thirdPartyCodeDefaultIconUrl": "https://image01.oneplus.net/shop/202311/24/1-M00-48-0F-CkvLh2VgQYiAO_LXAAAED9sXTAc228.svg", "giftCodeDefaultIconUrl": "https://image01.oneplus.net/shop/202311/24/1-M00-48-0F-CkvLh2VgQh6AaZGwAAACuKBmY44205.svg", "cashCouponDefaultIconUrl": "https://image01.oneplus.net/shop/202311/24/1-M00-48-0F-CkvLh2VgQfKARuWjAAAGlpQKpCQ926.svg", "tcLinkUrl":"https://www.oneplus.com/us/terms-and-conditions/benefits-bundle" }, "tradeInConfirmDialogText": { "title": "We apologize our trade-in partner does not accept devices from Puerto Rico due to their limitations. We are working hard to resolve this issue. Thank you for your understanding and patience.", "confirm": "Remove Trade-in", "cancel": "Modify Shipping Address", "defaultTitle": "Are you sure to remove it from your cart?", "defaultConfirm": "Yes", "defaultCancel": "No" }, "group-offer-map": { "Senior": "Senior Exclusive", "student": "Student Exclusive", "Teacher": "Teacher Exclusive", "Military": "Military Exclusive", "Police and Firefighters": "Police and Firefighters Exclusive", "Healthcare workers": "Healthcare workers Exclusive", "Transport Staff": "Transport Staff Exclusive", "Supermarket staff": "Supermarket staff Exclusive", "Postal and delivery staff": "Postal and delivery staff Exclusive", "For age over 60S": "For age over 60S Exclusive", "Medical Professional": "Medical Professional Exclusive", "First Responder": "First Responder Exclusive", "Age": "Age Exclusive", "Recent Mover": "Recent Mover Exclusive", "Under 26s:15-25": "Under 26s: 15-25 Exclusive", "employee": "Employee Exclusive", "0": "Explore Exclusive", "1": "Insider Exclusive", "2": "Elite Exclusive", "3": "Supreme Exclusive" } } </script> <script type="application/json" id="data-group-name" > { "discount": { "exit": "Exit", "active": "Active", "student": "Student Discount Channel", "Teacher": "Teacher Discount Channel", "Military": "Military Discount Channel", "Police and Firefighters": "Police & Firefighters Discount Channel", "Healthcare workers": "Healthcare workers Discount Channel", "Transport Staff": "Transport Staff Discount Channel", "Supermarket staff": "Supermarket staff Discount Channel", "Postal and delivery staff": "Postal & delivery staff Discount Channel", "For age over 60S": "For age over 60S Discount Channel", "Medical Professional": "Medical Professional Discount Channel", "First Responder": "First Responder Discount Channel", "Age": "Age Discount Channel", "Recent Mover": "Recent Mover Discount Channel", "Under 26s:15-25": "Youth Discount Channel", "employee": " Employee Discount Channel" } } </script> <script type="application/json" id="coupon-module-translation"> { "couponTypeText": { "normal": "Coupon", "giftCode": "Gift code", "cash": "Cash coupon", "stackable": "Stackable coupon" }, "couponTag": { "app": "App Exclusive", "exchange": "Trade in" }, "couponText": { "claim": "Claim Now", "claimed": "Claimed", "outOfStock": "Out of Stock", "used": "Used" }, "claimSuccess": "Claimed Successfully.", "detail": "Details", "conditionOfUse": "Condition of Use", "validityPeriod": "Validity Period", "termsofUsage": "Terms of Usage", "confirm": "Confirm", "cancel": "Cancel", "couponFilter": { "normal": "Coupon", "cash": "Cash Coupon", "giftCode": "Gift Code", "stackable": "Stackable Coupon" }, "couponSelectorTitle": "Change or add coupon", "unavailable": "Unavailable", "couponSelectorTip": "The following coupons are not applicable to the products you’re purchasing, or the total cost does not reach the required minimum.", "available": "Available", "noCoupon": "No Coupons", "emptyCouponImg": "https://image01.oneplus.net/media/202406/05/5b190cab2d5508cd44761a0bb9412435.png", "couponStatusText": { "notStart": "Not Started", "useNow": "Use Now", "used": "Used", "expired": "Expired", "invalid": "Invalid" }, "receiveSuccess": "Receive successfully", "receiveFail": "Failed to receive", "queryDays":30, "loading":"Loading", "reached":"You‘ve reached the bottom", "select": "Select", "appliedProducts": "Applied Products", "couponDesc": "Coupon Description" } </script> <script type="application/json" id="coupon-module-error-translation"> { "invalid": "The promotion code was invalid, please contact with Customer Service.", "redeemedByOthers": "Coupon was already bound by other user.", "redeemedBySelf": "The coupon code has already been redeemed and credited to your account.", "hasBeenUsed": "Failed to claim. This promo code has expired or been used.", "invalidCode": "Please enter a valid promo code", "exceedLimit": "Failed to claim. Coupon claiming limit has been reached.", "230185":"Failed to claim. Coupon claiming limit has been reached.", "230186":"Failed to claim. Coupon claiming limit has been reached." } </script> <script type="application/json" id="coupon-data-translation"> { "queryDays":90, "notUseTip": "Coupons that have been invalid for 90 days will no longer be displayed.", "loading":"Loading", "reached":"You‘ve reached the bottom", "dialogTitle": "Get Coupon", "mainText": "Up to", "freeShipping": "Free Shipping", "fixedAmount": "Best Price:", "notLessThan": "Not less than", "unavailableTip": "These coupons are not applicable to the current product.", "singleText": { "off": "OFF", "products": "products" }, "condition": { "t1": "Not less than", "t2": "products" }, "messageTag": { "t1": "All products", "t2": "Only applies to some products" }, "getCouponButton": { "startSoon": "Starting soon", "claim": "Claim", "useNow": "Use Now", "outOfStock": "out of stock" }, "tabName": { "applicable": { "normal": "Applicable Coupons", "cash": "Applicable Cash Coupons", "gift": "Applicable Gift Coupons", "xs": "Applicable" }, "unapplicable": { "normal": "Unapplicable Coupons", "cash": "Unapplicable Cash Coupons", "gift": "Unapplicable Gift Coupons", "xs": "Unapplicable" } }, "emptyText": { "unused": "You don't have any unused coupons", "used": "You don't have any used coupons", "expired": "You don't have any expired coupons", "invalid": "You don't have any invalid coupons" }, "userCenterTabs": { "stackableCoupon":"Stackable Coupon", "coupon": "Coupon", "giftCode": "Gift Code", "cashCoupons": "Cash Coupon", "applicable": "Available ", "used": "Used", "expired": "Expired", "invalid":"Invalid" }, "couponClaimed": "Coupon claimed!", "errorTips": { "PC_COUPON_BOUND":"Redemption failed. Code has already been redeemed. ", "PC_COUPON_FINISH_RECEIVING":"Redemption failed. Code has already been redeemed.", "PC_COUPON_OWNER_INVALID":"Redemption failed. Code has already been redeemed by others. ", "PC_COUPON_BOUND_BY_OTHER_USER":"Redemption failed. Code has already been redeemed by others. ", "PC_COUPON_NOT_EXISTS":"Redemption failed. Promo code does not exist. ", "PC_COUPON_EXPIRED":"Redemption failed. Coupon has expired or been used." }, "successTips": { "availableTip":"Success. Already add a new coupon to your coupon list.", "unavailableTip":"Applied successfully, but not yet available for use." } } </script> <script id = "data-error-translation" type = "application/json" > { "hasBeenRedeemed":"Failed to claim. This promo code has already been redeemed.", "hasBeenUsed":"Failed to claim. This promo code has expired or been used.", "invalidCode":"Please enter a valid promo code", "exceedLimit":"Failed to claim. Coupon claiming limit has been reached.", "230016":"Failed to claim. Coupon claiming limit has been reached.", "230006":"The promotion code has already been redeemed and credited to your account.", "230039":"The promotion code was invalid, please contact with Customer Service.", "100067":"This voucher is invalid, please change your voucher.", "paypalErrorMsg":{ "100135":"Sorry, the product is sold out. For more product please browser our Shop. Thank you for your support.", "200003": "Too many attempts, please try again later.", "default": "The system is busy now, please try again later." } } </script> <script> window.omoGetUsetLocation = false </script> <script id="data_checkout_faqs" type="application/json"> { "faqTitle": "FAQ", "faqs": [ { "image": null, "images": [], "mainTitle": "Can I change the product items after placing a order?", "pcImage": null, "uriText": null, "uri": null, "desc": "Unfortunately you can not change the product items after placing the order. If you want to change the items, kindly cancel the order within 30 minutes and place a new one." }, { "image": null, "images": [], "mainTitle": "How do I write the shipping address for my order correctly? ", "pcImage": null, "uriText": null, "uri": null, "desc": "For correct order delivery, please ensure your shipping address is accurate. We recommend using Google's autofill feature to ensure accuracy." }, { "image": null, "images": [], "mainTitle": "Why am I unable to use my coupon?", "pcImage": null, "uriText": null, "uri": null, "desc": "1. Please thoroughly review the coupon information to ensure it's eligible for the product, applicable within the required dates and abides by specific price-related conditions.<br/>2. Coupons can't be combined with the Flash Sale and Discount Program. If you've already joined the Discount Program or Flash Sale promotion, you won't be able to use the coupon.<br/>3. Only one coupon can be applied per order.<br/>4. If problems persist, reach out for assistance from our customer service team at the provided link: <a href='https://oneplus.custhelp.com/app/chat/chat_launch?channel=2' target='_blank' style='color: blue;text-decoration: underline;'>https://oneplus.custhelp.com/app/chat/chat_launch?channel=2</a>" }, { "image": null, "images": [], "mainTitle": "How can I use RedCoins?", "pcImage": null, "uriText": null, "uri": null, "desc": "RedCoins can be spent for direct discounts during checkout on eligible products at oneplus.com or the OnePlus Store app. The eligible products and maximum RedCoins usage vary. To check your RedCoins balance, visit <a target='_blank' href='https://www.oneplus.com/redcoins-center#/' style='color: blue;text-decoration: underline;'>https://www.oneplus.com/redcoins-center#/</a>." }, { "image": null, "images": [], "mainTitle": "Can I change the address after placing a order?", "pcImage": null, "uriText": null, "uri": null, "desc": "Yes, you can change the address within 30 minutes of placing the order." }, { "image": null, "images": [], "mainTitle": "What is the payment deadline after placing an order?", "pcImage": null, "uriText": null, "uri": null, "desc": "After placing the order, your item(s) will only be reserved for 15 minutes. You will have to place another order if the payment has not been completed after this time. Please note that stock availability cannot be guaranteed if you do not submit payment on time." }, { "image": null, "images": [], "mainTitle": "When will I receive my order?", "pcImage": null, "uriText": null, "uri": null, "desc": "Normally, you will get estimated dispatch and estimated delivery info during checkout. Shipping times depend on the shipping method available in your region.<br/>Once your order has been dispatched, the shipping time is:<br/>Standard Shipping - 3-7 business days for delivery<br/>Priority Shipping - 1-3 business days for delivery" }, { "image": null, "images": [], "mainTitle": "How do I track my order?", "pcImage": null, "uriText": null, "uri": null, "desc": "To track your order, visit the 'My Orders' page on oneplus.com. Select the order you want to track and click on 'Order Details'." }, { "image": null, "images": [], "mainTitle": "What's the process for return and replacement?", "pcImage": null, "uriText": null, "uri": null, "desc": "If you are not satisfied with your OnePlus product(s) for any reason, you may request a return within 15 calendar days of delivery.<br/>To do so, please submit a return/replacement request by signing OnePlus account-My Order." }, { "image": null, "images": [], "mainTitle": "When will I receive the value and bonus for my trade-in device?", "pcImage": null, "uriText": null, "uri": null, "desc": "Your trade-in order can only receive value and bonus through cashback, it will be issued once your trade-in order is complete." }, { "image": null, "images": [], "mainTitle": "How do I ship my old device if I participate in the trade-in program?", "pcImage": null, "uriText": null, "uri": null, "desc": "It is required that you remove all passwords, locks (Find My iPhone, SamSung, Google, etc.), SIM cards, and memory cards before sending the device.<br/>Please remove additional accessories and personal items from your device.<br/>Please package your device with sufficient protection to ensure that the device is not damaged in transit. Damage through improper packaging will not be covered by your Standard Manufacturer's Warranty.<br/>BEFORE SHIPPING: Please take 4 clear pictures of your device.<br/>- Picture of the front of the device<br/>- Picture of the back of the device<br/>- Picture of IMEI page on the screen of the device (if applicable)<br/>- Side by side picture of the shipping label and the device<br/>We recommend:<br/>Using 3 to 5 inches of bubble wrap to protect your product.<br/>Using 3 inch wide plastic packing tape or 3 inch wide reinforced water-activated paper tape to seal the box.<br/>Removing or covering all old labels if you are reusing packaging. Leaving room on the largest flat surface of your package for a shipping label to be applied.<br/>Do not use Carrier Mail Packs.<br/>Do not use Envelopes.<br/>Do not use Styrofoam popcorn or peanuts.<br/>Drop your device off at the nearest staffed shipping carrier, and please retain your drop off receipt for your records." }, { "image": null, "images": [], "mainTitle": "Can I cancel a trade-in?", "pcImage": null, "uriText": null, "uri": null, "desc": "Normally, we don't allow the cancellation of a trade-in order separately while keeping the new phone order. If you haven't shipped your old device yet, you can choose not to send it. However, if you've already sent your old device and the inspection doesn't pass, resulting in a revised offer email, you can reject the updated offer to have your device returned to you." } ] } </script> <script type="application/json" id="global-phone-regex"> { "CA": [ "1", "011", "(?:[2-8]\\d|90)\\d{8}|3\\d{6}", [ 7, 10 ], 0, "1", 0, 0, 0, 0, 0, [ [ "(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|6[578])|4(?:03|1[68]|3[178]|50|68|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|13|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}", [ 10 ] ], [ "", [ 10 ] ], [ "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", [ 10 ] ], [ "900[2-9]\\d{6}", [ 10 ] ], [ "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-7]|33|44|66|77|88)|622)[2-9]\\d{6}", [ 10 ] ], 0, [ "310\\d{4}", [ 7 ] ], 0, [ "600[2-9]\\d{6}", [ 10 ] ] ] ], "US": [ "1", "011", "[2-9]\\d{9}|3\\d{6}", [ 10 ], [ [ "(\\d{3})(\\d{4})", "$1-$2", [ "310" ], 0, 1 ], [ "(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3", [ "[2-9]" ], 0, 1, "$1-$2-$3" ] ], "1", 0, 0, 0, 0, 0, [ [ "505(?:[2-57-9]\\d\\d|6(?:[0-35-9]\\d|44))\\d{4}|(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[1567])|8(?:0[1-68]|1[02-8]|2[068]|3[0-289]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-9]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}" ], [ "" ], [ "8(?:00|33|44|55|66|77|88)[2-9]\\d{6}" ], [ "900[2-9]\\d{6}" ], [ "52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-7]|33|44|66|77|88)[2-9]\\d{6}" ] ] ] } </script> <div id="customer-service-entrance" class="customer-service-entrance"> <a href="javascript:;" class="icon-btn" onclick="onClickCustomerServiceEnt()" > <div class="icon-btn-svg"> <img src="https://opsg-img-cdn-gl.heytapimg.com/epb/202210/12/NujgdjSAIGaFvgnH.svg" alt=""> </div> </a> </div> <style> .customer-service-entrance { z-index: 99; position: fixed; bottom: 96px; left: 64px; width: 48px; height: 48px; text-align: center; border-radius: 24px; box-shadow: 0px 5px 12px 0px rgba(0,0,0,0.08); background: #fff; display: none !important; } .customer-service-entrance .icon-btn { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; border-radius: 24px; } .customer-service-entrance .icon-btn-svg { width: 24px; height: 24px; display: flex; } @media screen and (max-width: 649px) { .customer-service-entrance { left: unset; bottom: 64px; right: 16px; width: 40px; height: 40px; } } </style> <script> window.addEventListener('DOMContentLoaded', () => { // 页面通过配置window.customerServiceShow来决定是否展示悬浮入口 var isShow = window.customerServiceShow var customerDom = document.getElementById('customer-service-entrance') if (isShow) customerDom.style.display = 'block' }) function onClickCustomerServiceEnt () { // 埋点 window.dataLayer.push({ event: 'ga4Event', event_name: 'Live_chat', event_parameters: { current_screen: window.location.href, page_content: window.location.href, module: 'Live_chat_entry', button_name: '', title: 2 } }) // app与web区分跳转链接 var chat_launch_url = '' if (window.OnePlusClientBaseJS !== undefined) { chat_launch_url = 'https://oneplus.custhelp.com/app/chat/chat_launch?channel=1' } else { chat_launch_url = 'https://oneplus.custhelp.com/app/chat/chat_launch?channel=2' } window.open(chat_launch_url, 'blank') } </script> <script id="online-chat-data" type="application/json"> { "whatsAppUrlApp": "https://oneplus.custhelp.com/app/chat/chat_launch?channel=1", "whatsAppUrl": "https://oneplus.custhelp.com/app/chat/chat_launch?channel=2", "chatTitle": "Need shopping help?", "chatSubTitle": "9 am - 9 pm EST, Mon to Fri;<br/>10 am - 8 pm EST, Sat to Sun", "chatEmptyTitle": "Need shopping help?", "chatEmptySubTitle": "9 am - 9 pm EST, Mon to Fri;<br/>10 am - 8 pm EST, Sat to Sun", "customerLogo": "https://www.oneplus.com/content/dam/oasis/page/2024/imagine/na-service.png", "times": 4000, "waitTimes": 4000, "isShowAlert": true } </script> <script crossorigin src="https://cdn.opstatics.com/store/20170907/checkout-payment/index.js?v=1739171933084"></script> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5HW9RGK');</script> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5HW9RGK"height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <script type="application/json" id="common-scripts"> [ "https://cdn.opstatics.com/store/20170907/assets/scripts/gtm-business.min.js?v=1739171933084", "//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js?v=1739171933084" ] </script> <script id="online-chat-data" type="application/json"> { "whatsAppUrlApp": "https://oneplus.custhelp.com/app/chat/chat_launch?channel=1", "whatsAppUrl": "https://oneplus.custhelp.com/app/chat/chat_launch?channel=2", "chatTitle": "Need shopping help?", "chatSubTitle": "9 am - 9 pm EST, Mon to Fri;<br/>10 am - 8 pm EST, Sat to Sun", "chatEmptyTitle": "Need shopping help?", "chatEmptySubTitle": "9 am - 9 pm EST, Mon to Fri;<br/>10 am - 8 pm EST, Sat to Sun", "customerLogo": "https://www.oneplus.com/content/dam/oasis/page/2024/imagine/na-service.png", "times": 4000, "waitTimes": 4000, "isShowAlert": true } </script> <script> (function () { function async_load_resources() { function _loadScript(src, callback) { var r = false, s = document.createElement('script'); s.type = 'text/javascript'; s.src = src; s.onload = s.onreadystatechange = function () { if (!r && (!this.readyState || this.readyState == 'complete')) { r = true; typeof callback == 'function' && callback(); } }; document.head.appendChild(s); } var scripts = document.getElementById('common-scripts').innerHTML; try { scripts = JSON.parse(scripts); } catch (e) { scripts = []; } for (var i = 0; i < scripts.length; i++) { _loadScript(scripts[i]); } } window.addEventListener('load', async_load_resources); })(); </script> <script type="text/javascript" id="741b2a0bd043"> (function (){ var siteId = "741b2a0bd043"; function t(t,e){for(var n=t.split(""),r=0;r<n.length;++r)n[r]=String.fromCharCode(n[r].charCodeAt(0)+e);return n.join("")}function e(e){return t(e,-h).replace(/%SN%/g,siteId)}function n(t){for(var e=escape(t)+"=",n=document.cookie.split(";"),r=0;r<n.length;r++){for(var o=n[r];" "==o.charAt(0);)o=o.substring(1,o.length);if(0===o.indexOf(e))return unescape(o.substring(e.length,o.length))}return null}function r(t,e){var r=new Date;r.setTime(r.getTime()+15768e7);var o,i,a,u="; expires="+r.toGMTString();if(a=location.host,1===a.split(".").length)document.cookie=escape(t)+"="+escape(e)+u+"; path=/";else{i=a.split("."),i.shift(),o="."+i.join("."),document.cookie=escape(t)+"="+escape(e)+u+"; path=/; domain="+o;var c=n(t);null!=c&&c==e||(o="."+a,document.cookie=escape(t)+"="+escape(e)+u+"; path=/; domain="+o)}}function o(t){x.ex=t,p(x)}function i(t,e,n){var r=document.createElement("script");r.onerror=n,r.onload=e,r.type="text/javascript",r.id="ftr__script",r.async=!0,r.src="https://"+t;var o=document.getElementsByTagName("script")[0];o.parentNode.insertBefore(r,o)}function a(){U(S.uAL),setTimeout(u,v,S.uAL)}function u(t){try{var e=t===S.uDF?m:g;i(e,function(){k(),x.ex=t+S.uS,p(x)},function(){try{k(),x.td=1*new Date-x.ts,x.ex=t+S.uF,p(x),t===S.uDF&&a()}catch(e){x.ex=t+S.eUoe,p(x)}})}catch(e){x.ex=t+S.eTlu,p(x)}}var c="fort",s="erTo",d="ken",f=c+s+d,l="6",h=3,m=e("(VQ(1fgq71iruwhu1frp2vq2(VQ(2vfulsw1mv"),g=e("g68x4yj4t5;e6z1forxgiurqw1qhw2vq2(VQ(2vfulsw1mv"),v=10;window.ftr__startScriptLoad=1*new Date;var p=function(t){var e=function(t){return t||""},n=e(t.id)+"_"+e(t.ts)+"_"+e(t.td)+"_"+e(t.ex)+"_"+e(l);r(f,n)},w=function(){str=n(f)||"";var t=str.split("_"),e=function(e){return t[e]||void 0};return{id:e(0),ts:e(1),td:e(2),ex:e(3),vr:e(4)}},T=function(){for(var t={},e="fgu",n=[],r=0;r<256;r++)n[r]=(r<16?"0":"")+r.toString(16);var o=function(t,e,r,o,i){var a=i?"-":"";return n[255&t]+n[t>>8&255]+n[t>>16&255]+n[t>>24&255]+a+n[255&e]+n[e>>8&255]+a+n[e>>16&15|64]+n[e>>24&255]+a+n[63&r|128]+n[r>>8&255]+a+n[r>>16&255]+n[r>>24&255]+n[255&o]+n[o>>8&255]+n[o>>16&255]+n[o>>24&255]},i=function(){if(window.Uint32Array&&window.crypto&&window.crypto.getRandomValues){var t=new window.Uint32Array(4);return window.crypto.getRandomValues(t),{d0:t[0],d1:t[1],d2:t[2],d3:t[3]}}return{d0:4294967296*Math.random()>>>0,d1:4294967296*Math.random()>>>0,d2:4294967296*Math.random()>>>0,d3:4294967296*Math.random()>>>0}},a=function(){var t="",e=function(t,e){for(var n="",r=t;r>0;--r)n+=e.charAt(1e3*Math.random()%e.length);return n};return t+=e(2,"0123456789"),t+=e(1,"123456789"),t+=e(8,"0123456789")};return t.safeGenerateNoDash=function(){try{var t=i();return o(t.d0,t.d1,t.d2,t.d3,!1)}catch(t){try{return e+a()}catch(t){}}},t.isValidNumericalToken=function(t){return t&&t.toString().length<=11&&t.length>=9&&parseInt(t,10).toString().length<=11&&parseInt(t,10).toString().length>=9},t.isValidUUIDToken=function(t){return t&&32===t.toString().length&&/^[\d\w]+$/.test(t)},t.isValidFGUToken=function(t){return 0==t.indexOf(e)&&t.length>=12},t}(),S={uDF:"UDF",uAL:"UAL",mLd:"1",eTlu:"2",eUoe:"3",uS:"4",uF:"9",tmos:["T5","T10","T15","T30","T60"],tmosSecs:[5,10,15,30,60]},y=function(t,e){for(var n=S.tmos,r=0;r<n.length;r++)if(t+n[r]===e)return!0;return!1};try{var x=w();try{x.id&&(T.isValidNumericalToken(x.id)||T.isValidUUIDToken(x.id)||T.isValidFGUToken(x.id))||(x.id=T.safeGenerateNoDash()),x.ts=window.ftr__startScriptLoad,p(x);var D=new Array(S.tmosSecs.length),U=function(t){for(var e=0;e<S.tmosSecs.length;e++)D[e]=setTimeout(o,1e3*S.tmosSecs[e],t+S.tmos[e])},k=function(){for(var t=0;t<S.tmosSecs.length;t++)clearTimeout(D[t])};y(S.uDF,x.ex)?a():(U(S.uDF),setTimeout(u,v,S.uDF))}catch(t){x.ex=S.mLd,p(x)}}catch(t){} })(); </script> <script type="application/json" id="show-ppg-section">0</script> <script> var CC_OrgID = "k8vif92e"; var CC_MerchantID = "gphk088010429800"; var CC_CreditEnable = parseInt(1); function addFingerPrint() { var oneplusId = ''; if(document.cookie){ var items = document.cookie.split("; "); for(var i=0; i<items.length; i++){ var item = items[i]; var p = item.indexOf('='); var name = item.substring(0,p); if(name === 'ONEPLUSID') { oneplusId = decodeURIComponent(item.substring(p+1)); } } } var CC_OrgIDv = ((typeof CC_OrgID) != "undefined") ? CC_OrgID : ''; var CC_MerchantIDv = ((typeof CC_MerchantID) != "undefined") ? CC_MerchantID : ''; var CC_SessionID = oneplusId; if(!!CC_SessionID && !document.getElementById('FingerPrintCombox')){ var htmlStr = '<p style="background:url(https://h.online-metrix.net/fp/clear.png?org_id='+CC_OrgIDv+'&session_id='+CC_MerchantIDv+CC_SessionID+'&m=1)"></p><img src="https://h.online-metrix.net/fp/clear.png?org_id='+CC_OrgIDv+'&session_id='+CC_MerchantIDv+CC_SessionID+'&m=2" alt=""> <object type="application/x-shockwave-flash" data="https://h.online-metrix.net/fp/fp.swf?org_id='+CC_OrgIDv+'&session_id='+CC_MerchantIDv+CC_SessionID+'" width="1" height="1" id="thm_fp"><param name="movie" value="https://h.online-metrix.net/fp/fp.swf?org_id='+CC_OrgIDv+'&session_id='+CC_MerchantIDv+CC_SessionID+'" /></object> <script src="https://h.online-metrix.net/fp/check.js?org_id='+CC_OrgIDv+'&session_id='+CC_MerchantIDv+CC_SessionID+'" type="text/javascript"><\/script>'; var fingerPrintCombox = document.createElement('div'); fingerPrintCombox.setAttribute('id','FingerPrintCombox'); fingerPrintCombox.setAttribute('style','width:0;height:0; overflow:hidden;'); fingerPrintCombox.innerHTML = htmlStr; document.body.appendChild(fingerPrintCombox); } //credit card fingerprint if(!!document.getElementById('FingerPrintCombox') && document.getElementById('FingerPrintCombox').getElementsByTagName('script').length){ if(typeof ga == 'function'){ ga('send', 'event', 'Stats', 'Checkout', 'DFLoaded',''+CC_MerchantIDv + CC_SessionID, { nonInteraction: true }); } } } addFingerPrint(); </script> <style> html .bbs-app-env .hidden-in-app { display: block; } html .bbs-app-env .account-list-container .hidden-in-app { display: none; } </style> <script> // firebase 埋点 if ((typeof window.COMMUNITY_APP_ACCOUNT !== 'undefined' && typeof window.COMMUNITY_APP_ACCOUNT.COMMUNITY_APP_ACCOUNT_LOGIN !== 'undefined' && typeof window.COMMUNITY_APP_ACCOUNT.COMMUNITY_APP_ACCOUNT_LOGIN === 'function') || typeof window.OnePlusClientBaseJS !== 'undefined') { function logEvent(name, params) { if (!name) { return; } if (window.AnalyticsWebInterface) { // Call Android interface window.AnalyticsWebInterface.logEvent(name, JSON.stringify(params)); } else if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.firebase) { // Call iOS interface var message = { command: 'logEvent', name: name, parameters: params }; window.webkit.messageHandlers.firebase.postMessage(message); } else { // No Android or iOS interface found console.log("No native APIs found."); } } function setUserProperty(name, value) { if (!name || !value) { return; } if (window.AnalyticsWebInterface) { // Call Android interface window.AnalyticsWebInterface.setUserProperty(name, value); } else if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.firebase) { // Call iOS interface var message = { command: 'setUserProperty', name: name, value: value }; window.webkit.messageHandlers.firebase.postMessage(message); } else { // No Android or iOS interface found console.log("No native APIs found."); } } window.onload = function(){ const screen_key = location.pathname if(typeof window.COMMUNITY_APP_ACCOUNT !== 'undefined' && typeof window.COMMUNITY_APP_ACCOUNT.COMMUNITY_APP_ACCOUNT_LOGIN !== 'undefined' && typeof window.COMMUNITY_APP_ACCOUNT.COMMUNITY_APP_ACCOUNT_LOGIN === 'function'){ logEvent("screen_view", { screen_name: screen_key, screen_class: 'bbs_screen_class'}); } } } </script> <script> function getPageName () { var pathArr = location.pathname.split('/') var urlName = pathArr.concat([]).pop() var pageName = '' if (window.isHome) { // 首页 pageName = 'home' } else if (urlName === 'store') { // 配件主页 pageName = 'store' } else if (/www.+\/store\/phone($|\?)/.test(location.href)) { // 手机列表页 pageName = 'storeProduct' } else if (/www.+\/store\/power-cables($|\?)/.test(location.href)) { // 电源列表页 pageName = 'storeProduct' } else if (/www.+\/store\/cases-protection($|\?)/.test(location.href)) { // 保护壳配件列表页 pageName = 'storeProduct' } else if (/www.+\/store\/audio($|\?)/.test(location.href)) { // 耳机列表页 pageName = 'storeProduct' } else if (/www.+\/store\/bundles($|\?)/.test(location.href)) { // 套装列表页 pageName = 'storeProduct' } else if (/www.+\/store\/gear($|\?)/.test(location.href)) { // 背包列表页 pageName = 'storeProduct' } else if (urlName === 'jcart') { // 购物车页 pageName = 'jcart' } else if (urlName === 'onepage') { // checkout 页 pageName = 'checkout' } else if (location.pathname.indexOf('jcart/falcon/success') >= 0) { // 支付成功页 pageName = 'paymentSuccess' } else if (location.pathname.indexOf('sales/order/history') >= 0 && location.search.indexOf('payment_status=error') >= 0) { // 支付失败页 pageName = 'paymentFail' } else if (urlName.indexOf('oneplus-') === 0 && document.getElementById('data-device')) { // 手机购买页 pageName = 'phoneModels' } else if (document.getElementById('data-recom')) { // 配件购买页 pageName = 'accessoryDetail' } else if (/www.+\/transaction\/pay($|\?)/.test(location.href)) { // 收银台页面 pageName = 'cashRegister' } else if (/\/transaction\/pay($|\?)/.test(location.href)) { pageName = 'cashRegister' } else if (/\/account\//.test(location.href)) { // 账号页 pageName = 'account' } return pageName } const screen_path= location.pathname const page_group = getPageName () const screen_view_params =JSON.stringify( {"screen_name": screen_path, "screen_class": page_group}) if(typeof window.OnePlusAnalyticsWebJs !== 'undefined'){ window.OnePlusAnalyticsWebJs.logEvent("screen_view", screen_view_params) } </script> <script> window.omoGetUsetLocation = false window.omoGetUserLocation = false </script> <!-- 风控指纹接入 --> <script> var oneplusWebFP = oneplusWebFP || undefined; var oneplusWebFPConfig = { src: 'https://cdn.opstatics.com/store/20170907/assets/scripts/WebFingerprint.min.js', initParams:{ uploadUrl: 'https://bsp-di-us.heytapmobile.com/v1/js/d', appId: 'dd4e4d48b9664f8da2cc0796e4f6f9d3' } } function WebFingerLoad() { window.oneplusWebFP = new window.WebFingerprint(window.oneplusWebFPConfig.initParams) window.oneplusWebFP.getToken({timeout:2000},()=>{}) } </script> <script src="https://cdn.opstatics.com/store/20170907/assets/scripts/WebFingerprint.min.js" onload="WebFingerLoad()" async></script> </body> </html>