Commit 0f190781 by 霍志良

Merge remote-tracking branch 'origin/4.1.64' into 4.1.64

parents 297404a4 a1ed8f19
package com.yidianling.user.http;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.util.Log;
import com.ydl.burypointlib.MD5Util;
import com.ydl.ydlcommon.base.BaseApp;
import com.ydl.ydlcommon.base.config.HttpConfig;
import com.yidianling.common.tools.RxAppTool;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* Created by Ykai on 2021/1/11.
*
* 获取加密参数类
*/
public class EncryptionParams {
@RequiresApi(api = Build.VERSION_CODES.N)
public static Map<String,String> getParams(String path){
String timestamp = String.valueOf(System.currentTimeMillis()); //值应该为毫秒数的字符串形式
Map<String,String> map = new HashMap<>();
map.put("timestamp",timestamp);
map.put("path",path);
map.put("version", "1.0.0");
List<String> storedKeys = Arrays.stream(map.keySet()
.toArray(new String[]{}))
.sorted(Comparator.naturalOrder())
.collect(Collectors.toList());
String sign = storedKeys.stream()
// .map(key -> String.join("", key, map.get(key)))
.map(key -> key+map.get(key))
.collect(Collectors.joining()).trim()
.concat("ABA88F2FF7E64A688D2213B20A9B3A3E");
Log.e("sign",sign);
sign = MD5Util.md5(sign).toUpperCase();
// sign = MD5.md5(sign).toUpperCase();
Log.e("sign",sign);
Map<String,String> headersMap = new HashMap<>();
headersMap.put("appKey","20BB42485BD448DE888DD745899C457D");
headersMap.put("sign",sign);
// headersMap.put("sign","2410C6CDC7235DC6318F5CF0FFFAA0B7");
headersMap.put("timestamp",timestamp);
// headersMap.put("timestamp","1610352010360");
return headersMap;
}
}
......@@ -34,8 +34,8 @@ class LoginApiRequestUtil {
/**
* 校验手机号:是否是用户版号码、是否有设置密码、是否被绑定
*/
fun checkPhoneStatus(map :Map<String,String>,phone: String, countryCode: String?): Observable<BaseResponse<ChcekPhoneResponeBean>> {
return getUserApi().checkPhoneStatus(map,phone, countryCode!!)
fun checkPhoneStatus(phone: String, countryCode: String?): Observable<BaseResponse<ChcekPhoneResponeBean>> {
return getUserApi().checkPhoneStatus(phone, countryCode!!)
}
/**
......
package com.yidianling.user.http;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5 {
public static final char HEX_DIGITS[] = { '0', '1', '2', '3', '4', '5',
'6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
public static String toHexString(byte[] b) {
StringBuffer sb = new StringBuffer(b.length * 2);
for (int i = 0; i < b.length; i++) {
sb.append(HEX_DIGITS[(b[i] & 0xf0) >>> 4]);
sb.append(HEX_DIGITS[b[i] & 0x0f]);
}
return sb.toString();
}
/**
* md5加密字符串
*
* @param s
* @return
*/
public static String md5(String s) {
try {
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
return toHexString(messageDigest);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
}
......@@ -194,7 +194,7 @@ interface UserApi {
*/
@GET("login/v2/phone_detection")
@Headers(YDL_DOMAIN+ YDL_DOMAIN_LOGIN_BASE_URL,LOGIN_USER_PORT)
fun checkPhoneStatus(@HeaderMap headMap:Map<String,String>,@Query("phone") phone: String, @Query("countryCode") countryCode: String): Observable<BaseResponse<ChcekPhoneResponeBean>>
fun checkPhoneStatus(@Query("phone") phone: String, @Query("countryCode") countryCode: String): Observable<BaseResponse<ChcekPhoneResponeBean>>
/**
* 验证重置密码的短信验证码
......
......@@ -31,7 +31,6 @@ import com.yidianling.user.UserConstants;
import com.yidianling.user.UserHelper;
import com.yidianling.user.api.event.RefreshRecentContactListEvent;
import com.yidianling.user.event.UpdateBindStatusEvent;
import com.yidianling.user.http.EncryptionParams;
import com.yidianling.user.http.LoginApiRequestUtil;
import com.yidianling.user.http.UserHttp;
import com.yidianling.user.http.UserHttpImpl;
......@@ -118,8 +117,7 @@ public class AccountSettingActivity extends BaseActivity implements View.OnClick
return;
}
showProgressDialog();
Map<String,String> map = EncryptionParams.getParams("/api/api/login/v2/phone_detection");
LoginApiRequestUtil.Companion.checkPhoneStatus(map,UserHelper.INSTANCE.getUserInfo().getUserInfo().getPhone(), UserHelper.INSTANCE.getUserInfo().getUserInfo().getCountry_code())
LoginApiRequestUtil.Companion.checkPhoneStatus(UserHelper.INSTANCE.getUserInfo().getUserInfo().getPhone(), UserHelper.INSTANCE.getUserInfo().getUserInfo().getCountry_code())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(response -> {
......
......@@ -44,7 +44,6 @@ import com.yidianling.user.UserHelper
import com.yidianling.user.api.bean.UserResponseBean
import com.yidianling.user.bean.AliAuthBean
import com.yidianling.user.constants.UserBIConstants
import com.yidianling.user.http.EncryptionParams
import com.yidianling.user.http.request.BindPhoneJavaParam
import com.yidianling.user.http.request.PhoneLoginAutoParam
import com.yidianling.user.http.response.ChcekPhoneResponeBean
......@@ -396,8 +395,7 @@ class RegisterAndLoginActivity : BaseMvpActivity<ILoginContract.View, ILoginCont
return@setOnClickListener
}
if (checkPhone()) {
val map = EncryptionParams.getParams("/api/api/login/v2/phone_detection")
mPresenter.checkPhoneStatus(map,userPhoneNumber!!, countryCode!!, isUmengLoginState)
mPresenter.checkPhoneStatus(userPhoneNumber!!, countryCode!!, isUmengLoginState)
}
}
......
......@@ -97,7 +97,7 @@ interface ILoginContract {
/**
* 校验手机号:是否是用户版号码、是否有设置密码、是否被绑定
*/
fun checkPhoneStatus(map: Map<String,String>,phone: String, countryCode: String, isBind: Boolean)
fun checkPhoneStatus(phone: String, countryCode: String, isBind: Boolean)
/**
* 通过一键认证服务登陆
......@@ -120,7 +120,7 @@ interface ILoginContract {
/**
* 校验手机号:是否是用户版号码、是否有设置密码、是否被绑定
*/
fun checkPhoneStatus(map: Map<String,String>,phone: String, countryCode: String): Observable<BaseResponse<ChcekPhoneResponeBean>>
fun checkPhoneStatus(phone: String, countryCode: String): Observable<BaseResponse<ChcekPhoneResponeBean>>
/**
......
......@@ -48,8 +48,8 @@ class LoginModelImpl : ILoginContract.Model {
/**
* 校验手机号:是否是用户版号码、是否有设置密码、是否被绑定
*/
override fun checkPhoneStatus(map:Map<String,String>,phone: String, countryCode: String): Observable<BaseResponse<ChcekPhoneResponeBean>> {
return LoginApiRequestUtil.checkPhoneStatus(map,phone, countryCode)
override fun checkPhoneStatus(phone: String, countryCode: String): Observable<BaseResponse<ChcekPhoneResponeBean>> {
return LoginApiRequestUtil.checkPhoneStatus(phone, countryCode)
}
/**
......
......@@ -131,9 +131,9 @@ class LoginPresenterImpl(view: ILoginContract.View) : BasePresenter<ILoginContra
*@param isBind 是否是第三方登录成功后的绑定操作
*/
@SuppressLint("CheckResult")
override fun checkPhoneStatus(map: Map<String,String>,phone: String, countryCode: String, isBind: Boolean) {
override fun checkPhoneStatus(phone: String, countryCode: String, isBind: Boolean) {
mView.showLoading(true)
mModel.checkPhoneStatus(map,phone, countryCode)
mModel.checkPhoneStatus(phone, countryCode)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
......
......@@ -2,11 +2,9 @@ package com.ydl.ydlcommon.base.config;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.util.Log;
import com.ydl.burypointlib.MD5Util;
import com.ydl.ydlcommon.base.BaseApp;
import com.yidianling.common.tools.RxAppTool;
import com.ydl.ydlcommon.utils.LogUtil;
import java.util.Arrays;
import java.util.Comparator;
......@@ -22,29 +20,23 @@ import java.util.stream.Collectors;
*/
public class EncryptionParams {
@RequiresApi(api = Build.VERSION_CODES.N)
public static Map<String,String> getParams(String path){
String timestamp = String.valueOf(System.currentTimeMillis()); //值应该为毫秒数的字符串形式
Map<String,String> map = new HashMap<>();
map.put("timestamp",timestamp);
map.put("path",path);
map.put("version", RxAppTool.getAppVersionName(BaseApp.Companion.getApp()));
List<String> storedKeys = Arrays.stream(map.keySet()
.toArray(new String[]{}))
.sorted(Comparator.naturalOrder())
.collect(Collectors.toList());
String sign = storedKeys.stream()
.map(key -> String.join("", key, map.get(key)))
.collect(Collectors.joining()).trim()
.concat(HttpConfig.Companion.getENCRYPTION_APP_SECRET());
public static String getSign(String path,String timestamp){
// Map<String,String> map = new HashMap<>();
// map.put("timestamp",timestamp);
// map.put("path",path);
// map.put("version", "1.0.0");
//
// List<String> storedKeys = Arrays.stream(map.keySet()
// .toArray(new String[]{}))
// .sorted(Comparator.naturalOrder())
// .collect(Collectors.toList());
// String sign = storedKeys.stream()
// .map(key -> key+map.get(key))
// .collect(Collectors.joining()).trim()
// .concat();
String sign = ("path"+path+"timestamp"+timestamp+"version1.0.0").concat(HttpConfig.Companion.getENCRYPTION_APP_SECRET());
LogUtil.e("sign",sign);
sign = MD5Util.md5(sign).toUpperCase();
Log.e("sign",sign);
Map<String,String> headersMap = new HashMap<>();
headersMap.put("appKey",HttpConfig.Companion.getENCRYPTION_APP_KEY());
headersMap.put("sign",sign);
headersMap.put("timestamp",timestamp);
return headersMap;
return sign;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment