Commit 423e232ed8536ddef3a77801d97ca54db6f0de17

Authored by wdn127929
1 parent f2f8c5ba

微信购买极速版&&版本有效期显示bug修复

@@ -548,7 +548,7 @@ @@ -548,7 +548,7 @@
548 CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements; 548 CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements;
549 CODE_SIGN_IDENTITY = "Apple Development"; 549 CODE_SIGN_IDENTITY = "Apple Development";
550 CODE_SIGN_STYLE = Automatic; 550 CODE_SIGN_STYLE = Automatic;
551 - CURRENT_PROJECT_VERSION = 5248; 551 + CURRENT_PROJECT_VERSION = 5249;
552 DEVELOPMENT_TEAM = 8J59HM8B82; 552 DEVELOPMENT_TEAM = 8J59HM8B82;
553 ENABLE_BITCODE = NO; 553 ENABLE_BITCODE = NO;
554 FLUTTER_BUILD_MODE = release; 554 FLUTTER_BUILD_MODE = release;
@@ -696,7 +696,7 @@ @@ -696,7 +696,7 @@
696 CODE_SIGN_ENTITLEMENTS = "Runner/一键订Debug.entitlements"; 696 CODE_SIGN_ENTITLEMENTS = "Runner/一键订Debug.entitlements";
697 CODE_SIGN_IDENTITY = "Apple Development"; 697 CODE_SIGN_IDENTITY = "Apple Development";
698 CODE_SIGN_STYLE = Automatic; 698 CODE_SIGN_STYLE = Automatic;
699 - CURRENT_PROJECT_VERSION = 5248; 699 + CURRENT_PROJECT_VERSION = 5249;
700 DEVELOPMENT_TEAM = 8J59HM8B82; 700 DEVELOPMENT_TEAM = 8J59HM8B82;
701 ENABLE_BITCODE = NO; 701 ENABLE_BITCODE = NO;
702 FLUTTER_BUILD_MODE = debug; 702 FLUTTER_BUILD_MODE = debug;
@@ -732,7 +732,7 @@ @@ -732,7 +732,7 @@
732 CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; 732 CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
733 CODE_SIGN_IDENTITY = "Apple Development"; 733 CODE_SIGN_IDENTITY = "Apple Development";
734 CODE_SIGN_STYLE = Automatic; 734 CODE_SIGN_STYLE = Automatic;
735 - CURRENT_PROJECT_VERSION = 5248; 735 + CURRENT_PROJECT_VERSION = 5249;
736 DEVELOPMENT_TEAM = 8J59HM8B82; 736 DEVELOPMENT_TEAM = 8J59HM8B82;
737 ENABLE_BITCODE = NO; 737 ENABLE_BITCODE = NO;
738 FLUTTER_BUILD_MODE = release; 738 FLUTTER_BUILD_MODE = release;
@@ -8,7 +8,7 @@ class Constant { @@ -8,7 +8,7 @@ class Constant {
8 * 8 *
9 * 打包注意事项 !!!!!!!! ****************苹果 看看导出预订数据**************** 9 * 打包注意事项 !!!!!!!! ****************苹果 看看导出预订数据****************
10 * 10 *
11 - * 11 + * 测试账号变更,已经删除0001 账户 代替为 0019!!!!!!!注意!!!!!!!!!!!!!!
12 * */ 12 * */
13 static const WXMiniProgramType wxMiniProgramType = 13 static const WXMiniProgramType wxMiniProgramType =
14 WXMiniProgramType.RELEASE; //正式版 14 WXMiniProgramType.RELEASE; //正式版
@@ -526,4 +526,9 @@ class HttpUrl { @@ -526,4 +526,9 @@ class HttpUrl {
526 static const String save_sai_you_yun_change = 526 static const String save_sai_you_yun_change =
527 "?service=App.SaiYouYun.SaveSaiYouYunChange"; // 配置可变模板内容 527 "?service=App.SaiYouYun.SaveSaiYouYunChange"; // 配置可变模板内容
528 528
  529 + static const String app_pay_jisu_version =
  530 + "?service=App.Pay.AppPayJiSuVersion"; // App调起支付(购买版本)
  531 +
  532 +
  533 +
529 } 534 }
@@ -332,9 +332,9 @@ class HomePageSimState extends State<HomePageSim> with WidgetsBindingObserver { @@ -332,9 +332,9 @@ class HomePageSimState extends State<HomePageSim> with WidgetsBindingObserver {
332 } 332 }
333 333
334 if (showData != null && showData.length > 0) { 334 if (showData != null && showData.length > 0) {
335 - DateTime edate = DateTime.fromMillisecondsSinceEpoch(1716307200000);  
336 - // DateTime edate =  
337 - // DateTime.fromMillisecondsSinceEpoch(int.parse(showData[0].edate) * 1000); 335 +
  336 + DateTime edate =
  337 + DateTime.fromMillisecondsSinceEpoch(int.parse(showData[0].edate) * 1000);
338 DialogUtil.cupertinoAlertSellerEdateDialogSim( 338 DialogUtil.cupertinoAlertSellerEdateDialogSim(
339 context, 339 context,
340 title: '温馨提示', 340 title: '温馨提示',
@@ -567,9 +567,9 @@ class HomePageSimState extends State<HomePageSim> with WidgetsBindingObserver { @@ -567,9 +567,9 @@ class HomePageSimState extends State<HomePageSim> with WidgetsBindingObserver {
567 //店铺过期提醒 567 //店铺过期提醒
568 // 计算时间差 568 // 计算时间差
569 //店铺过期日期 569 //店铺过期日期
570 - // DateTime edate = DateTime.fromMillisecondsSinceEpoch(  
571 - // int.parse(sellerVersionSunModel.edate) * 1000);  
572 - DateTime edate = DateTime.fromMillisecondsSinceEpoch(1716307200000); 570 + DateTime edate = DateTime.fromMillisecondsSinceEpoch(
  571 + int.parse(sellerVersionSunModel.edate) * 1000);
  572 +
573 573
574 //当前日期 574 //当前日期
575 final datenow = DateTime.now(); 575 final datenow = DateTime.now();
  1 +import 'dart:async';
1 import 'dart:convert'; 2 import 'dart:convert';
2 3
3 import 'package:common_utils/common_utils.dart'; 4 import 'package:common_utils/common_utils.dart';
@@ -5,7 +6,8 @@ import 'package:flutter/material.dart'; @@ -5,7 +6,8 @@ import 'package:flutter/material.dart';
5 import 'package:flutter_app_update/azhon_app_update.dart'; 6 import 'package:flutter_app_update/azhon_app_update.dart';
6 import 'package:flutter_ex_widget/ex_text.dart'; 7 import 'package:flutter_ex_widget/ex_text.dart';
7 import 'package:flutter_screenutil/flutter_screenutil.dart'; 8 import 'package:flutter_screenutil/flutter_screenutil.dart';
8 -import 'package:fluwx/fluwx.dart'; 9 +
  10 +import 'package:fluwx/fluwx.dart' as fluwx;
9 import 'package:one_key/constant/state.dart'; 11 import 'package:one_key/constant/state.dart';
10 import 'package:one_key/models/sms_info.dart'; 12 import 'package:one_key/models/sms_info.dart';
11 import 'package:one_key/models/store_info.dart'; 13 import 'package:one_key/models/store_info.dart';
@@ -59,11 +61,31 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver { @@ -59,11 +61,31 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver {
59 61
60 CollectStoreProvider collectStoreProvider; 62 CollectStoreProvider collectStoreProvider;
61 63
  64 + StreamSubscription _wxPay;
  65 +
62 @override 66 @override
63 void initState() { 67 void initState() {
64 // TODO: implement initState 68 // TODO: implement initState
65 super.initState(); 69 super.initState();
66 70
  71 + _wxPay = fluwx.weChatResponseEventHandler.listen((res) {
  72 + _wxPay?.cancel();
  73 + if (res is fluwx.WeChatPaymentResponse) {
  74 + print("pay :${res.isSuccessful}");
  75 + if (res.errCode == 0) {
  76 + // Utils.showToast('购买成功');
  77 + //获取商家的版本信息
  78 + getSellerVersion();
  79 +
  80 + // Navigator.pop(context);
  81 + } else if (res.errCode == -1) {
  82 + Utils.showToast('支付错误');
  83 + } else if (res.errCode == -2) {
  84 + Utils.showToast('您已取消支付');
  85 + }
  86 + }
  87 + });
  88 +
67 controller = ScrollController(initialScrollOffset: 0.0); 89 controller = ScrollController(initialScrollOffset: 0.0);
68 WidgetsBinding.instance.addObserver(this); 90 WidgetsBinding.instance.addObserver(this);
69 Utils.changeStatusColor(color: MyColours.color_438E93); 91 Utils.changeStatusColor(color: MyColours.color_438E93);
@@ -108,6 +130,8 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver { @@ -108,6 +130,8 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver {
108 }); 130 });
109 } 131 }
110 132
  133 + void wxSubscriptionClose() => _wxPay?.cancel();
  134 +
111 @override 135 @override
112 void dispose() { 136 void dispose() {
113 // TODO: implement dispose 137 // TODO: implement dispose
@@ -115,6 +139,7 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver { @@ -115,6 +139,7 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver {
115 // AzhonAppUpdate.dispose(); 139 // AzhonAppUpdate.dispose();
116 EventBus().off('changeStatusColor'); 140 EventBus().off('changeStatusColor');
117 EventBus().off('refreshMySms'); 141 EventBus().off('refreshMySms');
  142 + wxSubscriptionClose();
118 } 143 }
119 144
120 @override 145 @override
@@ -209,6 +234,76 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver { @@ -209,6 +234,76 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver {
209 await myModel.getMyIntegral(context); 234 await myModel.getMyIntegral(context);
210 } 235 }
211 236
  237 + _appPay() async {
  238 + //是否安装微信
  239 + bool isInstalled = await fluwx.isWeChatInstalled;
  240 + if (!isInstalled) {
  241 + Utils.showToast("请先安装微信");
  242 + return;
  243 + }
  244 + //1.接口请求微信支付所需参数
  245 + //2.成功后掉起微信支付
  246 + Map<String, String> params = {
  247 + 'sellerid': Provider.of<UserModel>(context, listen: false).user.sellerid,
  248 + 'vid': '14',
  249 + };
  250 + bool success =
  251 + await collectStoreProvider.appPayJiSuVersion(context, params);
  252 + if (success) {
  253 + print(collectStoreProvider.sunModel.package.substring(10));
  254 + Map<String, String> str = {
  255 + 'appid': collectStoreProvider.sunModel.appId,
  256 + // 'appid': 'wx85aa3cdd0f791e65',
  257 + 'partnerid': '1489752232',
  258 + 'prepayid': collectStoreProvider.sunModel.package.substring(10),
  259 + 'timestamp': collectStoreProvider.sunModel.timeStamp,
  260 + 'noncestr': collectStoreProvider.sunModel.nonceStr,
  261 + 'package': 'Sign=WXPay',
  262 + // 'signtype': collectStoreProvider.sunModel.signType
  263 + };
  264 +
  265 + // String str =
  266 + // '${collectStoreProvider.sunModel.appId}\n${collectStoreProvider.sunModel.timeStamp}\n${collectStoreProvider.sunModel.nonceStr}\n${collectStoreProvider.sunModel.package.substring(10)}\n';
  267 + String sign = Utils.keySort(str);
  268 +
  269 + // var content = utf8.encode(signtemp);
  270 + // String sign = base64Encode(content);
  271 + print(sign);
  272 + print(collectStoreProvider.sunModel.paySign);
  273 +
  274 + print('appId${collectStoreProvider.sunModel.appId}');
  275 + print('prepayId${collectStoreProvider.sunModel.package.substring(10)}');
  276 + print('nonceStr${collectStoreProvider.sunModel.nonceStr}');
  277 + print('timeStamp${collectStoreProvider.sunModel.timeStamp}');
  278 + print('sign${sign}');
  279 +
  280 + //掉起微信支付
  281 + fluwx
  282 + .payWithWeChat(
  283 + // appId: 'wx85aa3cdd0f791e65',
  284 + // appId: 'wx71921f840e8f1c34',
  285 + appId: collectStoreProvider.sunModel.appId,
  286 + partnerId: '1489752232',
  287 + prepayId: collectStoreProvider.sunModel.package.substring(10),
  288 + packageValue: 'Sign=WXPay',
  289 + nonceStr: collectStoreProvider.sunModel.nonceStr,
  290 + timeStamp: int.parse(collectStoreProvider.sunModel.timeStamp),
  291 + // sign: sign
  292 + sign: sign,
  293 + // signType: collectStoreProvider.sunModel.signType
  294 + // signType: collectStoreProvider.sunModel.signType)
  295 + )
  296 + .then((data) {
  297 + print("---》$data");
  298 + }).catchError((error) {
  299 + print(error.toString());
  300 + });
  301 + } else {
  302 + print('fffff');
  303 + //给用户提示错误
  304 + }
  305 + }
  306 +
212 ///获取商家时间区间内订单数量 307 ///获取商家时间区间内订单数量
213 _getSellerReserveTotal() async { 308 _getSellerReserveTotal() async {
214 if (Utils.getAuthority(context, '全店-月订单量')) { 309 if (Utils.getAuthority(context, '全店-月订单量')) {
@@ -753,6 +848,8 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver { @@ -753,6 +848,8 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver {
753 }, 848 },
754 rCallback: () { 849 rCallback: () {
755 //立即续费 850 //立即续费
  851 + //是否安装微信
  852 + _appPay();
756 }, 853 },
757 ); 854 );
758 } else { 855 } else {
@@ -768,6 +865,8 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver { @@ -768,6 +865,8 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver {
768 ), 865 ),
769 rCallback: () { 866 rCallback: () {
770 //立即续费 867 //立即续费
  868 + //是否安装微信
  869 + _appPay();
771 }, 870 },
772 ); 871 );
773 } 872 }
@@ -849,6 +948,7 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver { @@ -849,6 +948,7 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver {
849 }, 948 },
850 rCallback: () { 949 rCallback: () {
851 //立即续费 950 //立即续费
  951 + _appPay();
852 }, 952 },
853 ); 953 );
854 } else { 954 } else {
@@ -865,6 +965,8 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver { @@ -865,6 +965,8 @@ class MyPageSimState extends State<MyPageSim> with WidgetsBindingObserver {
865 ), 965 ),
866 rCallback: () { 966 rCallback: () {
867 //立即续费 967 //立即续费
  968 + //是否安装微信
  969 + _appPay();
868 }, 970 },
869 ); 971 );
870 } 972 }
  1 +import 'package:common_utils/common_utils.dart';
1 import 'package:flutter/material.dart'; 2 import 'package:flutter/material.dart';
2 import 'package:one_key/provider/user_model.dart'; 3 import 'package:one_key/provider/user_model.dart';
3 import 'package:provider/provider.dart'; 4 import 'package:provider/provider.dart';
@@ -6,6 +7,7 @@ import '../app.dart'; @@ -6,6 +7,7 @@ import '../app.dart';
6 import '../constant/constant.dart'; 7 import '../constant/constant.dart';
7 import '../constant/error.dart'; 8 import '../constant/error.dart';
8 import '../models/seller_version_model.dart'; 9 import '../models/seller_version_model.dart';
  10 +import '../models/wechat_pay_model.dart';
9 import '../net/base_resp.dart'; 11 import '../net/base_resp.dart';
10 import '../net/dio_util.dart'; 12 import '../net/dio_util.dart';
11 import '../net/http_url.dart'; 13 import '../net/http_url.dart';
@@ -13,6 +15,7 @@ import '../utils/utils.dart'; @@ -13,6 +15,7 @@ import '../utils/utils.dart';
13 15
14 class CollectStoreProvider with ChangeNotifier { 16 class CollectStoreProvider with ChangeNotifier {
15 List<SellerVersionSunModel> sellerVersionList = []; 17 List<SellerVersionSunModel> sellerVersionList = [];
  18 + WechatPaySunModel sunModel;
16 19
17 bool sellerCoupon = false; //优惠券营销 20 bool sellerCoupon = false; //优惠券营销
18 bool sellerRecharge = false; //储值营销 21 bool sellerRecharge = false; //储值营销
@@ -81,6 +84,121 @@ class CollectStoreProvider with ChangeNotifier { @@ -81,6 +84,121 @@ class CollectStoreProvider with ChangeNotifier {
81 } 84 }
82 } 85 }
83 86
  87 + _getSellerVersionList() {
  88 + List<DateTime> cdates = [];
  89 + sellerVersionList.forEach((element) {
  90 + if (element.vid == '1' ||
  91 + element.vid == '2' ||
  92 + element.vid == '3' ||
  93 + element.vid == '4' ||
  94 + element.vid == '13' ||
  95 + element.vid == '15' ||
  96 + element.vid == '16' ||
  97 + element.vid == '17' ||
  98 + element.vid == '14') {
  99 + cdates.add(DateTime.fromMillisecondsSinceEpoch(
  100 + int.parse(element.cdate) * 1000));
  101 + }
  102 + });
  103 + print(cdates);
  104 +
  105 + for (var i = 0; i < cdates.length - 1; i++) {
  106 + for (var j = 0; j < cdates.length - 1 - i; j++) {
  107 + if (cdates[j].difference(cdates[j + 1]).inSeconds > 0) {
  108 + DateTime temp = cdates[j];
  109 + cdates[j] = cdates[j + 1];
  110 + cdates[j + 1] = temp;
  111 + }
  112 + }
  113 + }
  114 + print(cdates); //最后一个是最新的充值
  115 + // //找到最新的版本,并且移除其他版本
  116 + // sellerNormalEdate = sellerVersionList
  117 + // .where((element) =>
  118 + // int.parse(element.cdate) * 1000 ==
  119 + // cdates[cdates.length - 1].microsecondsSinceEpoch)
  120 + // .toList()[0]
  121 + // .edate;
  122 +
  123 + List<SellerVersionSunModel> temp = [];
  124 + sellerVersionList.forEach((element) {
  125 + if (element.vid == '1' ||
  126 + element.vid == '2' ||
  127 + element.vid == '3' ||
  128 + element.vid == '4' ||
  129 + element.vid == '13' ||
  130 + element.vid == '15' ||
  131 + element.vid == '16' ||
  132 + element.vid == '17') {
  133 + if (int.parse(element.cdate) * 1000 ==
  134 + cdates[cdates.length - 1].millisecondsSinceEpoch) {
  135 + temp.add(element); //最新的版本信息
  136 + }
  137 + } else {
  138 + temp.add(element); //模块信息
  139 + }
  140 + });
  141 + sellerVersionList = temp.toList();
  142 + print(sellerVersionList);
  143 + }
  144 +
  145 + _getSellerVersionListOld() {
  146 + List<DateTime> cdates = [];
  147 + sellerVersionList.forEach((element) {
  148 + if (element.vid == '1' ||
  149 + element.vid == '2' ||
  150 + element.vid == '3' ||
  151 + element.vid == '4' ||
  152 + element.vid == '13' ||
  153 + element.vid == '15' ||
  154 + element.vid == '16' ||
  155 + element.vid == '17') {
  156 + cdates.add(DateTime.fromMillisecondsSinceEpoch(
  157 + int.parse(element.cdate) * 1000));
  158 + }
  159 + });
  160 + print(cdates);
  161 +
  162 + for (var i = 0; i < cdates.length - 1; i++) {
  163 + for (var j = 0; j < cdates.length - 1 - i; j++) {
  164 + if (cdates[j].difference(cdates[j + 1]).inSeconds > 0) {
  165 + DateTime temp = cdates[j];
  166 + cdates[j] = cdates[j + 1];
  167 + cdates[j + 1] = temp;
  168 + }
  169 + }
  170 + }
  171 + print(cdates); //最后一个是最新的充值
  172 + // //找到最新的版本,并且移除其他版本
  173 + // sellerNormalEdate = sellerVersionList
  174 + // .where((element) =>
  175 + // int.parse(element.cdate) * 1000 ==
  176 + // cdates[cdates.length - 1].microsecondsSinceEpoch)
  177 + // .toList()[0]
  178 + // .edate;
  179 +
  180 + List<SellerVersionSunModel> temp = [];
  181 + sellerVersionList.forEach((element) {
  182 + if (element.vid == '1' ||
  183 + element.vid == '2' ||
  184 + element.vid == '3' ||
  185 + element.vid == '4' ||
  186 + element.vid == '13' ||
  187 + element.vid == '15' ||
  188 + element.vid == '16' ||
  189 + element.vid == '17') {
  190 + if (int.parse(element.cdate) * 1000 ==
  191 + cdates[cdates.length - 1].millisecondsSinceEpoch) {
  192 + temp.add(element); //最新的版本信息
  193 + }
  194 + } else {
  195 + temp.add(element); //模块信息
  196 + }
  197 + });
  198 + sellerVersionList = temp.toList();
  199 + print(sellerVersionList);
  200 + }
  201 +
84 // 获取商家的版本信息 202 // 获取商家的版本信息
85 Future<bool> getSellerVersion(BuildContext context, 203 Future<bool> getSellerVersion(BuildContext context,
86 {bool showLoading = true}) async { 204 {bool showLoading = true}) async {
@@ -96,103 +214,53 @@ class CollectStoreProvider with ChangeNotifier { @@ -96,103 +214,53 @@ class CollectStoreProvider with ChangeNotifier {
96 return false; 214 return false;
97 }); 215 });
98 if (baseResp.code == Constant.status_success) { 216 if (baseResp.code == Constant.status_success) {
99 - sellerVersionList = 217 + sellerVersionList = [];
  218 + List<SellerVersionSunModel> tempList =
100 SellerVersionModel.fromJson(baseResp.responseData).data; 219 SellerVersionModel.fromJson(baseResp.responseData).data;
101 - if (sellerVersionList != null && sellerVersionList.length > 0) {  
102 - List<String> versionCodeList = [];  
103 - sellerVersionList.forEach((element) {  
104 - versionCodeList.add(element.vid);  
105 - });  
106 220
  221 + if (tempList != null && tempList.length > 0) {
  222 + tempList.forEach((element) {
  223 + DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(
  224 + int.parse(element.rdate.toString()) * 1000);
  225 +
  226 + String fromDate =
  227 + DateUtil.formatDate(dateTime, format: DateFormats.y_mo_d);
  228 + String from = fromDate + ' 00:00:00';
  229 + int fff = DateUtil.getDateMsByTimeStr(from);
  230 + print(fff);
  231 + DateTime stime = DateTime.fromMillisecondsSinceEpoch(
  232 + DateUtil.getDateMsByTimeStr(from)); //启用日期
  233 + print(stime);
  234 +
  235 + String now =
  236 + DateUtil.formatDate(DateTime.now(), format: DateFormats.y_mo_d);
  237 + String nowStr = now + ' 00:00:00';
  238 + DateTime nowtime = DateTime.fromMillisecondsSinceEpoch(
  239 + DateUtil.getDateMsByTimeStr(nowStr)); //目前时间
  240 +
  241 + //比较相差的天数
  242 + int difference = stime.difference(nowtime).inDays;
  243 +
  244 + // int differenceSeconds = stime.difference(nowtime).inSeconds;
  245 + if (difference < 0 || difference == 0) {
  246 + //启用时间在今天或者之前
  247 + sellerVersionList.add(element);
  248 + }
  249 + });
107 if (Constant.normalApp) { 250 if (Constant.normalApp) {
108 - sellerCoupon = versionCodeList.any((element) =>  
109 - element == '1' ||  
110 - element == '2' ||  
111 - element == '3' ||  
112 - element == '8' ||  
113 - element == '15' ||  
114 - element == '16' ||  
115 - element == '17');  
116 -  
117 - sellerRecharge = versionCodeList.any((element) =>  
118 - element == '1' ||  
119 - element == '2' ||  
120 - element == '3' ||  
121 - element == '9');  
122 -  
123 - sellerWine = versionCodeList.any((element) =>  
124 - element == '1' ||  
125 - element == '2' ||  
126 - element == '3' ||  
127 - element == '7');  
128 -  
129 - sellerOrderCustomer = versionCodeList.any((element) =>  
130 - element == '1' ||  
131 - element == '2' ||  
132 - element == '3' ||  
133 - element == '6');  
134 - sellerOrderManager = versionCodeList.any((element) =>  
135 - element == '1' ||  
136 - element == '2' ||  
137 - element == '3' ||  
138 - element == '5');  
139 - sellerFeast = versionCodeList.any((element) =>  
140 - element == '1' ||  
141 - element == '2' ||  
142 - element == '3' ||  
143 - element == '12');  
144 - sellerPreserve = versionCodeList.any((element) =>  
145 - element == '1' ||  
146 - element == '2' ||  
147 - element == '3' ||  
148 - element == '10' ||  
149 - element == '15' ||  
150 - element == '16' ||  
151 - element == '17');  
152 - sellerMarketing = versionCodeList.any((element) =>  
153 - element == '1' ||  
154 - element == '2' ||  
155 - element == '3' ||  
156 - element == '11' ||  
157 - element == '15' ||  
158 - element == '16' ||  
159 - element == '17');  
160 -  
161 - sellerNormal = versionCodeList.any((element) =>  
162 - element == '1' ||  
163 - element == '2' ||  
164 - element == '3' ||  
165 - element == '4' ||  
166 - element == '13' ||  
167 - element == '15' ||  
168 - element == '16' ||  
169 - element == '17'); 251 + _getSellerVersionListOld(); //筛出cdate最新的
  252 + } else {
  253 + _getSellerVersionList(); //筛出cdate最新的
  254 + }
  255 + //准备好数据
  256 +
  257 + if (sellerVersionList != null && sellerVersionList.length > 0) {
  258 + List<String> versionCodeList = [];
170 sellerVersionList.forEach((element) { 259 sellerVersionList.forEach((element) {
171 - if (element.vid == '1' ||  
172 - element.vid == '2' ||  
173 - element.vid == '3' ||  
174 - element.vid == '4' ||  
175 - element.vid == '13') {  
176 - sellerNormalEdate = element.edate;  
177 - } 260 + versionCodeList.add(element.vid);
178 }); 261 });
179 - if (!sellerNormal) {  
180 - //超能版或者标准版过期  
181 - App.sp.setStringList("sellerEdate", ['-1']);  
182 - } else {  
183 - if (App.sp.containsKey("sellerEdate")) {  
184 - App.sp.remove("sellerEdate");  
185 - }  
186 - }  
187 - } else {  
188 - sellerSimple = versionCodeList.any((element) => element == '14');  
189 262
190 - if (sellerSimple) {  
191 - //极速版  
192 - if (App.sp.containsKey("sellerEdate")) {  
193 - App.sp.remove("sellerEdate");  
194 - }  
195 - } else { 263 + if (Constant.normalApp) {
196 sellerCoupon = versionCodeList.any((element) => 264 sellerCoupon = versionCodeList.any((element) =>
197 element == '1' || 265 element == '1' ||
198 element == '2' || 266 element == '2' ||
@@ -273,7 +341,100 @@ class CollectStoreProvider with ChangeNotifier { @@ -273,7 +341,100 @@ class CollectStoreProvider with ChangeNotifier {
273 App.sp.remove("sellerEdate"); 341 App.sp.remove("sellerEdate");
274 } 342 }
275 } 343 }
  344 + } else {
  345 + sellerSimple = versionCodeList.any((element) => element == '14');
  346 +
  347 + if (sellerSimple) {
  348 + //极速版
  349 + if (App.sp.containsKey("sellerEdate")) {
  350 + App.sp.remove("sellerEdate");
  351 + }
  352 + } else {
  353 + sellerCoupon = versionCodeList.any((element) =>
  354 + element == '1' ||
  355 + element == '2' ||
  356 + element == '3' ||
  357 + element == '8' ||
  358 + element == '15' ||
  359 + element == '16' ||
  360 + element == '17');
  361 +
  362 + sellerRecharge = versionCodeList.any((element) =>
  363 + element == '1' ||
  364 + element == '2' ||
  365 + element == '3' ||
  366 + element == '9');
  367 +
  368 + sellerWine = versionCodeList.any((element) =>
  369 + element == '1' ||
  370 + element == '2' ||
  371 + element == '3' ||
  372 + element == '7');
  373 +
  374 + sellerOrderCustomer = versionCodeList.any((element) =>
  375 + element == '1' ||
  376 + element == '2' ||
  377 + element == '3' ||
  378 + element == '6');
  379 + sellerOrderManager = versionCodeList.any((element) =>
  380 + element == '1' ||
  381 + element == '2' ||
  382 + element == '3' ||
  383 + element == '5');
  384 + sellerFeast = versionCodeList.any((element) =>
  385 + element == '1' ||
  386 + element == '2' ||
  387 + element == '3' ||
  388 + element == '12');
  389 + sellerPreserve = versionCodeList.any((element) =>
  390 + element == '1' ||
  391 + element == '2' ||
  392 + element == '3' ||
  393 + element == '10' ||
  394 + element == '15' ||
  395 + element == '16' ||
  396 + element == '17');
  397 + sellerMarketing = versionCodeList.any((element) =>
  398 + element == '1' ||
  399 + element == '2' ||
  400 + element == '3' ||
  401 + element == '11' ||
  402 + element == '15' ||
  403 + element == '16' ||
  404 + element == '17');
  405 +
  406 + sellerNormal = versionCodeList.any((element) =>
  407 + element == '1' ||
  408 + element == '2' ||
  409 + element == '3' ||
  410 + element == '4' ||
  411 + element == '13' ||
  412 + element == '15' ||
  413 + element == '16' ||
  414 + element == '17');
  415 + sellerVersionList.forEach((element) {
  416 + if (element.vid == '1' ||
  417 + element.vid == '2' ||
  418 + element.vid == '3' ||
  419 + element.vid == '4' ||
  420 + element.vid == '13') {
  421 + sellerNormalEdate = element.edate;
  422 + }
  423 + });
  424 +
  425 + if (!sellerNormal) {
  426 + //超能版或者标准版过期
  427 + App.sp.setStringList("sellerEdate", ['-1']);
  428 + } else {
  429 + if (App.sp.containsKey("sellerEdate")) {
  430 + App.sp.remove("sellerEdate");
  431 + }
  432 + }
  433 + }
276 } 434 }
  435 + } else {
  436 + //超能版或者标准版过期 && 极速版也没有
  437 + App.sp.setStringList("sellerEdate", ['-1']);
277 } 438 }
278 } else { 439 } else {
279 //超能版或者标准版过期 && 极速版也没有 440 //超能版或者标准版过期 && 极速版也没有
@@ -286,4 +447,27 @@ class CollectStoreProvider with ChangeNotifier { @@ -286,4 +447,27 @@ class CollectStoreProvider with ChangeNotifier {
286 } 447 }
287 return false; 448 return false;
288 } 449 }
  450 +
  451 + /// App调起支付(购买版本)
  452 + Future<bool> appPayJiSuVersion(
  453 + BuildContext context, Map<String, String> params,
  454 + {isShowLoading = true}) async {
  455 + BaseResp<dynamic> baseResp = await DioUtil()
  456 + .request<dynamic>(context, Method.get, HttpUrl.app_pay_jisu_version,
  457 + data: params, showLoading: isShowLoading)
  458 + .catchError((error) {
  459 + print(error.toString());
  460 + if (error is MyError) {}
  461 + return false;
  462 + });
  463 + if (baseResp != null && baseResp.code == Constant.status_success) {
  464 + sunModel = WechatPayModel.fromJson(baseResp.responseData).data;
  465 + if (sunModel != null) {
  466 + return true;
  467 + }
  468 + } else {
  469 + Utils.showToast(baseResp.msg ?? "");
  470 + }
  471 + return false;
  472 + }
289 } 473 }