Browse Source

[fix]优化苹果支付流程

Destiny 1 year ago
parent
commit
b473c334a3

+ 1 - 1
ios/Podfile

@@ -1,5 +1,5 @@
 # Uncomment this line to define a global platform for your project
 # Uncomment this line to define a global platform for your project
-# platform :ios, '12.0'
+platform :ios, '12.0'
 
 
 # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
 # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
 ENV['COCOAPODS_DISABLE_STATS'] = 'true'
 ENV['COCOAPODS_DISABLE_STATS'] = 'true'

+ 2 - 2
ios/Podfile.lock

@@ -175,7 +175,7 @@ SPEC CHECKSUMS:
   file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655
   file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655
   Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
   Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
   flutter_foreground_task: 21ef182ab0a29a3005cc72cd70e5f45cb7f7f817
   flutter_foreground_task: 21ef182ab0a29a3005cc72cd70e5f45cb7f7f817
-  gravity_engine: d352c1055ad53c3e6e723f04e3d6db51932a17ee
+  gravity_engine: 750c5f2424a042f334f1154ece41d916eb148d6a
   in_app_purchase_storekit: 8c3b0b3eb1b0f04efbff401c3de6266d4258d433
   in_app_purchase_storekit: 8c3b0b3eb1b0f04efbff401c3de6266d4258d433
   just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
   just_audio: baa7252489dbcf47a4c7cc9ca663e9661c99aafa
   MMKV: 817ba1eea17421547e01e087285606eb270a8dcb
   MMKV: 817ba1eea17421547e01e087285606eb270a8dcb
@@ -194,6 +194,6 @@ SPEC CHECKSUMS:
   webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4
   webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4
   wechat_kit: adf5c6cda47789e63e51c6c194df9f2a85e87455
   wechat_kit: adf5c6cda47789e63e51c6c194df9f2a85e87455
 
 
-PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796
+PODFILE CHECKSUM: 7be2f5f74864d463a8ad433546ed1de7e0f29aef
 
 
 COCOAPODS: 1.15.2
 COCOAPODS: 1.15.2

+ 18 - 9
ios/Runner.xcodeproj/project.pbxproj

@@ -470,18 +470,21 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_IDENTITY = "Apple Development";
-				CODE_SIGN_STYLE = Automatic;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CODE_SIGN_STYLE = Manual;
 				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
 				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
-				DEVELOPMENT_TEAM = S3Y6HGPL2S;
+				DEVELOPMENT_TEAM = "";
+				"DEVELOPMENT_TEAM[sdk=iphoneos*]" = S3Y6HGPL2S;
 				ENABLE_BITCODE = NO;
 				ENABLE_BITCODE = NO;
 				INFOPLIST_FILE = Runner/Info.plist;
 				INFOPLIST_FILE = Runner/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = (
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(inherited)",
 					"@executable_path/Frameworks",
 					"@executable_path/Frameworks",
 				);
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = com.niannian.manyue;
+				PRODUCT_BUNDLE_IDENTIFIER = com.xingmeng.xiaoting;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = "";
 				PROVISIONING_PROFILE_SPECIFIER = "";
+				"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = xiaoting_dev;
 				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
 				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
 				SWIFT_VERSION = 5.0;
 				SWIFT_VERSION = 5.0;
 				VERSIONING_SYSTEM = "apple-generic";
 				VERSIONING_SYSTEM = "apple-generic";
@@ -656,18 +659,21 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_IDENTITY = "Apple Development";
-				CODE_SIGN_STYLE = Automatic;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CODE_SIGN_STYLE = Manual;
 				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
 				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
-				DEVELOPMENT_TEAM = S3Y6HGPL2S;
+				DEVELOPMENT_TEAM = "";
+				"DEVELOPMENT_TEAM[sdk=iphoneos*]" = S3Y6HGPL2S;
 				ENABLE_BITCODE = NO;
 				ENABLE_BITCODE = NO;
 				INFOPLIST_FILE = Runner/Info.plist;
 				INFOPLIST_FILE = Runner/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = (
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(inherited)",
 					"@executable_path/Frameworks",
 					"@executable_path/Frameworks",
 				);
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = com.niannian.manyue;
+				PRODUCT_BUNDLE_IDENTIFIER = com.xingmeng.xiaoting;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = "";
 				PROVISIONING_PROFILE_SPECIFIER = "";
+				"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = xiaoting_dev;
 				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
 				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
 				SWIFT_VERSION = 5.0;
 				SWIFT_VERSION = 5.0;
@@ -682,18 +688,21 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_IDENTITY = "Apple Development";
-				CODE_SIGN_STYLE = Automatic;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				CODE_SIGN_STYLE = Manual;
 				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
 				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
-				DEVELOPMENT_TEAM = S3Y6HGPL2S;
+				DEVELOPMENT_TEAM = "";
+				"DEVELOPMENT_TEAM[sdk=iphoneos*]" = S3Y6HGPL2S;
 				ENABLE_BITCODE = NO;
 				ENABLE_BITCODE = NO;
 				INFOPLIST_FILE = Runner/Info.plist;
 				INFOPLIST_FILE = Runner/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = (
 				LD_RUNPATH_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(inherited)",
 					"@executable_path/Frameworks",
 					"@executable_path/Frameworks",
 				);
 				);
-				PRODUCT_BUNDLE_IDENTIFIER = com.niannian.manyue;
+				PRODUCT_BUNDLE_IDENTIFIER = com.xingmeng.xiaoting;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = "";
 				PROVISIONING_PROFILE_SPECIFIER = "";
+				"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = xiaoting_dev;
 				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
 				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
 				SWIFT_VERSION = 5.0;
 				SWIFT_VERSION = 5.0;
 				VERSIONING_SYSTEM = "apple-generic";
 				VERSIONING_SYSTEM = "apple-generic";

+ 2 - 2
ios/Runner/Info.plist

@@ -28,6 +28,8 @@
 	<true/>
 	<true/>
 	<key>NSMicrophoneUsageDescription</key>
 	<key>NSMicrophoneUsageDescription</key>
 	<string>谈话录音功能</string>
 	<string>谈话录音功能</string>
+	<key>NSUserTrackingUsageDescription</key>
+	<string>此应用使用您的数据来提供个性化广告体验。</string>
 	<key>UIApplicationSupportsIndirectInputEvents</key>
 	<key>UIApplicationSupportsIndirectInputEvents</key>
 	<true/>
 	<true/>
 	<key>UILaunchStoryboardName</key>
 	<key>UILaunchStoryboardName</key>
@@ -47,7 +49,5 @@
 		<string>UIInterfaceOrientationLandscapeLeft</string>
 		<string>UIInterfaceOrientationLandscapeLeft</string>
 		<string>UIInterfaceOrientationLandscapeRight</string>
 		<string>UIInterfaceOrientationLandscapeRight</string>
 	</array>
 	</array>
-    <key>NSUserTrackingUsageDescription</key>
-    <string>此应用使用您的数据来提供个性化广告体验。</string>
 </dict>
 </dict>
 </plist>
 </plist>

+ 4 - 1
lib/dialog/loading_dialog.dart

@@ -2,7 +2,10 @@ import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
 
 
 class LoadingDialog {
 class LoadingDialog {
   static void show(String msg, {bool backDismiss = false}) {
   static void show(String msg, {bool backDismiss = false}) {
-    SmartDialog.showLoading(msg: msg, backDismiss: backDismiss);
+    SmartDialog.showLoading(
+      msg: msg,
+      backType: backDismiss ? SmartBackType.normal : SmartBackType.block,
+    );
   }
   }
 
 
   static void hide() {
   static void hide() {

+ 3 - 2
lib/module/store/controller.dart

@@ -134,9 +134,10 @@ class StoreController extends BaseController {
       } else {
       } else {
         ErrorHandler.toastError(error);
         ErrorHandler.toastError(error);
       }
       }
-    } finally {
-      LoadingDialog.hide();
     }
     }
+    // finally {
+    //   LoadingDialog.hide();
+    // }
   }
   }
 
 
   @override
   @override

+ 15 - 8
lib/sdk/pay/assist/apple_or_google_pay.dart

@@ -100,18 +100,25 @@ abstract class AppleOrGooglePay extends AgilePayStateInfo {
     _purchaseUpdatedSubscription.cancel();
     _purchaseUpdatedSubscription.cancel();
   }
   }
 
 
-  void listenToPurchaseUpdated(List<PurchaseDetails> purchaseDetailsList) {
+  void listenToPurchaseUpdated(
+      List<PurchaseDetails> purchaseDetailsList) async {
     for (var purchaseDetails in purchaseDetailsList) {
     for (var purchaseDetails in purchaseDetailsList) {
       debugPrint(
       debugPrint(
           'agilePay-purchasePay--PurchaseUpdated-> ${purchaseDetails.toString()}');
           'agilePay-purchasePay--PurchaseUpdated-> ${purchaseDetails.toString()}');
       if (purchaseDetails.status == PurchaseStatus.pending) {
       if (purchaseDetails.status == PurchaseStatus.pending) {
         verifyPendingPurchase(purchaseDetails);
         verifyPendingPurchase(purchaseDetails);
-      } else if (purchaseDetails.status == PurchaseStatus.error) {
-        verifyErrorPurchase(purchaseDetails);
-      } else if (purchaseDetails.status == PurchaseStatus.purchased) {
-        verifySuccessPurchase(purchaseDetails);
-      } else if (purchaseDetails.status == PurchaseStatus.canceled) {
-        verifyCancelPurchase(purchaseDetails);
+      } else {
+        if (purchaseDetails.status == PurchaseStatus.error) {
+          verifyErrorPurchase(purchaseDetails);
+        } else if (purchaseDetails.status == PurchaseStatus.purchased) {
+          verifySuccessPurchase(purchaseDetails);
+        } else if (purchaseDetails.status == PurchaseStatus.canceled) {
+          verifyCancelPurchase(purchaseDetails);
+        }
+
+        if (purchaseDetails.pendingCompletePurchase) {
+          await InAppPurchase.instance.completePurchase(purchaseDetails);
+        }
       }
       }
     }
     }
   }
   }
@@ -129,6 +136,6 @@ abstract class AppleOrGooglePay extends AgilePayStateInfo {
   }
   }
 
 
   void verifySuccessPurchase(PurchaseDetails purchaseDetails) {
   void verifySuccessPurchase(PurchaseDetails purchaseDetails) {
-    sendPaySuccess(purchaseDetails.purchaseID);
+    sendPaySuccess(purchaseDetails.verificationData.serverVerificationData);
   }
   }
 }
 }