Android Kotlin

引入依賴包

根据对应版本接入即可

  1. kapt "com.squareup.moshi:moshi-kotlin-codegen:1.8.0"
  2. implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.1"
  3. implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.1"
  4. implementation 'com.google.android.material:material:1.0.0'
  5. implementation 'com.google.code.gson:gson:2.8.5'
  6. implementation 'com.squareup.retrofit2:retrofit:2.5.0'
  7. implementation "com.squareup.retrofit2:converter-moshi:2.5.0"
  8. implementation 'com.squareup.okhttp3:logging-interceptor:3.12.1'
  9. implementation "com.squareup.moshi:moshi-kotlin:1.8.0"
  10. implementation "com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2"

使用方式

  1. blockPuzzleDialog.show() //"滑动拼图"
  2. wordCaptchaDialog.show()//"字符校验"

事件

参数说明
OnSeekBarChangeListener回调函数,可自定义回调内容,根据自己服务定制
OnResultsListener回调函数,二次校验回调

请求处理

  1. CommonInterceptor.kt
  2. 请求参数和请求结果处理的过滤器
  3. Configuration.kt
  4. 网络请求基类
  5. ServerApi.kt
  6. 网络请求接口

请求接口地址 配置在 ServerApi类中 ,需要更改地址替换urlDefault即可

校验注意事项

  1. 请求验证码接口中会有secretKey参数,当secretKey有值, 进行aes加密, 加密key
  2. secretKey,不加密情况下pointJsonjson系列化为字符串
  3. //secretKey有值 代表需要进行加密,否则不加密
  4. key= b.repData!!.secretKey
  5. val o = CaptchaCheckOt(
  6. captchaType = "clickWord",
  7. pointJson = AESUtil.encode(pointListStr,key),
  8. token = Configuration.token
  9. )
  10. val b = Configuration.server.checkAsync(o).await().body()
  11. AESUtilaes加密工具类

二次校验传参

  1. BlockPuzzleDialog.kt/WordCaptchaDialog.kt
  2. val result = token + "---" + pointListStr
  3. mOnResultsListener!!.onResultsClick(AESUtil.encode(result, key))
  4. LoginActivity.kt
  5. blockPuzzleDialog.setOnResultsListener(object : BlockPuzzleDialog.OnResultsListener{
  6. override fun onResultsClick(result: String) {
  7. //todo 二次校验回调结果
  8. val s = result
  9. }
  10. })
  11. wordCaptchaDialog.setOnResultsListener(object : WordCaptchaDialog.OnResultsListener{
  12. override fun onResultsClick(result: String) {
  13. //todo 二次校验回调结果
  14. val s = result
  15. }
  16. })

Android Java

引入依賴包

根据对应版本接入即可

  1. implementation 'com.squareup.retrofit2:retrofit:2.8.1'
  2. implementation 'com.squareup.retrofit2:converter-gson:2.8.1'
  3. implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
  4. implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
  5. implementation 'io.reactivex.rxjava2:rxjava:2.1.6'
  6. implementation 'com.trello.rxlifecycle2:rxlifecycle-components:2.1.0'
  7. implementation 'com.squareup.okhttp3:logging-interceptor:4.7.1'

使用方式

  1. blockPuzzleDialog.show() //"滑动拼图"
  2. wordCaptchaDialog.show()//"字符校验"

事件

参数说明
OnSeekBarChangeListener回调函数,可自定义回调内容,根据自己服务定制
OnResultsListener回调函数,二次校验回调

请求处理

  1. RetrofitUtils.java
  2. 网络请求基类
  3. ServerApi.java
  4. 网络请求接口
  5. BaseObserver.java
  6. 请求结果处理
  7. RxExceptionUtil
  8. 异常结果处理

请求接口地址 配置在 ServerApi类中 ,需要更改地址替换BaseUrl即可

校验注意事项

  1. 请求验证码接口中会有secretKey参数,当secretKey有值, 进行aes加密, 加密key
  2. secretKey,不加密情况下pointJsonjson系列化为字符串
  3. //secretKey有值 代表需要进行加密,否则不加密
  4. key = data.getSecretKey();
  5. Map<String, Object> params = new HashMap<>();
  6. params.put("captchaType", "blockPuzzle");
  7. params.put("token", token);
  8. params.put("pointJson", AESUtil.encode(pointStr, key));
  9. JSONObject jsonObject = new JSONObject(params);
  10. RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
  11. AESUtilaes加密工具类

二次校验传参

  1. BlockPuzzleDialog.java/WordCaptchaDialog.java
  2. if (mOnResultsListener!=null){
  3. String result=token+"---"+pointStr;
  4. mOnResultsListener.onResultsClick(AESUtil.encode(result,key));
  5. }
  6. LoginActivity.java
  7. blockPuzzleDialog.setOnResultsListener(new BlockPuzzleDialog.OnResultsListener() {
  8. @Override
  9. public void onResultsClick(String result) {
  10. //todo 二次校验回调结果
  11. String s=result;
  12. }
  13. });
  14. wordCaptchaDialog.setOnResultsListener(new WordCaptchaDialog.OnResultsListener() {
  15. @Override
  16. public void onResultsClick(String result) {
  17. //todo 二次校验回调结果
  18. String s=result;
  19. }
  20. });