“yanghuaxuan” 3 years ago
parent
commit
27e22f832c
3 changed files with 92 additions and 40 deletions
  1. +48
    -18
      lib/util/mob_util/mob_util.dart
  2. +1
    -1
      lib/util/net_util.dart
  3. +43
    -21
      lib/util/turn_chain/turn_chain_util.dart

+ 48
- 18
lib/util/mob_util/mob_util.dart View File

@@ -78,28 +78,58 @@ class MobUtil {
static Future<bool> getTextCode(final String phone, {String zoneCode = '86', SMSCodeType smsCodeType = SMSCodeType.NORMAL}) async { static Future<bool> getTextCode(final String phone, {String zoneCode = '86', SMSCodeType smsCodeType = SMSCodeType.NORMAL}) async {
bool result = false; bool result = false;
String vCodeType = await _getSMSStrategy(phone, type: smsCodeType); String vCodeType = await _getSMSStrategy(phone, type: smsCodeType);
if (EmptyUtil.isEmpty(vCodeType)) return result;
Logger.debug('phone = $phone, zoneCode = $zoneCode, vCodeType = $vCodeType');
await Smssdk.getTextCode(phone, zoneCode, vCodeType, (ret, err) {
if (err != null) {
result = false;
Logger.debug('get vcode fail err = ${err?.toString()}, ret = ${ret?.toString()}' );
if(!EmptyUtil.isEmpty(err)){
Fluttertoast.showToast(msg: '获取验证码失败:${err['msg']}');
}else {
Fluttertoast.showToast(msg: '获取验证码失败~');
if (EmptyUtil.isEmpty(vCodeType)) {
result = await _getSMSDefault(phone, type: smsCodeType);
return Future.value(result);
} else {
Logger.debug('phone = $phone, zoneCode = $zoneCode, vCodeType = $vCodeType');
await Smssdk.getTextCode(phone, zoneCode, vCodeType, (ret, err) {
if (err != null) {
result = false;
Logger.debug('get vcode fail err = ${err?.toString()}, ret = ${ret?.toString()}');
if (!EmptyUtil.isEmpty(err)) {
Fluttertoast.showToast(msg: '获取验证码失败:${err['msg']}');
} else {
Fluttertoast.showToast(msg: '获取验证码失败~');
}
} else {
String rst = ret.toString();
if (rst == null || rst == "") {
rst = '获取验证码成功! ret = ${ret?.toString()}, err = ${err?.toString()} ';
}
Logger.debug(rst);
result = true;
} }
});
}
return Future.value(result);
}


///
/// 获取智联盟的短信验证码
///
static Future<bool> _getSMSDefault(final String phone, {SMSCodeType type = SMSCodeType.NORMAL}) async {
bool rlt = false;
try {
String vCodeType = enumToString(type)?.toLowerCase();
if (EmptyUtil.isEmpty(vCodeType)) {
vCodeType = enumToString(SMSCodeType.NORMAL).toLowerCase();
}
var result = await NetUtil.post('/api/v1/sign/more_sms/captcha', method: NetMethod.POST, params: {
'mobile': phone,
'type': vCodeType
});
if (NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) {
// Fluttertoast.showToast(msg: result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]);
Logger.debug(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]);
rlt = true;
} else { } else {
String rst = ret.toString();
if (rst == null || rst == "") {
rst = '获取验证码成功! ret = ${ret?.toString()}, err = ${err?.toString()} ';
}
Logger.debug(rst);
result = true;
Fluttertoast.showToast(msg: result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]);
} }
});
return Future.value(result);
} catch (e, s) {
Logger.error(e, s);
}
return rlt;
} }


/// 询问验证码是否可以下发 /// 询问验证码是否可以下发


+ 1
- 1
lib/util/net_util.dart View File

@@ -69,7 +69,7 @@ class NetUtil {
receiveTimeout: 15000, receiveTimeout: 15000,
contentType: Headers.jsonContentType, contentType: Headers.jsonContentType,
followRedirects: true, followRedirects: true,
headers: {'device': 'wx_applet', 'Platform': 'wx_applet'},
// headers: {'device': 'wx_applet', 'Platform': 'wx_applet'},
validateStatus: (_) { validateStatus: (_) {
return true; return true;
})); }));


+ 43
- 21
lib/util/turn_chain/turn_chain_util.dart View File

@@ -55,7 +55,7 @@ class TurnChainUtil {
/// 微盘: sinavdisk:// /// 微盘: sinavdisk://
/// 名片全能王: camcard:// /// 名片全能王: camcard://
/// ///
static Future<void> openReceiveCoupon(BuildContext context, UserInfoModel userInfoModel, String goodsId, String provider, Map<String, dynamic> data, {bool isFree=false}) async {
static Future<void> openReceiveCoupon(BuildContext context, UserInfoModel userInfoModel, String goodsId, String provider, Map<String, dynamic> data, {bool isFree = false}) async {
///iOS 审核状态 ///iOS 审核状态
String is_ios_review = await SharedPreferencesUtil.getStringValue(GlobalConfig.IS_IOS_REVIEW, defaultVal: '0'); String is_ios_review = await SharedPreferencesUtil.getStringValue(GlobalConfig.IS_IOS_REVIEW, defaultVal: '0');


@@ -119,25 +119,25 @@ class TurnChainUtil {
case GlobalConfig.PROVIDER_KL: case GlobalConfig.PROVIDER_KL:
case GlobalConfig.PROVIDER_PDD: case GlobalConfig.PROVIDER_PDD:
case GlobalConfig.PROVIDER_SN: case GlobalConfig.PROVIDER_SN:
bool launchable = await canLaunch(appUrl);
if (Platform.isIOS) {
launchable = await launch(appUrl);
}
if (launchable) {
if (!Platform.isIOS) {
if(appUrl.startsWith("suning")){
RouterUtil.openWebview(webUrl, context);
}else{
RouterUtil.openWebview(webUrl, context);
bool launchable = await canLaunch(appUrl);
if (Platform.isIOS) {
launchable = await launch(appUrl);
}
if (launchable) {
if (!Platform.isIOS) {
if (appUrl.startsWith("suning")) {
RouterUtil.openWebview(webUrl, context);
} else {
RouterUtil.openWebview(webUrl, context);
}
} }
} else if (!EmptyUtil.isEmpty(webUrl)) {
Logger.log('打开${provider} webUrl, url = ${webUrl}');
RouterUtil.openWebview(webUrl, context);
} else {
Fluttertoast.cancel();
Fluttertoast.showToast(msg: '购买链接不存在');
} }
} else if (!EmptyUtil.isEmpty(webUrl)) {
Logger.log('打开${provider} webUrl, url = ${webUrl}');
RouterUtil.openWebview(webUrl, context);
} else {
Fluttertoast.cancel();
Fluttertoast.showToast(msg: '购买链接不存在');
}
break; break;
case GlobalConfig.PROVIDER_VIP: case GlobalConfig.PROVIDER_VIP:
bool launchable = await canLaunch(appUrl); bool launchable = await canLaunch(appUrl);
@@ -156,6 +156,28 @@ class TurnChainUtil {
Fluttertoast.showToast(msg: '购买链接不存在'); Fluttertoast.showToast(msg: '购买链接不存在');
} }
break; break;
default:
if (!EmptyUtil.isEmpty(openAppUrl)) {
bool launchable = await canLaunch(appUrl);
if (launchable) {
launchable = await launch(appUrl);
}
if (launchable) {
if (!Platform.isIOS) {
RouterUtil.openWebview(webUrl, context);
}
} else if (!EmptyUtil.isEmpty(webUrl)) {
Logger.log('打开${provider} webUrl, url = ${webUrl}');
RouterUtil.openWebview(webUrl, context);
} else {
Fluttertoast.cancel();
Fluttertoast.showToast(msg: '购买链接不存在');
}
} else {
Fluttertoast.cancel();
Fluttertoast.showToast(msg: '购买链接不存在');
}
break;
} }
} else { } else {
Fluttertoast.cancel(); Fluttertoast.cancel();
@@ -187,7 +209,7 @@ class TurnChainUtil {
} }


/// 3、获取转链的结果 /// 3、获取转链的结果
Map<String, dynamic> result = await getTurnChainResult(context, goodsId, provider, data, isShare: true );
Map<String, dynamic> result = await getTurnChainResult(context, goodsId, provider, data, isShare: true);
if (!EmptyUtil.isEmpty(result) && !EmptyUtil.isEmpty(result['open_app_url'])) { if (!EmptyUtil.isEmpty(result) && !EmptyUtil.isEmpty(result['open_app_url'])) {
return result; return result;
} }
@@ -232,8 +254,8 @@ class TurnChainUtil {
data['is_share'] = isShare ? '1' : '0'; data['is_share'] = isShare ? '1' : '0';


///1为免单,0为普通 ///1为免单,0为普通
data['is_free'] = (isFree??false) ? "1" : "0";
(isFree??false) ? print("免单") : print("普通");
data['is_free'] = (isFree ?? false) ? "1" : "0";
(isFree ?? false) ? print("免单") : print("普通");


if (EmptyUtil.isEmpty(model)) { if (EmptyUtil.isEmpty(model)) {
// 开启loading // 开启loading


Loading…
Cancel
Save