云虎H5商城

云虎H5商城


用户登录

<h5>简要描述</h5> <ul> <li>请求URL不是固定的,生成方式请查看[API总体说明]</li> </ul> <h5>请求URL</h5> <ul> <li><code>https://52.yunhu365.com/ErpServer/h5api/12116/st0908_1</code> </li> </ul> <h5>请求方式</h5> <ul> <li>post</li> </ul> <h5>Header</h5> <table> <thead> <tr> <th style="text-align: left;">header</th> <th style="text-align: left;">必选</th> <th>类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">sign</td> <td style="text-align: left;">是</td> <td>string</td> <td>上传的json字符串经过md5签名的值</td> </tr> <tr> <td style="text-align: left;">token</td> <td style="text-align: left;">是</td> <td>string</td> <td>登录成功后返回的用户token,登录前传入空字符串</td> </tr> </tbody> </table> <h5>请求参数示例</h5> <pre><code>{ "actionName": "login", "logintype": 0, "mbphone": "18062639596", "upw": "123456", "openid": "" } </code></pre> <h5>json字段说明</h5> <table> <thead> <tr> <th style="text-align: left;">字段名</th> <th style="text-align: left;">必选</th> <th>类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">actionName</td> <td style="text-align: left;">是</td> <td>string</td> <td>固定传login</td> </tr> <tr> <td style="text-align: left;">logintype</td> <td style="text-align: left;">是</td> <td>int</td> <td>登录类型0表示手机号+密码登录,1表示手机号+短信+图形验证码登录,2邮箱+密码登录,3用户名+密码登录</td> </tr> <tr> <td style="text-align: left;">mbphone</td> <td style="text-align: left;">是</td> <td>string</td> <td>手机号码</td> </tr> <tr> <td style="text-align: left;">upw</td> <td style="text-align: left;">是</td> <td>string</td> <td>密码,logintype=0时必传</td> </tr> <tr> <td style="text-align: left;">codeid</td> <td style="text-align: left;">是</td> <td>int</td> <td>短信ID,logintype=1时必传</td> </tr> <tr> <td style="text-align: left;">msgcode</td> <td style="text-align: left;">是</td> <td>string</td> <td>用户录入的短信验证码,logintype=1时必传</td> </tr> </tbody> </table> <h5>成功返回示例</h5> <pre><code>{ "code": 1, "msg": "", "data": { "userid": 1, "username": "18062639596", "userkey": "ed0113fe20eda14cd178dcceb986e932", "token": "d1381caefec66ccc06e06d4ab5d2da23", "nickname": "明记", "usermode": 1, "userimg": "", "mbphone": "18062639596", "sex": "男" } } </code></pre> <h5>成功返回示例的参数说明</h5> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">code</td> <td style="text-align: left;">string</td> <td>错误码,1表示成功</td> </tr> <tr> <td style="text-align: left;">msg</td> <td style="text-align: left;">string</td> <td>如果有错误此值不为空,否则值为空字符串</td> </tr> <tr> <td style="text-align: left;">data</td> <td style="text-align: left;">object</td> <td>返回的数据对象</td> </tr> <tr> <td style="text-align: left;">userid</td> <td style="text-align: left;">string</td> <td>用户ID</td> </tr> <tr> <td style="text-align: left;">username</td> <td style="text-align: left;">string</td> <td>用户名</td> </tr> <tr> <td style="text-align: left;">userkey</td> <td style="text-align: left;">string</td> <td>用户密钥,请全局存放,用于数据签名</td> </tr> <tr> <td style="text-align: left;">token</td> <td style="text-align: left;">string</td> <td>用户token,请全局存放,用于参与签名</td> </tr> <tr> <td style="text-align: left;">nickname</td> <td style="text-align: left;">string</td> <td>用户昵称</td> </tr> <tr> <td style="text-align: left;">usermode</td> <td style="text-align: left;">string</td> <td>0游客,1会员,2分销商,3内部职员</td> </tr> <tr> <td style="text-align: left;">userimg</td> <td style="text-align: left;">string</td> <td>用户图像url</td> </tr> <tr> <td style="text-align: left;">mbphone</td> <td style="text-align: left;">string</td> <td>手机号</td> </tr> <tr> <td style="text-align: left;">sex</td> <td style="text-align: left;">string</td> <td>性别</td> </tr> </tbody> </table> <h5>失败返回示例</h5> <pre><code>{ "code": 0, "msg": "请求不合法" } </code></pre> <h5>失败返回示例的参数说明</h5> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">code</td> <td style="text-align: left;">string</td> <td>0表示产生错误</td> </tr> <tr> <td style="text-align: left;">msg</td> <td style="text-align: left;">string</td> <td>如果有错误时此值不为空</td> </tr> </tbody> </table> <h5>备注</h5> <p><strong>示例代码:</strong> </p> <pre><code class="language-language">&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8" /&gt; &lt;title&gt;&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;div&gt;sign:&lt;/div&gt; &lt;div id="id_sign"&gt;&lt;/div&gt; &lt;br /&gt; &lt;div&gt;json:&lt;/div&gt; &lt;div id="id_json"&gt;&lt;/div&gt; &lt;br /&gt; &lt;div id="id_error"&gt;&lt;/div&gt; &lt;img alt="" src="" id="id_img" style="display:none"&gt; &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"&gt;&lt;/script&gt; &lt;script&gt; //全局对象AppConfig存放服务器传来的数据 var AppConfig = {}; //AppConfig.serverurl = "http://127.0.0.1/ErpServer/h5api/10001/sa2022_1"; AppConfig.serverurl= GetServerURL(); AppConfig.token = ""; AppConfig.singkey = ""; AppConfig.userid = 0;//用户登录后服务器传来的用户id AppConfig.username = "";//用户登录后服务器传来的用户名 AppConfig.shopid = 0;//用户登录后服务器传来的店铺id AppConfig.shopname = "";//用户登录后服务器传来的店铺名 AppConfig.shoplogo = "";//用户登录后服务器传来的店铺logo //用户注册 function reguser() { var obj = new Object(); obj.actionName = "reguser"; obj.mbphone = "18012345678"; obj.codeid = 2; obj.msgcode = "123456"; obj.regtype = 0; obj.username = "测试用户"; obj.nickname = "测试用户"; obj.userimg = ""; obj.sex = ""; obj.usermode = 1; obj.upw = "123456"; postdata(obj); } //重置密码 function resetpw() { var obj = new Object(); obj.actionName = "resetpwd"; obj.mbphone = "18062639596"; obj.codeid = 1; obj.msgcode = "123456"; obj.upw = "123456"; obj.resettype = 0; postdata(obj); } //获取手机短信验证码 function getmsgcode() { var obj = new Object(); obj.actionName = "getmsgcode"; obj.mbphone = "18062639596"; obj.codeid = 1; obj.checkcode = "123456"; obj.msgfor = 0; postdata(obj); } //获取图形验证码 function getcode() { var obj = new Object(); obj.actionName = "getcode"; postdata(obj); } //获取店铺信息 function getshop() { var obj = new Object(); obj.actionName = "getshop"; postdata(obj); } //用户登录 function login() { debugger; var obj = new Object(); obj.actionName = "login"; obj.logintype = 0; obj.mbphone = "18062639596"; obj.upw = "123456"; postdata(obj); } function postdata(obj) { //将对象obj转换为json字符串 var jsondata = JSON.stringify(obj); document.getElementById("id_json").innerHTML = jsondata; //数据签名 var sign = ""; if (AppConfig.token == null || AppConfig.token.length == 0) sign = calculateMD5("json=" + jsondata); else sign = calculateMD5("json=" + jsondata + "&amp;key=" + AppConfig.singkey + AppConfig.token); sign = sign.toUpperCase(); document.getElementById("id_sign").innerHTML = sign; debugger; //发送请求 var xhr = new XMLHttpRequest(); xhr.open('POST', AppConfig.serverurl, true); xhr.setRequestHeader('Content-Type', 'application/json'); //在header中传递token xhr.setRequestHeader('token', AppConfig.token); //将sign放在header中传递 xhr.setRequestHeader('sign', sign); xhr.onload = function () { if (this.status == 200) { var res = this.responseText; if (res == null || res.length == 0) { alert("返回数据为空"); return; } document.getElementById("id_error").innerHTML = res; //解析返回数据 var obj = JSON.parse(res); if (obj.code == 1) { debugger; if (obj.actionName == "getcode") { document.getElementById("id_img").src = obj.data.img; document.getElementById("id_img").style.display = ""; } } else { if (obj.code == 2) { //店铺未上线,跳转店铺建立中的页面 } else if (obj.code == 3) { //店铺已关闭,跳转到警请期待页面 } else if (obj.code == 4) { //店铺已到期,跳转到续费页面 } else if (obj.code == 5) { //请重新登录,跳转到登录页面 } else if (obj.code == 6) { //超时或未登录,跳转到登录页面 } else if (obj.code == 7) { //签名不正确,跳转到登录页面 } } } }; //发送数据 xhr.send(jsondata); } // 使用 CryptoJS 计算 MD5 哈希值 function calculateMD5(value) { return CryptoJS.MD5(value).toString(); } function GetServerURL() { //获取浏览器中域名的部分 var domain = window.location.origin; //获取浏览器中参数部分cmid=12116&amp;acdb=st0908_1 var search = window.location.search.toLowerCase(); //解析参数部分 var params = new URLSearchParams(search); //获取参数cmid的值 var cmid = params.get("cmid"); var acdb = params.get("acdb"); var serverurl = domain + "/ErpServer/h5api/" + cmid + "/" + acdb; return serverurl; } login(); &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;</code></pre>

页面列表

ITEM_HTML