|
@@ -1,5 +1,6 @@
|
|
|
import 'dart:io';
|
|
import 'dart:io';
|
|
|
|
|
|
|
|
|
|
+import 'package:apple_pay/apple_pay.dart';
|
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
|
import 'package:get/get.dart';
|
|
import 'package:get/get.dart';
|
|
|
import 'package:get/get_core/src/get_main.dart';
|
|
import 'package:get/get_core/src/get_main.dart';
|
|
@@ -12,6 +13,7 @@ import '../../../data/bean/goods_bean.dart';
|
|
|
import '../../../data/bean/member_status_info.dart';
|
|
import '../../../data/bean/member_status_info.dart';
|
|
|
import '../../../data/bean/pay_item_bean.dart';
|
|
import '../../../data/bean/pay_item_bean.dart';
|
|
|
import '../../../data/consts/web_url.dart';
|
|
import '../../../data/consts/web_url.dart';
|
|
|
|
|
+import '../../../dialog/loading_dialog.dart';
|
|
|
import '../../../handler/error_handler.dart';
|
|
import '../../../handler/error_handler.dart';
|
|
|
import '../../../helper/member_pay_helper.dart';
|
|
import '../../../helper/member_pay_helper.dart';
|
|
|
import '../../../resource/assets.gen.dart';
|
|
import '../../../resource/assets.gen.dart';
|
|
@@ -119,7 +121,46 @@ class MemberActivityController extends BaseController {
|
|
|
BrowserPage.start(WebUrl.renewalAgreement);
|
|
BrowserPage.start(WebUrl.renewalAgreement);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- void onRecoverClick() {}
|
|
|
|
|
|
|
+ void onRecoverClick() async {
|
|
|
|
|
+ if (payItemList.isNotEmpty) {
|
|
|
|
|
+ ToastUtil.show(StringName.memberActivityNoPayway);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ PayItemBean paymentWay = payItemList.first;
|
|
|
|
|
+
|
|
|
|
|
+ CustomLoadingDialog.show();
|
|
|
|
|
+
|
|
|
|
|
+ Future.delayed(const Duration(seconds: 20), () {
|
|
|
|
|
+ CustomLoadingDialog.hide();
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ final result = await ApplePay().restore();
|
|
|
|
|
+ if (result["success"] == true) {
|
|
|
|
|
+ var receipt = result['receipt'];
|
|
|
|
|
+ print('查找恢复记录成功: ${result['receipt']}');
|
|
|
|
|
+ checkRestoreStatus(receipt, paymentWay);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ CustomLoadingDialog.hide();
|
|
|
|
|
+ ToastUtil.show("恢复失败");
|
|
|
|
|
+ print('恢复失败: ${result['error']}');
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Future<void> checkRestoreStatus(
|
|
|
|
|
+ String? receiptData, PayItemBean paymentWay) async {
|
|
|
|
|
+ if (receiptData == null) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ memberRepository.subscriptionResume(3, receiptData).then((data) async {
|
|
|
|
|
+ CustomLoadingDialog.hide();
|
|
|
|
|
+ ToastUtil.show("恢复成功");
|
|
|
|
|
+ await AccountRepository.getInstance().getMemberStatus();
|
|
|
|
|
+ Get.back();
|
|
|
|
|
+ }).catchError((error) {
|
|
|
|
|
+ CustomLoadingDialog.hide();
|
|
|
|
|
+ ToastUtil.show("恢复失败");
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
@override
|
|
@override
|
|
|
void onClose() {
|
|
void onClose() {
|