Kaynağa Gözat

1.添加微信支付

2.更新秒验插件
tags/0.0.7
“yanghuaxuan” 3 yıl önce
ebeveyn
işleme
0398c012d0
8 değiştirilmiş dosya ile 103 ekleme ve 17 silme
  1. +5
    -1
      lib/models/base/skip_model.dart
  2. +29
    -5
      lib/pages/login_page/login_page.dart
  3. +18
    -3
      lib/util/encode_util.dart
  4. +5
    -2
      lib/util/mob_util/secverify/quick_login_util.dart
  5. +13
    -4
      lib/util/net_util.dart
  6. +25
    -0
      lib/util/wxpay_util.dart
  7. +4
    -0
      lib/zhiying_comm.dart
  8. +4
    -2
      pubspec.yaml

+ 5
- 1
lib/models/base/skip_model.dart Dosyayı Görüntüle

@@ -4,13 +4,15 @@ class SkipModel {
String requiredTaobaoAuth;
String skipIdentifier;
String isJump;
Map<String, dynamic> data;

SkipModel({
this.url,
this.requiredLogin,
this.requiredTaobaoAuth,
this.skipIdentifier,
this.isJump
this.isJump,
this.data
});

SkipModel.fromJson(Map<String, dynamic> json) {
@@ -18,6 +20,7 @@ class SkipModel {
}

void fromJson(Map<String, dynamic> json) {
data = json['data'] ?? {};
url = json['url'];
requiredLogin = json['required_login']?.toString();
requiredTaobaoAuth = json['required_taobao_auth']?.toString();
@@ -32,6 +35,7 @@ class SkipModel {
data['required_taobao_auth'] = this.requiredTaobaoAuth;
data['skip_identifier'] = this.skipIdentifier;
data['is_jump'] = this.isJump;
data['data'] = this.data;
return data;
}
}

+ 29
- 5
lib/pages/login_page/login_page.dart Dosyayı Görüntüle

@@ -89,8 +89,7 @@ class _LoginPageContainerState extends State<LoginPageContainer> {

/// 微信or手机登陆
void _loginClick(String type, LoginStyleModel model) {
if(!checkBool){
Fluttertoast.showToast(msg: "请阅读并勾选同意用户协议选项");
if(!isCheck()){
return;
}
print('登陆$type');
@@ -148,8 +147,7 @@ class _LoginPageContainerState extends State<LoginPageContainer> {

/// 第三方登陆
void _otherLoginClick(BottomIcons model) async {
if(!checkBool){
Fluttertoast.showToast(msg: "请阅读并勾选同意用户协议选项");
if(!isCheck()){
return;
}
print('第三方登陆${model.type}');
@@ -359,7 +357,9 @@ class _LoginPageContainerState extends State<LoginPageContainer> {
/// 按钮
_buttonsWidget(model),
_sizedHeight9,

///账号密码登录
_buildOrderLogin(),
_sizedHeight9,
/// 协议
_protocolWidget(model),

@@ -565,4 +565,28 @@ class _LoginPageContainerState extends State<LoginPageContainer> {
),
);
}

///账号密码登录
_buildOrderLogin() {
return Center(
child: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: (){
if(isCheck()){
Navigator.push(context, CupertinoPageRoute(builder: (_) => LoginAccountPage(null)));
}
},
child: Text("使用账号密码登录",style: TextStyle(color: HexColor.fromHex("#FFFF4242"),fontSize: 14),),
),
);
}

bool isCheck(){
if(!checkBool){
Fluttertoast.showToast(msg: "请阅读并勾选同意用户协议选项");
return false;
}else{
return true;
}
}
}

+ 18
- 3
lib/util/encode_util.dart Dosyayı Görüntüle

@@ -1,7 +1,10 @@
import 'package:crypto/crypto.dart';
import 'package:flutter/cupertino.dart';
import 'dart:convert';
import 'dart:io';
import 'package:flutter_native_image/flutter_native_image.dart';
import 'package:zhiying_comm/util/dialog/loading/loading.dart';
import 'package:zhiying_comm/zhiying_comm.dart';

class EncodeUtil {
/*
@@ -38,8 +41,20 @@ class EncodeUtil {
}

// 压缩图片至指定大小
static Future<File> compressImage(File file, int size) async {
List<int> originBytes = await file.readAsBytes();
static Future<File> compressImage(BuildContext context, {File file, List<int> images, int size}) async {
List<int> originBytes;
if (images != null) {
originBytes = images;
Directory dir = await getTemporaryDirectory();
File tempFile = File(dir.path + "/temp.png");
tempFile = await tempFile.writeAsBytes(originBytes);
file = tempFile;
} else if (file != null) {
originBytes = await file.readAsBytes();
} else {
return null;
}

int originSize = (originBytes.length / 1024).ceil();
print('原图大小:' + originSize.toString() + 'kb');
if (originSize <= size) {
@@ -66,7 +81,7 @@ class EncodeUtil {
}
} while (maxQuality - minQuality > 1);
File compressedFile =
await FlutterNativeImage.compressImage(file.path, quality: minQuality);
await FlutterNativeImage.compressImage(file.path, quality: minQuality);
imageBytes = await compressedFile.readAsBytes();
int compressSize = (imageBytes.length / 1024).ceil();
print('quality:' +


+ 5
- 2
lib/util/mob_util/secverify/quick_login_util.dart Dosyayı Görüntüle

@@ -56,7 +56,7 @@ class QuickLoginUtil {
}

/// 打开秒验登录页面的方法
void openQuickLogin(BuildContext context, Quick model) {
void openQuickLogin(BuildContext context, Quick model) async {
Loading.show(context);
// 取号前设置
Secverify.autoFinishOauthPage(false);
@@ -231,6 +231,8 @@ class QuickLoginUtil {
Secverify.finshOauthPage();
}
}
}).then((value){
print(value);
});
}
});
@@ -305,7 +307,8 @@ class QuickLoginUtil {
"switchAccTextSize": 13, //切换登录文字大小
"switchAccHidden": false, //切换登录是否隐藏
"switchAccAlignParentRight": false, //切换登录是否靠屏幕右侧
"switchAccText": model?.textTip ?? '切换账号', //切换登录文本内容
// "switchAccText": model?.textTip ?? '切换账号', //切换登录文本内容
"switchAccText": ' ',
"switchAccTextBold": false, //切换登录文本是否加粗
"portraitLayout": {
// "layoutLeft": 30,//切换登录左间距


+ 13
- 4
lib/util/net_util.dart Dosyayı Görüntüle

@@ -364,6 +364,7 @@ class NetUtil {
String masterId = setting['master_id'];
if (null != masterId && masterId != '' && (!params.containsKey('master_id') || params['master_id'] == '')) {
params['master_id'] = masterId; //!EmptyUtil.isEmpty(masterId) ? masterId : 'template_database';
params['MasterId'] = masterId; //!EmptyUtil.isEmpty(masterId) ? masterId : 'template_database';
}

// token 读取SP缓存中的用户token
@@ -438,8 +439,13 @@ class NetUtil {
}

/// 根据请求参数,获取缓存的数据
static Future<dynamic> getRequestCachedData(String url, {Map<String, dynamic> params}) async {
Map<String, dynamic> cacheMap = await SharedPreferencesUtil.getNetCacheResult(getRequestParamsCachedKey(params, url));
static Future<dynamic> getRequestCachedData(String url, {Map<String, dynamic> params,Map<String, dynamic> queryParameters}) async {
var paramsData = {
'postData': params ?? {},
'queryParameters': queryParameters ?? {}
};
Map<String, dynamic> cacheMap = await SharedPreferencesUtil.getNetCacheResult(getRequestParamsCachedKey(paramsData, url));

if (!EmptyUtil.isEmpty(cacheMap) &&
cacheMap.containsKey(GlobalConfig.HTTP_RESPONSE_KEY_CODE) &&
(cacheMap[GlobalConfig.HTTP_RESPONSE_KEY_CODE] == GlobalConfig.RESPONSE_SUCCESS_CODE ||
@@ -466,10 +472,13 @@ class NetUtil {

/// 根据请求参数,获取缓存的Key
static String getRequestParamsCachedKey(Map<String, dynamic> map, String path) {
String key;
if (EmptyUtil.isEmpty(map)) {
return EncodeUtil.generateMd5(path);
key= EncodeUtil.generateMd5(path);
}else{
key= EncodeUtil.generateMd5(path + map.toString());
}
return EncodeUtil.generateMd5(path + map.toString());
return key;
}

// 七牛云文件上传


+ 25
- 0
lib/util/wxpay_util.dart Dosyayı Görüntüle

@@ -0,0 +1,25 @@
import 'package:zhiying_comm/zhiying_comm.dart';

////微信支付简单封装
class WxPayUtil {

////调用此方法
static Future<bool> toPay(Map<String, dynamic> params) async {
var payInfo = SyPayInfo();
payInfo.appid = params['appid'];
payInfo.noncestr = params['noncestr'];
payInfo.package = params['package'];
payInfo.partnerid = params['partnerid'];
payInfo.sign = params['sign'];
payInfo.timestamp = params['timestamp'];
payInfo.prepayid = params['prepayid'];
print("发起微信支付");
SyPayResult result = await SyFlutterWechat.pay(payInfo);

if (result == SyPayResult.success) {
return true;
} else {
return false;
}
}
}

+ 4
- 0
lib/zhiying_comm.dart Dosyayı Görüntüle

@@ -44,4 +44,8 @@ export 'util/event_util/login_success_event.dart';
export 'package:zhiying_comm/util/custom_sliver_persistent_header_delegate.dart';
export 'package:save_image/save_image.dart';
export 'package:zhiying_comm/pages/login_page/login_style_util.dart';
export 'package:sy_flutter_wechat/sy_flutter_wechat.dart';
export 'package:zhiying_comm/util/wxpay_util.dart';
export 'package:zhiying_comm/util/encode_util.dart';
export 'package:path_provider/path_provider.dart';


+ 4
- 2
pubspec.yaml Dosyayı Görüntüle

@@ -35,7 +35,7 @@ dependencies:
# Android app更新
flutter_xupdate:
git:
ref: 1.0.1
ref: '1.0.1'
url: http://192.168.0.138:3000/FnuoOS_ZhiYing/flutter_xupdate.git
# app更新dialogUI(用于IOS,以便统一样式)
flutter_update_dialog: 1.0.0
@@ -52,9 +52,10 @@ dependencies:
sharesdk_plugin: ^1.2.9
#秒验
secverify:
#path: ../secverify
git:
url: 'http://192.168.0.138:3000/FnuoOS_ZhiYing/secverify.git'
ref: '0.0.1'
ref: '0.0.2'
#短信
mobsms: ^1.1.0
#锁粉
@@ -90,6 +91,7 @@ dependencies:
git:
url: 'http://192.168.0.138:3000/FnuoOS_ZhiYing/tobias.git'
ref: '0.0.2'
sy_flutter_wechat: '0.2.2'

event_bus: 1.1.1



Yükleniyor…
İptal
Kaydet