CINXE.COM
Login - ECHEMI
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Login - ECHEMI</title> <link rel="canonical" href="https://i.echemi.com/login.html" /> <script> const isGoNative = navigator.userAgent.indexOf("gonative") >= 0; if (isGoNative) { const elements = document.getElementsByClassName("browser-only") while(elements.length > 0) { elements[0].parentNode.removeChild(elements[0]); } } else { const elements = document.getElementsByClassName("native-only") while(elements.length > 0) { elements[0].parentNode.removeChild(elements[0]); } } function googleLoginCallback(response) { console.log("Google Login Callback"); let idToken; if (response.credential) { // browser-only idToken = response.credential; } else { // native-only idToken = response.idToken; } if (idToken) { const { payloadObj } = KJUR.jws.JWS.parse(idToken); if (payloadObj) { const { given_name, family_name, email, sub } = payloadObj; const payload = { email, first_name: given_name, last_name: family_name, provider_type: "google", provider_token: idToken, provider_uid: sub, } var googleUserId = "" $.ajax({ url: "https://www.googleapis.com/oauth2/v3/tokeninfo?id_token="+idToken, dataType:"jsonp", type:"get", success:function(data){ if (data!=null) { googleUserId = data.sub; if (googleUserId!=""){ var email_verified = data.email_verified; if (email_verified == "true"){ snsLoginCheck("4", googleUserId, email, ""); }else{ errorInfoDisplay("EMAIL_IS_NOT_VERIFIED"); } } }else{ errorInfoDisplay("GOOGLE_USER_ID_GET_FAIL"); } } }) // fetch("users/register", { // method: "POST", // headers: { // "Content-Type": "application/json", // }, // body: JSON.stringify(payload), // }).then((data) => data.json() // ).then((data) => { // handleResponse(data); // }).catch((error) => { // console.error(error); // }); } } else { console.log("User cancelled login or did not fully authorize."); } } </script> <link rel="shortcut icon" href="https://static-i.echemi.com/static/common/images/favicon.ico"/> <link rel="bookmark" href="https://static-i.echemi.com/static/common/images/favicon.ico"/> <link rel="icon" href="https://static-i.echemi.com/static/common/images/favicon.ico" type="image/gif" /> <link rel="stylesheet" href="https://static-i.echemi.com/static/pc/css/common.min_v52bdce.css"> <link rel="stylesheet" href="https://static-i.echemi.com/static/pc/css/lc_common_v23f2b2.css"> <link rel="stylesheet" href="https://static-i.echemi.com/static/common/css/public_v82ce45.css"> <link href="https://static-i.echemi.com/static/common/css/fonts/iconfont.min_vb243ee.css" rel="stylesheet"> <script src="https://static-i.echemi.com/static/common/js/jquery-3.3.1.min_v4b57cf.js" type="text/javascript"></script> <script src="https://static-i.echemi.com/static/common/js/loading_v69bb30.js" type="text/javascript"></script> <script src="https://static-i.echemi.com/static/common/js/html5_v0ce8f3.js" type="text/javascript"></script> <script src="https://static-i.echemi.com/static/common/js/i18n_vac29a8.js" type="text/javascript"></script> <script src="https://static-i.echemi.com/static/pc/js/func.min_vc69a7e.js" type="text/javascript"></script> <script src="https://static-i.echemi.com/static/common/js/jquery-ui-1.10.4.min_ve47eed.js"></script> <script src="https://static-i.echemi.com/static/common/js/lazysizes.min_v0812d0.js"></script> <script type="text/javascript"> var webRoot = "https://i.echemi.com"; var webRootAjax = "https://i.echemi.com"; var webRootStaticCdn = "https://static-i.echemi.com/static"; var webRootFileCdn = "https://file.echemi.com/fileManage"; var webRootEn = "https://www.echemi.com"; var webRootZh = "https://zh.echemi.com"; var webRootSupplier = "https://supplier.echemi.com"; var echemiNowLang = "en"; var regExpEmail = "^[a-zA-Z0-9\\.\\-\\+\\_\\&]+@([A-Za-z0-9\\-]+\\.)+[A-Za-z0-9]+$"; var regExpNumber = "^[0-9]+(\\.[0-9]+)?$"; var regExpNotChinese = "^[^\\u4e00-\\u9fa5]*$"; var regExpCasno = "^[0-9]{2,7}-[0-9]{1,2}-[0-9]{1}$"; var regExpPassword = "(?=.*([a-zA-Z].*))(?=.*[0-9].*)[a-zA-Z0-9-*/+.~!@#$%^&*()]{8,18}$"; var regExpTelephone = "^[+]?[\\-0-9]+[0-9]$"; </script> <!-- Google Tag Manager start --> <script async src="https://www.googletagmanager.com/gtag/js?id=AW-652012140"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'AW-652012140'); gtag('config', 'UA-163721333-1'); (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-PGNVPDK'); </script> <!-- Google Tag Manager end --><!-- Google Tag Manager (noscript) start --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PGNVPDK" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- Google Tag Manager (noscript) end --> <script> //获取用户customerId $.ajax({ url: webRootAjax + "/getUserProfileInfo.do", type: "post", data: { url: window.location.href }, dataType: "json", success: function (json) { if (json.success) { var map = json.map var browseChannelInfo = map.browseChannelInfo var userProfileInfo = map.userProfileInfo if (userProfileInfo.customerType != null && userProfileInfo.customerType != '') { var customerType = userProfileInfo.customerType var customerTypeName = userProfileInfo.customerTypeName var customerTypes = customerType.split(',') var customerTypeNames = customerTypeName.split(',') for (var i = 0; i < customerTypes.length; i++) { var param = { 'event': 'add_user_profile', user_profile: { main_category_id: userProfileInfo.mainCategoryId == null ? '' : userProfileInfo.mainCategoryId, main_category_name: userProfileInfo.mainCategoryName == null ? '' : userProfileInfo.mainCategoryName, channel_type: browseChannelInfo.channel_type == null ? '' : browseChannelInfo.channel_type, channel_name: browseChannelInfo.channel_name == null ? '' : browseChannelInfo.channel_name } } if (i == 0) { param.page_view = 1; } else { param.page_view = 0; } param.customer_id = map.userId == null ? '' : map.userId; if (map.userId != null && map.userId != '') { param.user_id = map.userId; } param.user_profile.customer_type = customerTypes[i]; param.user_profile.customer_type_name = customerTypeNames[i]; dataLayer.push(param); } } else { var param = { 'event': 'add_user_profile', user_profile: { main_category_id: userProfileInfo.mainCategoryId == null ? '' : userProfileInfo.mainCategoryId, main_category_name: userProfileInfo.mainCategoryName == null ? '' : userProfileInfo.mainCategoryName, channel_type: browseChannelInfo.channel_type == null ? '' : browseChannelInfo.channel_type, channel_name: browseChannelInfo.channel_name == null ? '' : browseChannelInfo.channel_name } } param.page_view = 1; param.customer_id = map.userId == null ? '' : map.userId; if (map.userId != null && map.userId != '') { param.user_id = map.userId; } param.user_profile.customer_type = ''; param.user_profile.customer_type_name = ''; dataLayer.push(param); } } } }); </script><link rel="stylesheet" href="https://static-i.echemi.com/static/pc/css/login_vab713f.css"> </head> <body> <div class="container"> <div class="top_logo_box"> <a href="https://www.echemi.com"> <img src="https://static-i.echemi.com/static/pc/images/common/logo_v0e95fd.svg" alt="logo"> </a> <select id="pageLang" onchange="changeLang()"> <option value="en">English</option> <option value="zh-cn">中文</option> </select> </div> <script type="text/javascript"> function changeLang() { var pageLang = $("#pageLang").val(); $.ajax({ type : "POST", dataType : "JSON", url : webRootAjax + "/common/changeLang.do", data : { lang : pageLang }, success : function(data) { if (data.success) { //reload this page location.reload(); } } }); } </script> <div class="middle_cont"> <div class="img_box"> <img src="https://static-i.echemi.com/static/pc/images/common/login_banner_v1b1251.png" alt="banner"> </div> <div class="for_other_login"> <div class="form_box" data-login-type="0"> <div class="message_verificate_code"><i class="iconfont icon-yanzhengma"></i> Verification Code</div> <div class="input_item"> <input type="text" placeholder="Email Address" id="username" maxlength="60" onblur="checkLoginItems('username')"> </div> <div class="error_msg" style="display: none" id="username_error_div"> <i class="iconfont"></i> <span id="username_error_span"></span> </div> <div class="input_item"> <input type="password" placeholder="Please enter your password" id="password" onblur="checkLoginItems('password')"> <i class="iconfont icon-bukejian" id="closeEye"></i> <i class="iconfont icon-kejian" id="openEye" style="display: none;"></i> </div> <div class="error_msg" style="display: none" id="password_error_div"> <i class="iconfont"></i> <span id="password_error_span"></span> </div> <div class="flex"> <div class="flex"> <a href="https://i.echemi.com/repwd/password1.html">Forgot Password</a> <span>New User <a href="https://i.echemi.com/register.html">Join Free</a></span> </div> <div class="for_keepLogin"> <input type="checkbox" id="keepLogin" checked> <label for="keepLogin">Stay logged in for one week</label> </div> </div> <div class="input_item code_item" style="display: none" id="verCode_div"> <input type="text" id="verCode" placeholder="Verification Code" onblur="checkLoginItems('verCode')"> <img id="verCodeImg" src="" alt="Verification Code" onclick="refreshVerCode()"/> <i class="iconfont" onclick="refreshVerCode()"></i> </div> <div class="error_msg" style="display: none" id="verCode_error_div"> <i class="iconfont"></i> <span id="verCode_error_span"></span> </div> <div class="sign_btn" onclick="doLogin()">Login</div> </div> <div class="form_box" data-login-type="1" style="display: none"> <div class="message_verificate_code"><i class="iconfont icon-yuechi"></i> Sign In with Password</div> <div class="flex border"> <p>+86</p> <input type="text" placeholder="Please enter your phone" id="customerPhone" name="customerPhone" maxlength="11" onblur="checkPhoneLoginItems('customerPhone')"> </div> <div class="error_msg" id="customerPhone_error_div"> <i class="iconfont"></i> <span id="customerPhone_error_span"></span> </div> <div class="flex border"> <input type="text" placeholder="Please enter the verification code." id="smsVerCode" name="smsVerCode" maxlength="6" onblur="checkPhoneLoginItems('customerPhone')"> <div class="code_btn">Get Code<span></span></div> </div> <div class="error_msg" id="smsVerCode_error_div"> <i class="iconfont"></i> <span id="smsVerCode_error_span"></span> </div> <div class="flex"> <div class="flex"> <a href="https://i.echemi.com/repwd/password1.html">Forgot Password</a> <span>New User <a href="https://i.echemi.com/register.html">Join Free</a></span> </div> <div class="for_keepLogin"> <input type="checkbox" id="keepLoginByPhone" checked> <label for="keepLoginByPhone">Stay logged in for one week</label> </div> </div> <div class="sign_btn" onclick="doLogin()">Login</div> </div> <div class="other_login"> <div id="g_id_onload" data-client_id="918828252277-47inl8mddcp3uajdckg3fv5h452jftop.apps.googleusercontent.com" data-context="signin" data-ux_mode="popup" data-callback="googleLoginCallback" data-prompt_parent_id="g_id_onload" style="position: absolute; top: 100px; right: 30px; width: 0; height: 0; z-index: 1001;" ></div> <div class="g_id_signin" data-type="standard" data-shape="rectangular" data-theme="outline" data-text="signin_with" data-size="large" data-width=200 data-logo_alignment="left" ></div> <button hidden class="google-login native-only" onclick="gonative.socialLogin.google.login({ 'callback' : googleLoginCallback });"> Log in With Google </button> <div class="other_item" onclick="facebookLogin();return false;" href="javascript:void(0);"> <div><i class="facebook"></i> <span>Continue with Facebook</span></div> </div> <div class="other_item" onclick="window.location.href='https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=8140teur4z0bfb&redirect_uri=https://i.echemi.com/snsLogin/linkedInCallBack.html&state=987654321&scope=r_liteprofile%20r_emailaddress%20w_member_social'"> <div><i class="linkedin"></i> <span>Continue with Linkedin</span></div> </div> <div class="other_item" onclick="window.location.href='https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101965910&redirect_uri=https://i.echemi.com/snsLogin/qqCallBack.html&scope=get_user_info&state=register target=_blank'"> <div><i class="qq"></i> <span>Continue with QQ</span></div> </div> <div class="other_item" onclick="wechatLogin()"> <div><i class="wechat"></i> <span>Continue with WeChat</span></div> </div> </div> </div> </div> <div class="bottom_box"> <div class="flex"> <a href="https://www.echemi.com/echemi.html">About ECHEMI</a> <a href="https://www.echemi.com/helpCenter-registering.html">Commmon Questions</a> <a href="https://www.echemi.com/trade-service/suppliers.html">For Suppliers</a> <a href="https://www.echemi.com/trade-service/buyers.html">For Buyers</a> <a href="https://www.echemi.com/contactinfo.html">Contact Us</a> </div> <div class="flex"> <a href="https://www.echemi.com/conditions.html">Terms of Use</a> <a href="https://www.echemi.com/privacy.html">Privacy Notice</a> </div> <p><a href="http://beian.miit.gov.cn" style="color: #AAB7CC;" target="_blank">鲁ICP备16009155号-1</a> | Copyright@Qingdao ECHEMI Digital Technology Co., Ltd.</p> </div></div> </body> <script type="text/javascript" src="https://static-i.echemi.com/static/common/js/jquery.md5_vf90027.js"></script> <script type="text/javascript" src="https://static-i.echemi.com/static/common/js/page/page_register_vb1be1b.js"></script> <script type="text/javascript"> var returnUrl = ""; var pageDirect = ""; var googleClientId = "918828252277-47inl8mddcp3uajdckg3fv5h452jftop.apps.googleusercontent.com"; var facebookAppid = "2642643859094547"; var facebookKey = "d9e684b88fc71f12843c14262a67b864"; var qq_client_id = "101965910"; /*是否要校验验证码(0:不验证 1:验证)*/ var verCodeCheckFlag = "0"; var loginType = "0"; $(function () { var exclusive = ""; var freezeReason = "账号已冻结,Account has been frozen."; if(exclusive == '1'){ alertBox_pc("Tips","Your account is logged in from another place. If it is not operated by yourself, please change your login password in time.","Confirm"); return false; }else if (exclusive == '2'){ alertBox_pc("Tips","Sorry, the membership of the primary account of this account has expired, this account has expired.","Confirm"); return false; }else if (exclusive == '3'){ alertBox_pc("Tips",freezeReason,"Confirm"); return false; } $('.input_item input').focus(function () { $(this).parent().addClass('focus') }) $('.input_item input').blur(function () { $(this).parent().removeClass('focus') }) //------------------登录页面密码长按显示或隐藏-------------------- //鼠标松开时密码隐藏 $("#openEye").click(function () { //修改input标签的类型 $("#password").attr("type", "password"); //显示密码的图片隐藏 $("#openEye").hide(); //隐藏密码的图片显示 $("#closeEye").show(); }); //鼠标按下时密码显示 $("#closeEye").click(function () { //修改input标签的类型 $("#password").attr("type", "text"); //隐藏密码的图片显示 $("#closeEye").hide(); //显示密码的图片隐藏 $("#openEye").show(); }); var sendVerCodePhoneAllowFlag = true; $('.form_box .code_btn').click(function () { var phone = $("#customerPhone").val().trim(); if (phone == "") { showLoginErrorMsg("customerPhone", "Please enter your phone."); return false; } if (sendVerCodePhoneAllowFlag){ sendVerCodePhoneAllowFlag = false; }else{ return; } if (!checkPhone(phone,"CN")){ showLoginErrorMsg("customerPhone", "Please fill in the correct mobile number."); return false; } $(this).addClass('disabled'); loadingBox(); $.ajax({ type : "POST", dataType : "JSON", url : webRootAjax + "/login/getLoginSmsVerCode.do", data : { phone : phone }, success : function(data) { loadingStop(); if (data.success) { countdownRun(); }else{ var msg = data.msg; var message = ""; if (msg == "PHONE_IS_EMPTY") { message = "Please enter your phone."; }else if (msg== "SEND_UPPER_TIME"){ message = "Please try again in 15 minutes."; }else if (msg== "NOT_CHINA_TELEPHONE_NO"){ message = "Please enter your Chinese mobile phone number."; }else{ message = "System error!"; } showLoginErrorMsg("smsVerCode", message); } } }); }) $('.message_verificate_code').click(function () { $(this).parents('.form_box').hide().siblings('.form_box').show(); loginType = $('.form_box').filter(function() { return $(this).css('display') === 'block'; }).attr('data-login-type'); }) }) function countdownRun() { let time = 60; $('.form_box .code_btn span').html('( '+ time +'s )'); var timer = setInterval(function () { time--; $('.form_box .code_btn span').html('( '+ time +'s )'); if (time == 0) { $('.form_box .code_btn').removeClass('disabled'); $('.form_box .code_btn span').html(''); clearInterval(timer); sendVerCodePhoneAllowFlag = true; } },1000) } /*刷新验证码*/ function refreshVerCode() { $("#verCodeImg").prop("src", webRoot+"/randCodeImage?" + new Date().getTime()); } /*项目检查*/ function checkLoginItems(id) { //登录邮箱检查 if (id=="username" || id=="ALL") { var username = $("#username").val().trim(); if (username == "") { showLoginErrorMsg("username", "Email Address"); return false; }else{ hideLoginErrorMsg("username"); } } //登录密码检查 if (id=="password" || id=="ALL") { var password = $("#password").val(); if (password == "") { showLoginErrorMsg("password", "Please enter your password"); return false; }else{ hideLoginErrorMsg("password"); } } if (verCodeCheckFlag=="1" && (id=="verCode" || id=="ALL")) { var verCode = $("#verCode").val(); if (verCode == "") { showLoginErrorMsg("verCode", "Please enter verification code."); return false; }else{ hideLoginErrorMsg("verCode"); } } return true; } function checkPhoneLoginItems(id) { //登录手机号检查 if (id=="customerPhone" || id=="ALL") { var customerPhone = $("#customerPhone").val().trim(); if (customerPhone == "") { showLoginErrorMsg("customerPhone", "Please enter your phone."); return false; }else{ hideLoginErrorMsg("customerPhone"); } } //登录密码检查 if (id=="smsVerCode" || id=="ALL") { var smsVerCode = $("#smsVerCode").val(); if (smsVerCode == "") { showLoginErrorMsg("smsVerCode", "Please enter the verification code."); return false; }else{ hideLoginErrorMsg("smsVerCode"); } } return true; } /*执行登录*/ var loginFlag =true; function doLogin() { //登录检查 if (loginFlag){ var data; if (loginType == '0'){ if (!checkLoginItems("ALL")){ return false; } data = { username : $("#username").val().trim(), password : $.md5($("#password").val()), //md5加密 verCodeCheckFlag : verCodeCheckFlag, verCode : $("#verCode").val(), loginType:"0", keepLogin : $("#keepLogin")[0].checked } }else if (loginType == '1'){ if (!checkPhoneLoginItems("ALL")){ return false; } data = { username : $("#customerPhone").val().trim(), verCodeCheckFlag : "0", smsVerCode : $("#smsVerCode").val(), loginType:"1", keepLogin : $("#keepLoginByPhone")[0].checked } } loginFlag=false; $.ajax({ type : "POST", dataType : "JSON", url : webRootAjax + "/login/doLogin.do", data : data, async : false, success : function(data) { if (data.success) { var obj = data.obj; var customerType = obj.customerType; var authenticationStatus = obj.authenticationStatus; var isFirstLogin = obj.isFirstLogin; if((customerType == '2'|| customerType =='4') && authenticationStatus != '2' && isFirstLogin == '1'){ location.href = webRootSupplier; }else{ if (returnUrl != null && returnUrl != "") { location.href = returnUrl; } else { location.href = webRoot; } } }else{ loginFlag=true; var msg = data.msg; var message = ""; var id = "verCode"; if (loginType == '1'){ id = "smsVerCode"; } if (msg == "CUSTOMER_NOT_ACTIVATED_ERROR") { message = "The customer has not been activated. Please <a href='javascript:void(0)' onclick='sendActivationEmail()' style='color: #1470cc'>send an activation email</a> or <a href='javascript:void(0)' onclick='register()' style='color: #1470cc'>register again</a>."; }else if (msg == "PASSWORD_NOT_CORRECT_ERROR") { message = "Please enter the correct password."; id = "password"; }else if (msg == "VERIFICATION_CODE_ERROR") { message = "Please enter the correct verification code."; }else if (msg == "SUB_ACCOUNT_INVALID") { message = "Sorry, the membership of the primary account of this account has expired, this account has expired."; }else if (msg == "CUSTOMER_NOT_EXIST_ERROR") { if (loginType == '0'){ message = "Wrong user name or password."; }else{ message = "The current mobile number is not verified, please log in by entering the password."; } }else if (msg == "CUSTOMER_OPERATOR_NOT_EXIST") { message = "Wrong user name or password."; }else if (msg == "VER_CODE_ERROR") { message = "The entered verification code is incorrect."; }else { message = msg; } if (msg == "CUSTOMER_NOT_ACTIVATED_ERROR") { showLoginErrorMsgHtml(id, message); } else { showLoginErrorMsg(id, message); } if (loginType == '0'){ //刷新验证码,并展示 refreshVerCode(); $("#verCode_div").show(); verCodeCheckFlag = "1"; } } } }); } } function showLoginErrorMsg(id, message) { $("#" + id + "_error_div").css("display", "block"); $("#" + id + "_error_span").text(message); } function showLoginErrorMsgHtml(id, message) { $("#" + id + "_error_div").css("display", "block"); $("#" + id + "_error_span").html(message); } function hideLoginErrorMsg(id) { $("#" + id + "_error_div").css("display", "none"); $("#" + id + "_error_span").text(""); } function sendActivationEmail() { var username = $("#username").val().trim(); $.ajax({ type : "POST", dataType : "JSON", url : webRootAjax + "/register/ajaxSendRegisterSuccessMail.do", data : { customerMail: username }, success : function(json) { loadingStop(); if (json.success) { alertBox_pc("Tips", "Your verification email has been sent successfully", "Confirm"); }else{ var msg = json.msg; var message = ""; if (msg == "ALREADY_ACTIVATED_BUYER") { message = "Your account has been activated"; }else if (msg == "BUYER_NOT_EXIST") { message = "Sorry, the account has not been registered!"; }else if (msg == "CUSTOMER_NOT_EXIST_ERROR") { message = "The user does not exist."; }else{ message = "System Error!"; } alertBox_pc("Tips", message, "Confirm"); } } }); } function register() { var username = $("#username").val().trim(); if (username.indexOf('@') == -1) { location.href = webRoot + "/register.html"; } else { location.href = webRoot + "/register.html?email=" + username; } } </script> <script type="text/javascript" src="https://static-i.echemi.com/static/common/js/snsLogin_vab9ada.js"></script> <script src="https://accounts.google.com/gsi/client" async defer></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jsrsasign/8.0.20/jsrsasign-all-min.js"></script> </html>