H5页面调用客户端登陆说明----转(收藏)

原网址:http://open.12580.com/goMenuUrl.chtml?a=5644 
借鉴学习下:(以下是正文)

文档说明

本文档主要介绍H5页面如何解析客户端传来的用户登录信息。以及如何根据解析后的用户登录信息来要求用户登录或者绑定手机号码的操作。

客户端传递用户信息方式

客户端目前会在打开第三方页面的时候,在url地址里面拼接上toekn字符串:

http://m.12580.com/wap5/indexr.do?v=12580client&url=live!l.do&cityid=320500&lon=&lat=&token=A5899B55B7E013640A18F91919FB876F64222CC613FB70C10A18F91919FB876F064DF4EC0
34CF1FA

token的值由tokenString+“”+”imei”+”imsi”组成字符串,des加密构成。密钥是guaguaka


如:原字符串“1451889165036.10167.11337,000000000000000,310260000000000”====》

加密后:

923E47B72E0EB77FA3A53E4961E665994B9BB289E1938F65EFA896F0166415090A18F91919FB876F64222CC613FB70C10A18F91919FB876F0
64DF4EC034CF1FA

用户信息解析
接入方,从url地址拿到数据后,解密后得到token对应的值



1.如果token值为空或者为0。则用户肯定没有登陆。此时调用客户端的登陆(发送伪协议27)

2.token不为空也不为0去调用接口解析token   

解析接口地址:

http://hi.12580.com:8080/client_new/v1/user/getUserByToken

此处需要在Http的请求头里面加入3个参数

请求头参数列表

参数

类型

是否必须

示例值

备注

clientName

String

THIRD_PARTY

用于区分渠道。

version

String

yoger

固定值,用于区分接入方。由宽连侧分配。必传

kw

String

20150924095353#d5b2fbcb3e4d45c4c99ffc3df3d4f65f

用于加密。必传


注:kw的获取

public staticString getVerifyString() {

                  String ctime =CTime.getTime(14);

                  return ctime

                                   +"#"

                                   +getMD5(Constants.STORE_FLAG + ctime.substring(0, 8)

                                                     +Constants.STORE_VERSION + ctime.substring(8, 14));

         }

cTime就是当前的时间,yyyymmddhhmmss如20160104164823

STORE_FLAG ="12580777";

STORE_VERSION ="1.0";

md5加密。拼接成字符串。

这个字符串作为kw的值

body传参列表


参数

类型

是否必须

示例值

备注

token

String

1442988958938.18703.10769

客户端传递过
来的toen值


请求报文示例:

{"token":"1442988958938.18703.10769"}

需要对body进行加密传输
1.加密方法:

jsonStr = {"token":"1442988958938.18703.10769"}

Hex.encodeHexString(Base64.encode(jsonStr))

即先用base64,再用hex,解码相反。


服务器返回的数据也是加密数据,需要解密解码之后才可看到

String result = new String(Base64.decode(Hex.decodeHex(baos.toString().toCharArray())))

返回的报文示例

①已登录且有手机号:

{"ALLOW_COIN":true,"AREA_CODE":"320500","BOSS_SET":"钻石用户","EMAIL":"469490335@qq.com","FUSION_FLAG":"0","GRADE_NAME":"LV2","GRICE":"195","IS_MALL_VIP":false,"MALL_U_ID":"151495211",
"OPERATOR_CODE":"JSYD","REG_TIME":"20140129092126","SCORE":"195","SID":"949BDF7731BDC5A0224553A61A50128B","TERMINAL_ID"
:"13776063474"
,"USER_ID":"051231512141","USER_LEVEL":"360001","USER_NAME":"ssssssssssss","USER_PHOTO"
:"http://mall.12580life.com/userphoto/151495211/zBzb/20150601111043_zBzb.jpg","U_ID":"10099441","flag":"00-00","isLogin":
true
,"msg":"操作成功"}

判断方式mallUId和TERMINAL_ID都不为空

 

②已登录且是互联网账号没有绑定手机号:

{"ALLOW_COIN":true,"AREA_CODE":"320100","EMAIL":"ymm5@163.com","FUSION_FLAG":"0","IS_MALL_VIP":false,"MALL_U_ID":"174873271"
,"REG_TIME":"20150629104551","SID":"8CA1B34D96172E873256CACF5ACB90F1","U_ID":"19264333","flag":"00-00","isLogin":true,
"msg":"操作成功"}

判断方式mallUId不为空但TERMINAL_ID为空

 

③token失效:

{"ALLOW_COIN":true,"IS_MALL_VIP":false,"flag":"10-07","isLogin":false,"msg":"token无效"}
判断方式mallUId和TERMINAL_ID都为空

H5页面的处理
H5页面需要提供javascript:ios_page_loadtokenString
这个js方法。客户端在登陆成功之后,会把toke加密:
 
 
DesUtils desUtils = new DesUtils( "guaguaka" );
String tokenString = desUtils.encrypt(TOKEN + "," + IMEI + "," + IMSI);
 

通过ios_page_load这个js方法把用户的信息传递给H5页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值