diff --git a/ios/RNCloudipsp/RNCloudipsp.m b/ios/RNCloudipsp/RNCloudipsp.m index 4cfabb8..7a858e9 100644 --- a/ios/RNCloudipsp/RNCloudipsp.m +++ b/ios/RNCloudipsp/RNCloudipsp.m @@ -106,22 +106,24 @@ - (UIViewController *)topViewController:(UIViewController *)rootViewController } - (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller { - RCTPromiseResolveBlock resolver = self.applePayCompleteResolver; + RCTPromiseResolveBlock completeResolver = self.applePayCompleteResolver; + RCTPromiseRejectBlock payRejecter = self.applePayRejecter; + self.applePayCompleteResolver = nil; + self.applePayResolve = nil; + self.applePayRejecter = nil; + self.applePayCallback = nil; - if (resolver == nil) { - RCTPromiseRejectBlock rejecter = self.applePayRejecter; - self.applePayResolve = nil; - self.applePayRejecter = nil; - - [controller dismissViewControllerAnimated:YES completion:^{ - rejecter(@"UserCanceled", @"User canceled ApplePay authentication", nil); - }]; - } else { - [controller dismissViewControllerAnimated:YES completion:^{ - resolver(nil); - }]; - } + [controller dismissViewControllerAnimated:YES completion:^{ + if (payRejecter) { + payRejecter(@"UserCanceled", @"User canceled ApplePay authentication", nil); + return; + } + + if (completeResolver) { + completeResolver(nil); + } + }]; } - (void)paymentAuthorizationViewController:(PKPaymentAuthorizationViewController *)controller