使用方式
wordCaptchaDialog.show()//"字符校验"
事件
请求处理
CommonInterceptor.kt
请求参数和请求结果处理的过滤器
Configuration.kt
网络请求基类
ServerApi.kt
网络请求接口
二次校验传参
BlockPuzzleDialog.kt/WordCaptchaDialog.kt
val result = token + "---" + pointListStr
mOnResultsListener!!.onResultsClick(AESUtil.encode(result, key))
LoginActivity.kt
blockPuzzleDialog.setOnResultsListener(object : BlockPuzzleDialog.OnResultsListener{
override fun onResultsClick(result: String) {
//todo 二次校验回调结果
}
})
wordCaptchaDialog.setOnResultsListener(object : WordCaptchaDialog.OnResultsListener{
override fun onResultsClick(result: String) {
//todo 二次校验回调结果
val s = result
}
})
Android Java
引入依賴包
implementation 'com.squareup.retrofit2:retrofit:2.8.1'
implementation 'com.squareup.retrofit2:converter-gson:2.8.1'
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxjava:2.1.6'
implementation 'com.squareup.okhttp3:logging-interceptor:4.7.1'
使用方式
参数 | 说明 |
---|
OnSeekBarChangeListener | 回调函数,可自定义回调内容,根据自己服务定制 |
OnResultsListener | 回调函数,二次校验回调 |
请求处理
RetrofitUtils.java
网络请求基类
ServerApi.java
BaseObserver.java
请求结果处理
RxExceptionUtil
异常结果处理
校验注意事项
请求验证码接口中会有secretKey参数,当secretKey有值, 进行aes加密, 加密key为
secretKey,不加密情况下pointJson为json系列化为字符串
//secretKey有值 代表需要进行加密,否则不加密
key = data.getSecretKey();
Map<String, Object> params = new HashMap<>();
params.put("captchaType", "blockPuzzle");
params.put("token", token);
params.put("pointJson", AESUtil.encode(pointStr, key));
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
AESUtil:aes加密工具类
二次校验传参