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=newHashMap<>();
  6. params.put("captchaType","blockPuzzle");
  7. params.put("token", token);
  8. params.put("pointJson",AESUtil.encode(pointStr, key));
  9. JSONObject jsonObject =newJSONObject(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(newBlockPuzzleDialog.OnResultsListener(){
  8. @Override
  9. publicvoid onResultsClick(String result){
  10. //todo 二次校验回调结果
  11. String s=result;
  12. }
  13. });
  14. wordCaptchaDialog.setOnResultsListener(newWordCaptchaDialog.OnResultsListener(){
  15. @Override
  16. publicvoid onResultsClick(String result){
  17. //todo 二次校验回调结果
  18. String s=result;
  19. }
  20. });