e签宝实名认证回调,首页缺失证件提醒优化,

This commit is contained in:
lijia 2024-11-19 08:37:40 +08:00
parent ccf70796a3
commit c11974e9c1
12 changed files with 787 additions and 60 deletions

View File

@ -380,6 +380,27 @@
</intent-filter>
</activity>
<activity
android:name=".H5Activity2"
android:screenOrientation="portrait"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="demo"
android:path="/signBack"
android:scheme="esign" />
<data
android:host="demo"
android:path="/realBack"
android:scheme="esign" />
</intent-filter>
</activity>
<service
android:name="com.arpa.hndahesudintocctmsdriver.push.XService"
android:enabled="true"

View File

@ -3,6 +3,7 @@ package com.arpa.hndahesudintocctmsdriver;
import android.Manifest;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
@ -40,10 +41,12 @@ import androidx.appcompat.app.AppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.cuspop.SimCenterPop;
import com.arpa.hndahesudintocctmsdriver.event.FaceEvent;
import com.arpa.hndahesudintocctmsdriver.event.HomeEvent;
import com.arpa.hndahesudintocctmsdriver.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity;
import com.arpa.hndahesudintocctmsdriver.ui.home.StartYunDanActivity;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.dahe.mylibrary.utils.ActivityUtils;
import com.dahe.mylibrary.utils.ToastUtils;
import com.esign.esignsdk.EsignSdk;
import com.esign.esignsdk.h5.base.WBH5FaceVerifySDK;
@ -73,18 +76,21 @@ public class H5Activity extends AppCompatActivity {
String curUrl = null;
boolean viewFile = false;
boolean isGoCar = false;
long time = System.currentTimeMillis();
ValueCallback<Uri> uploadMessage;
private ValueCallback<Uri[]> uploadMessageAboveL;
private final static int FILE_CHOOSER_RESULT_CODE = 10000;
private Context ctx;
private boolean isOk = false;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_h5);
ctx = this;
mWebView = findViewById(R.id.webview);
ImageView back = findViewById(R.id.back);
@ -92,6 +98,10 @@ public class H5Activity extends AppCompatActivity {
WebSettings webSetting = mWebView.getSettings();
back.setOnClickListener(v -> {
if (isOk){
finish();
return;
}
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
@ -100,6 +110,10 @@ public class H5Activity extends AppCompatActivity {
});
close.setOnClickListener(v -> {
if (isOk){
finish();
return;
}
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
@ -114,6 +128,9 @@ public class H5Activity extends AppCompatActivity {
webSetting.setLoadWithOverviewMode(true);
webSetting.setAllowFileAccess(true);
webSetting.setAppCacheEnabled(true);
webSetting.setAllowContentAccess(true);
webSetting.setLoadsImagesAutomatically(true);
webSetting.setMediaPlaybackRequiresUserGesture(true);
String appCachePath = getApplication().getCacheDir().getAbsolutePath();
webSetting.setAppCachePath(appCachePath);
webSetting.setDatabaseEnabled(true);
@ -180,6 +197,7 @@ public class H5Activity extends AppCompatActivity {
private void processExtraData() {
Intent intent = getIntent();
isGoCar = intent.getBooleanExtra("isGoCar", false);
Uri uri = intent.getData();
Log.e("test", "===" + uri);
if (uri != null) {
@ -225,6 +243,17 @@ public class H5Activity extends AppCompatActivity {
Uri uri = Uri.parse(url);
Log.e("test", "要加载的地址:" + uri.getScheme() + " " + url + " ");
if (uri.getScheme().equals("http") || uri.getScheme().equals("https")) {
if (isGoCar&&url.startsWith("http://agreement.dahehuoyun.com/#/1ba5c216/912f4c9587/5eb5184653/6ef9")){
isOk = true;
view.loadUrl(url);
new MessageUtils().showSimCenPop(ctx, "个人信息上传成功,请添加车辆信息!", "去添加",() -> {
Intent in = new Intent(ctx, CertificatesActivity.class);
in.putExtra("index", 2);
startActivity(in);
ActivityUtils.finishToActivity(MainActivity.class,false);
});
return true;
}
view.loadUrl(url);
return true;
} else if (uri.getScheme().equals("js") || uri.getScheme().equals("jsbridge")) {
@ -261,6 +290,12 @@ public class H5Activity extends AppCompatActivity {
// 实名认证结束 返回按钮/倒计时返回/暂不认证
boolean status = uri.getBooleanQueryParameter("status", false);
if (status) {
//认证成功返回
new Handler().postDelayed(() -> {
FaceEvent he = new FaceEvent("刷脸成功");
EventBus.getDefault().post(he);
finish();
}, 800);
//认证成功返回
Toast.makeText(H5Activity.this, "认证成功", Toast.LENGTH_LONG).show();
finish();
@ -278,6 +313,12 @@ public class H5Activity extends AppCompatActivity {
boolean status = uri.getBooleanQueryParameter("status", false);
if (status) {
//认证成功返回
//认证成功返回
new Handler().postDelayed(() -> {
FaceEvent he = new FaceEvent("刷脸成功");
EventBus.getDefault().post(he);
finish();
}, 800);
Toast.makeText(H5Activity.this, "认证成功", Toast.LENGTH_LONG).show();
finish();
}

View File

@ -0,0 +1,485 @@
package com.arpa.hndahesudintocctmsdriver;
import static android.webkit.WebSettings.LOAD_NO_CACHE;
import android.Manifest;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.net.http.SslError;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.webkit.ConsoleMessage;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.JsPromptResult;
import android.webkit.JsResult;
import android.webkit.PermissionRequest;
import android.webkit.SslErrorHandler;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import com.arpa.hndahesudintocctmsdriver.event.FaceEvent;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StatusBar;
import com.esign.esignsdk.h5.base.WBH5FaceVerifySDK;
import org.greenrobot.eventbus.EventBus;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import pub.devrel.easypermissions.EasyPermissions;
import qiu.niorgai.StatusBarCompat;
/**
* @author xingtian on 2019/3/25
*/
public class H5Activity2 extends AppCompatActivity {
public static final int REQUEST_PERMISSION_STORAGE = 0x00;
public static final int REQUEST_PERMISSION_CAMERA = 0x01;
public final static String SCHEMA_REAL = "esign://demo/realBack";
public final static String SCHEMA_SIGN = "esign://demo/signBack";
private WebView mWebView;
String curUrl = null;
boolean viewFile = false;
long time = System.currentTimeMillis();
ValueCallback<Uri> uploadMessage;
private ValueCallback<Uri[]> uploadMessageAboveL;
private final static int FILE_CHOOSER_RESULT_CODE = 10000;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_h5);
StatusBarCompat.setStatusBarColor(this, ContextCompat.getColor(this, R.color.white), 0);
StatusBar.changeToLightStatusBar(this); //黑色 下边白色
mWebView = findViewById(R.id.webview);
// ImageView back = findViewById(R.id.back);
// TextView close = findViewById(R.id.close);
WebSettings webSetting = mWebView.getSettings();
// back.setOnClickListener(v -> {
// if (mWebView.canGoBack()) {
// mWebView.goBack();
// } else {
// finish();
// }
// });
//
// close.setOnClickListener(v -> {
// if (mWebView.canGoBack()) {
// mWebView.goBack();
// } else {
// finish();
// }
// });
webSetting.setJavaScriptEnabled(true);
webSetting.setDomStorageEnabled(true);
// webSetting.setAppCacheMaxSize(1024 * 1024 * 8);
webSetting.setUseWideViewPort(true);
webSetting.setLoadWithOverviewMode(true);
webSetting.setAllowFileAccess(true);
// webSetting.setAppCacheEnabled(true);
String appCachePath = getApplication().getCacheDir().getAbsolutePath();
// webSetting.setAppCachePath(appCachePath);
webSetting.setDatabaseEnabled(true);
webSetting.setCacheMode(LOAD_NO_CACHE);
webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
if (Build.VERSION.SDK_INT >= 21) {
cookieManager.setAcceptThirdPartyCookies(mWebView, true);
}
cookieManager.setAcceptCookie(true);
mWebView.setWebViewClient(new MyWebViewClient());
mWebView.setWebChromeClient(new H5FaceWebChromeClient(this));
WBH5FaceVerifySDK.getInstance().setWebViewSettings(mWebView, getApplicationContext());
processExtraData();
}
@Override
protected void onPause() {
super.onPause();
mWebView.onPause();
}
@Override
protected void onResume() {
super.onResume();
mWebView.onResume();
}
@Override
protected void onStop() {
super.onStop();
mWebView.stopLoading();
}
@Override
protected void onDestroy() {
super.onDestroy();
try {
if (mWebView != null) {
mWebView.removeAllViews();
mWebView.destroy();
}
} catch (Exception e) {
}
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
processExtraData();
}
private void processExtraData() {
Intent intent = getIntent();
Uri uri = intent.getData();
Log.e("test", "===" + uri);
if (uri != null) {
// 芝麻认证刷脸结束返回获取后续操作页面地址
// String callbackUrl = uri.getQueryParameter("callback");
String callbackUrl = uri.getQueryParameter("realnameUrl");
if (!TextUtils.isEmpty(callbackUrl)) {
try {
mWebView.loadUrl(URLDecoder.decode(callbackUrl, "utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
} else {
String url = intent.getStringExtra("url");
viewFile = intent.getBooleanExtra("view_file", false);
if (url.startsWith("alipay")) {
try {
Intent intent2 = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent2);
return;
} catch (Exception e) {
}
}
if (curUrl == null) {
curUrl = url;
}
mWebView.loadUrl(url);
}
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url == null) {
return false;
}
Uri uri = Uri.parse(url);
Log.e("test", "要加载的地址:" + uri.getScheme() + " " + url + " ");
if (uri.getScheme().equals("http") || uri.getScheme().equals("https")) {
view.loadUrl(url);
return true;
} else if (uri.getScheme().equals("js") || uri.getScheme().equals("jsbridge")) {
// js://signCallback?signResult=true 签署结果
if (uri.getAuthority().equals("signCallback")) {
if (viewFile) {
view.loadUrl(curUrl);
return true;
} else {
if (url.contains("signResult")) {
boolean signResult = uri.getBooleanQueryParameter("signResult", false);
Toast.makeText(H5Activity2.this, "签署结果: " + " signResult = " + signResult, Toast.LENGTH_LONG).show();
} else {
String tsignCode = uri.getQueryParameter("tsignCode");
if ("0".equals(tsignCode)) {
tsignCode = "签署成功";
} else {
tsignCode = "签署失败";
}
Toast.makeText(H5Activity2.this, "签署结果: " + tsignCode, Toast.LENGTH_LONG).show();
}
}
finish();
}
//js://tsignRealBack?esignAppScheme=esign://app/callback&serviceId=854677892133554052&verifycode=4a52e2af0d0abfb7b285c4f05b5af133&status=true&passed=true
//实名结果
if (uri.getAuthority().equals("tsignRealBack")) {
//实名结果字段
if (uri.getQueryParameter("verifycode") != null) {
String realVerifyCode = uri.getQueryParameter("verifycode");
}
// 实名认证结束 返回按钮/倒计时返回/暂不认证
boolean status = uri.getBooleanQueryParameter("status", false);
if (status) {
//认证成功返回
new Handler().postDelayed(() -> {
FaceEvent he = new FaceEvent("刷脸成功");
EventBus.getDefault().post(he);
finish();
}, 800);
Toast.makeText(H5Activity2.this, "认证成功", Toast.LENGTH_LONG).show();
// finish();
}
}
return true;
} else if (url.startsWith(SCHEMA_REAL)) {
//esign://app/realBack&serviceId=854677892133554052&verifycode=4a52e2af0d0abfb7b285c4f05b5af133&status=true&passed=true
//实名结果
if (uri.getQueryParameter("verifycode") != null) {
String realVerifyCode = uri.getQueryParameter("verifycode");
}
// 实名认证结束 返回按钮/倒计时返回/暂不认证
boolean status = uri.getBooleanQueryParameter("status", false);
if (status) {
//认证成功返回
new Handler().postDelayed(() -> {
FaceEvent he = new FaceEvent("刷脸成功");
EventBus.getDefault().post(he);
finish();
}, 800);
Toast.makeText(H5Activity2.this, "认证成功", Toast.LENGTH_LONG).show();
// finish();
}
return true;
} else if (url.startsWith(SCHEMA_SIGN)) {
// js://signCallback?signResult=true 签署结果
if (url.contains("signResult")) {
boolean signResult = uri.getBooleanQueryParameter("signResult", false);
Toast.makeText(H5Activity2.this, "签署结果: " + " signResult = " + signResult, Toast.LENGTH_LONG).show();
} else {
String tsignCode = uri.getQueryParameter("tsignCode");
if ("0".equals(tsignCode)) {
//延时1.5秒跳转运单详情页面
// new Handler().postDelayed(() -> {
// FaceEvent he = new FaceEvent("刷脸成功");
// EventBus.getDefault().post(he);
// finish();
// }, 800);
tsignCode = "签署成功";
} else {
tsignCode = "签署失败";
}
Toast.makeText(H5Activity2.this, "签署结果: " + tsignCode, Toast.LENGTH_LONG).show();
}
// finish();
return true;
} else if (uri.getScheme().equals("alipays")) {
// 跳转到支付宝刷脸
// alipays://platformapi/startapp?appId=20000067&pd=NO&url=https%3A%2F%2Fzmcustprod.zmxy.com.cn%2Fcertify%2Fbegin.htm%3Ftoken%3DZM201811133000000050500431389414
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
} catch (Exception e) {
return false;
}
} else {
return false;
}
}
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
// super.onReceivedSslError(view, handler, error);
handler.proceed();
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
time = System.currentTimeMillis();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
@Override
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
}
}
public class H5FaceWebChromeClient extends WebChromeClient {
private Activity activity;
public H5FaceWebChromeClient(Activity mActivity) {
this.activity = mActivity;
}
@Override
public void onReceivedTitle(WebView view, String title) {
}
@Override
public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
return super.onJsPrompt(view, url, message, defaultValue, result);
}
@Override
public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
return super.onJsConfirm(view, url, message, result);
}
@TargetApi(8)
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
return super.onConsoleMessage(consoleMessage);
}
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
if (WBH5FaceVerifySDK.getInstance().recordVideoForApiBelow21(uploadMsg, acceptType, activity)) {
return;
}
uploadMessage = uploadMsg;
}
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
if (WBH5FaceVerifySDK.getInstance().recordVideoForApiBelow21(uploadMsg, acceptType, activity)) {
return;
}
uploadMessage = uploadMessage;
}
@TargetApi(21)
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
if (WBH5FaceVerifySDK.getInstance().recordVideoForApi21(webView, filePathCallback, activity, fileChooserParams)) {
return true;
}
uploadMessageAboveL = filePathCallback;
recordVideo(H5Activity2.this);
return true;
}
@Override
public void onPermissionRequest(PermissionRequest request) {
request.grant(request.getResources());
request.getOrigin();
}
}
public void recordVideo(Activity activity) {
if (EasyPermissions.hasPermissions(activity, Manifest.permission.CAMERA)) {
try {
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.putExtra("android.intent.extras.CAMERA_FACING", 1); // 调用前置摄像头
activity.startActivityForResult(intent, FILE_CHOOSER_RESULT_CODE);
} catch (Exception e) {
e.printStackTrace();
}
} else {
EasyPermissions.requestPermissions(activity, "请同意使用相机功能", REQUEST_PERMISSION_CAMERA, Manifest.permission.CAMERA);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (WBH5FaceVerifySDK.getInstance().receiveH5FaceVerifyResult(requestCode, resultCode, data)) {
return;
}
if (requestCode == FILE_CHOOSER_RESULT_CODE) {
if (null == uploadMessage && null == uploadMessageAboveL) {
return;
}
Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
if (uploadMessageAboveL != null) {
if (resultCode == RESULT_OK) {
uploadMessageAboveL.onReceiveValue(new Uri[]{result});
uploadMessageAboveL = null;
} else {
uploadMessageAboveL.onReceiveValue(new Uri[]{});
uploadMessageAboveL = null;
}
} else if (uploadMessage != null) {
if (resultCode == RESULT_OK) {
uploadMessage.onReceiveValue(result);
uploadMessage = null;
} else {
uploadMessage.onReceiveValue(Uri.EMPTY);
uploadMessage = null;
}
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
WBH5FaceVerifySDK.getInstance().recordVideo(this);
}
}

View File

@ -57,12 +57,15 @@ public class DriverAuthDataBean {
private String idcardValidity;
private String dirverAllowType;
private int idcardPhoto;
private String bankImgUrl;
private String bankName;
private String cardNo;
private int idcardBackPhoto;
private Object idcardPhotoHold;
private String idcardAddress;
private String idcardName;
private int idcardSex;
private int idCardStatus;
private int idCardStatus;//身份证认证状态-1未提交 0待认证 1认证通过 2认证失败
private int driverLicenseStatus;
private int qualificationCertificateStatus;
private String idCardReason;
@ -141,6 +144,30 @@ public class DriverAuthDataBean {
private Object mbindStatus;
private Object mreason;
public String getBankImgUrl() {
return bankImgUrl;
}
public void setBankImgUrl(String bankImgUrl) {
this.bankImgUrl = bankImgUrl;
}
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getCardNo() {
return cardNo;
}
public void setCardNo(String cardNo) {
this.cardNo = cardNo;
}
public int getId() {
return id;
}

View File

@ -1,5 +1,6 @@
package com.arpa.hndahesudintocctmsdriver.request;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.request.bean.LUInputBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.TrackInputBean;
@ -72,6 +73,17 @@ public class HuoYuanRequset{
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getAgreeOrder(),MapUtil.mapJson(map)),getToken(con),con);
RequestUtil.start(1, HuoYunDelActivity.END,re,con,hd);
}
// public void confirm2(String cid,int wid){
// Map<String,Object> map=new HashMap<>();
// map.put("carId",cid);
// map.put("orderId",wid);
// map.put("status",2);
// map.put("imgUrl","");
// Request re = OkHttpUtil.posts(new OkDate(BuildConfig.BASE_URL+"/app/driver/waybill/grab",MapUtil.mapJson(map)),getToken(con),con);
// RequestUtil.start(1, "jfaklsdjfklasjdflk",re,con,hd);
// }
//获取执行中的运单
public void startOrder(int id){
Map<String,Object> map=new HashMap<>();

View File

@ -56,7 +56,7 @@ public class RequestConstant {
//运单列表
private static final String ORDER_LIST = "/app/driver/waybill/listV2";
//抢单
private static final String AGREE_ORDER = "/app/driver/waybill/grabDriverOrdersContruct";
private static final String AGREE_ORDER = "/app/driver/waybill/grabDriverOrdersContructV2";
//获取正在执行的运单/运单详情
private static final String GET_START_ORDER = "/app/driver/waybill/getExecuteWaybill";
//查看承运合同

View File

@ -23,6 +23,7 @@ import androidx.cardview.widget.CardView;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.arpa.hndahesudintocctmsdriver.H5Activity;
import com.arpa.hndahesudintocctmsdriver.bean.DicBean;
import com.arpa.hndahesudintocctmsdriver.bean.SinglePickBean;
import com.arpa.hndahesudintocctmsdriver.cuspop.SimCenterPop;
@ -174,8 +175,8 @@ public class CertificatesActivity extends BaseAppCompatActivity {
//上传身份证信息后 跳转上传银行卡信息页面
Intent in333=new Intent(con, UpBankActivity.class);
in333.putExtra("type",1);
Intent in333 = new Intent(con, UpBankActivity.class);
in333.putExtra("type", 1);
startActivity(in333);
} else {
@ -212,7 +213,12 @@ public class CertificatesActivity extends BaseAppCompatActivity {
Log.e("url", CacheGroup.cacheList.get("authUrl"));
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("authUrl"), BaseBean.class);
if (bb.getCode() == 200) {
EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), ""));
Intent intent = new Intent(this, H5Activity.class);
intent.putExtra("url", (String) bb.getData());
intent.putExtra("view_file", false);
intent.putExtra("isGoCar", true);
startActivity(intent);
// EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), ""));
} else {
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_LONG).show();
}//Log.e("url",CacheGroup.cacheList.get("authUrl"));
@ -358,7 +364,12 @@ public class CertificatesActivity extends BaseAppCompatActivity {
Log.e("url", CacheGroup.cacheList.get("authUrl"));
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("authUrl"), BaseBean.class);
if (bb.getCode() == 200) {
EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), ""));
Intent intent = new Intent(this, H5Activity.class);
intent.putExtra("url", (String) bb.getData());
intent.putExtra("view_file", false);
intent.putExtra("isGoCar", true);
startActivity(intent);
// EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), ""));
} else {
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_LONG).show();
}//Log.e("url",CacheGroup.cacheList.get("authUrl"));
@ -591,8 +602,8 @@ public class CertificatesActivity extends BaseAppCompatActivity {
// startActivity(in1);
//上传身份证信息后 跳转上传银行卡信息页面
Intent in333=new Intent(con, UpBankActivity.class);
in333.putExtra("type",1);
Intent in333 = new Intent(con, UpBankActivity.class);
in333.putExtra("type", 1);
startActivity(in333);
break;
case 1:
@ -1092,11 +1103,11 @@ public class CertificatesActivity extends BaseAppCompatActivity {
JSONObject jsonObject = JSON.parseObject(auth.result);
if ("success".equalsIgnoreCase(jsonObject.getString("res"))) {
EsignSdk.getInstance().finishH5Activity();
new MessageUtils().showSimCenPop(con, "个人信息上传成功,请添加车辆信息!", () -> {
finish();
new MessageUtils().showSimCenPop(con, "个人信息上传成功,请添加车辆信息!", "去添加",() -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 2);
startActivity(in);
finish();
});
if ("sign".equalsIgnoreCase(jsonObject.getString("key"))) {

View File

@ -1,9 +1,12 @@
package com.arpa.hndahesudintocctmsdriver.ui.auth;
import android.Manifest;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.widget.ImageView;
@ -16,9 +19,14 @@ import androidx.annotation.Nullable;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.arpa.hndahesudintocctmsdriver.H5Activity;
import com.arpa.hndahesudintocctmsdriver.H5Activity2;
import com.arpa.hndahesudintocctmsdriver.event.HomeEvent;
import com.arpa.hndahesudintocctmsdriver.event.PersonEvent;
import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.PermissionUtils;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ActivityUtils;
import com.esign.esignsdk.EsignSdk;
import com.esign.esignsdk.data.AuthEvent;
import com.google.gson.Gson;
@ -42,6 +50,7 @@ import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.lxj.xpopup.util.SmartGlideImageLoader;
import com.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@ -98,11 +107,18 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("authUrl"), BaseBean.class);
if (bb.getCode() == 200) {
// Intent intent = new Intent(this, H5Activity.class);
// intent.putExtra("url", (String) bb.getData());
// intent.putExtra("view_file", false);
// startActivity(intent);
EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), ""));
Intent intent = new Intent(this, H5Activity.class);
intent.putExtra("url", (String) bb.getData());
intent.putExtra("view_file", false);
// intent.putExtra("isGoCar", true);
startActivity(intent);
// Bundle t = new Bundle();
// t.putString("url",(String) bb.getData());
// t.putBoolean("view_file", false);
// ActivityUtils.startActivity(con, H5Activity2.class,t);
// EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), ""));
} else {
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_LONG).show();
}//Log.e("url",CacheGroup.cacheList.get("authUrl"));
@ -168,13 +184,25 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
// startActivityForResult(in, 12);
//EsignSdk.getInstance().startH5Activity(act,"https://smlh5.esign.cn/usercenterFront/oemAuth/v3/realName/index?contextKey=b7b103b15b866ec4c72beef1dfe20828&appId=7438873235");
if (key) {
// EsignSdk.getInstance().startH5Activity(act, "");
PermissionX.init(this)
.permissions(Manifest.permission.CAMERA)
.request((allGranted, grantedList, deniedList) -> {
if(allGranted) {
key = false;
new AuthRequest().getAuthUrl(con, hd);
new Handler().postDelayed(() -> {
key = true;
}, 3000);
} else{
new MessageUtils().showSimCenPop(con, "缺少相机权限,将无法为您提供服务,去开启!", "取消", "确认", () -> {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
});
}
});
key = false;
new AuthRequest().getAuthUrl(con, hd);
new Handler().postDelayed(() -> {
key = true;
}, 3000);
}
});
//头像
@ -276,6 +304,8 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
Toast.makeText(con, "签署场景成功", Toast.LENGTH_SHORT).show();
} else if ("realName".equalsIgnoreCase(jsonObject.getString("key"))) {
Toast.makeText(con, "实名认证成功", Toast.LENGTH_SHORT).show();
EsignSdk.getInstance().finishH5Activity();
finish();
} else {
Toast.makeText(con, "意愿认证成功", Toast.LENGTH_SHORT).show();
}

View File

@ -188,13 +188,13 @@ public class HomeFragment extends BaseFragment {
MsgUtil.addHdMsgWat(hd, 33);
//新用户注册需弹窗提示注册
if ("0".equals(ub.getData().getRealAuthentication())) {
new MessageUtils().showSimCenPop(con, "该司机还未认证,未认证无法接单。是否去注册!", () -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 0);
startActivity(in);
});
}
// if ("0".equals(ub.getData().getRealAuthentication())) {
// new MessageUtils().showSimCenPop(con, "该司机还未认证,未认证无法接单。是否去注册!", () -> {
// Intent in = new Intent(con, CertificatesActivity.class);
// in.putExtra("index", 0);
// startActivity(in);
// });
// }
} else {
Toast.makeText(con, ub.getMsg(), Toast.LENGTH_SHORT).show();
}
@ -258,6 +258,35 @@ public class HomeFragment extends BaseFragment {
if (CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA) != null) {
DriverAuthDataBean dad = gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA), DriverAuthDataBean.class);
if (dad.getCode() == 200) {
if (dad.getData() == null) {
new MessageUtils().showSimCenPop(con, "该司机缺少身份证,未认证无法接单。是否去添加!","去添加", () -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 0);
startActivity(in);
});
CacheGroup.cacheList.remove(WoDeFragment.AUTH_DATA);
return;
}
if (dad.getData() != null && TextUtils.isEmpty(dad.getData().getIdcard())) {
new MessageUtils().showSimCenPop(con, "该司机缺少身份证,未认证无法接单。是否去添加!", "去添加",() -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 0);
startActivity(in);
});
} else if (dad.getData() != null && TextUtils.isEmpty(dad.getData().getCardNo())) {
new MessageUtils().showSimCenPop(con, "该司机缺少银行卡,未认证无法接单。是否去添加!", "去添加",() -> {
Intent in333 = new Intent(con, UpBankActivity.class);
in333.putExtra("type", 1);
startActivity(in333);
});
} else if (dad.getData() != null && TextUtils.isEmpty(dad.getData().getDriverLicense())) {
new MessageUtils().showSimCenPop(con, "该司机缺少驾驶证,未认证无法接单。是否去添加!", "去添加",() -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 0);
startActivity(in);
});
}
SPUtil.insSP(con, "data", "authdata", CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA));
if (dad.getData() != null && 100003 == dad.getData().getAuditStatus()) {
initAlct();
@ -566,7 +595,7 @@ public class HomeFragment extends BaseFragment {
v1.setOnClickListener(v2 -> {
switch (position) {
case 0:
PermissionUtils.Companion.getInstance().showPermissionMessage(getActivity(),"位置权限使用说明", "用于向您推荐可能感兴趣的住宿、饮食、加油站、汽车维修等",
PermissionUtils.Companion.getInstance().showPermissionMessage(getActivity(), "位置权限使用说明", "用于向您推荐可能感兴趣的住宿、饮食、加油站、汽车维修等",
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
(allGranted, grantedList, deniedList) -> {
if (allGranted) {
@ -751,9 +780,9 @@ public class HomeFragment extends BaseFragment {
if (UiAuxiliary.isLogin(con)) {
int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
ur.User();
if (!OneDayShowUtils.getInstance().todayIsShow(con)) {
qr.getBankCardList();
}
// if (!OneDayShowUtils.getInstance().todayIsShow(con)) {
// qr.getBankCardList();
// }
ur.getDriverExpire();
hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
// hyr.startOrder(0);
@ -1121,28 +1150,37 @@ public class HomeFragment extends BaseFragment {
// if (b) {
// ALProcess.verification(con);
// }
PermissionX.init(getActivity())
.permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION)
.request((allGranted, grantedList, deniedList) -> {
if (allGranted) {
ALProcess.verification(con);
} else {
boolean accessCoarseLocation = deniedList.contains("android.permission.ACCESS_FINE_LOCATION");
boolean contains = deniedList.contains("android.permission.WRITE_EXTERNAL_STORAGE");
if (accessCoarseLocation | contains) {
new MessageUtils().showSimCenPop(con, "缺少定位权限或媒体和文件权限,会导致无法结算运费,去开启!", "取消", "确认", () -> {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
});
}
PermissionX.init(getActivity())
.permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.CAMERA,
Manifest.permission.ACCESS_COARSE_LOCATION)
.request((allGranted, grantedList, deniedList) -> {
if (allGranted) {
ALProcess.verification(con);
} else {
boolean accessCoarseLocation = deniedList.contains("android.permission.ACCESS_FINE_LOCATION");
boolean contains = deniedList.contains("android.permission.WRITE_EXTERNAL_STORAGE");
boolean camear = deniedList.contains("android.permission.CAMERA");
if (accessCoarseLocation | contains) {
new MessageUtils().showSimCenPop(con, "缺少定位权限或媒体和文件权限,会导致无法结算运费,去开启!", "取消", "确认", () -> {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
});
} else if (camear) {
new MessageUtils().showSimCenPop(con, "缺少相机权限,会导致无法实名认证,去开启!", "取消", "确认", () -> {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
});
}
});
}
});
// }
} else {

View File

@ -484,10 +484,16 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
// up_image_z();
}
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
}
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
}
break;
@ -505,11 +511,11 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
@Override
public void onSuccess(Object o) {
if (o.toString().equals("UNLOADED")){//安联装货单平台未装货
if (o.toString().equals("UNLOADED")) {//安联装货单平台未装货
//卸货状态-平台
isFinish = true;
hyr.dischargeCargo(lub);
}else{
} else {
nfc();
uploadInfo();
}
@ -528,10 +534,16 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
}
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
}
break;
@ -556,9 +568,15 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
hyr.receipt(urib);
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
}
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
}
break;

View File

@ -13,8 +13,12 @@ import android.widget.Toast;
import androidx.annotation.Nullable;
import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean;
import com.arpa.hndahesudintocctmsdriver.request.UserRequset;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity;
import com.arpa.hndahesudintocctmsdriver.ui.my.WoDeFragment;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil;
import com.arpa.hndahesudintocctmsdriver.weight.OnLimitClickHelper;
import com.arpa.hndahesudintocctmsdriver.weight.OnLimitClickListener;
import com.bumptech.glide.Glide;
@ -35,6 +39,8 @@ import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.entity.LocalMedia;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.util.SmartGlideImageLoader;
import java.io.File;
import java.util.List;
@ -54,6 +60,9 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
public GetImageAlert gia = new GetImageAlert();
String path;
private OCRBankBean ib;
DriverAuthDataBean dad;
boolean isAuth = false;
private WalletRequest qr;
private TextView tp;
@ -73,8 +82,27 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
}
CacheGroup.cacheList.remove("OCR_BANK");
}
if (CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA) != null) {
dad = new Gson().fromJson(CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA), DriverAuthDataBean.class);
if (dad.getCode() == 200) {
if (dad.getData() != null && !TextUtils.isEmpty(dad.getData().getCardNo())) {
isAuth = true;
skip.setVisibility(View.GONE);
submit.setBackgroundResource(R.drawable.bg_btn_grey);
bank_name.setText(dad.getData().getBankName());
bank_number.setText(dad.getData().getCardNo());
Glide.with(con).load(dad.getData().getBankImgUrl()).into(up_bank_img);
}
} else {
Toast.makeText(con, dad.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(WoDeFragment.AUTH_DATA);
}
if (CacheGroup.cacheList.get("insBank") != null) {
if (customDialog!=null&&customDialog.isShowing()){
if (customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
BaseBean bb = new Gson().fromJson(CacheGroup.cacheList.get("insBank"), BaseBean.class);
@ -129,7 +157,13 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
return_btn = findViewById(R.id.return_btn);
qr = new WalletRequest(con, hd);
up_bank_img.setOnClickListener(v -> {
gia.showPopueWindow(this);
if (isAuth) {
new XPopup.Builder(con)
.asImageViewer(up_bank_img, dad.getData().getBankImgUrl(), new SmartGlideImageLoader(R.mipmap.ic_launcher_round))
.show();
} else {
gia.showPopueWindow(this);
}
});
submit.setOnClickListener(new OnLimitClickHelper(this));
skip.setOnClickListener(new OnLimitClickHelper(this));
@ -142,6 +176,8 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
} else {
skip.setVisibility(View.GONE);
}
UserRequset ur = new UserRequset(con, hd);
ur.driverAuthData();
}
@Override
@ -200,6 +236,13 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
public void onClick(View view) {
switch (view.getId()) {
case R.id.submit:
if (isAuth) {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 1);
startActivity(in);
finish();
return;
}
if (ib != null) {
submit();
} else {
@ -207,7 +250,7 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
}
break;
case R.id.skip:
new MessageUtils().showSimCenPop(con, "确定跳过银行卡?,可能会导致运费无法结算!","取消","确认", () -> {
new MessageUtils().showSimCenPop(con, "确定跳过银行卡?,可能会导致运费无法结算!", "取消", "确认", () -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 1);
startActivity(in);

View File

@ -50,6 +50,7 @@ class MessageUtils {
fun showSimCenPop(
ctx: Context,
message: String,
titleRight:String = "去注册",
onMyItemClickListener: SimCenterPop.OnMyItemClickListener
) {
@ -68,7 +69,7 @@ class MessageUtils {
XPopup.Builder(ctx) //
.hasNavigationBar(false)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个
.asCustom(SimCenterPop(ctx, message).setOnMyItemClickListener(onMyItemClickListener))
.asCustom(SimCenterPop(ctx, message, titleRight = titleRight).setOnMyItemClickListener(onMyItemClickListener))
.show()
}