title: No known class method for selector 'presentCheckoutForSubmittingTransactionCompletionHandler:cancelHandler:'
body: <p>I am trying to integrate Hyperpay payment into React Native project and I have problems with objective-c, I followed an article and found many issues and with searching, I solve them, but still two issues I can't solve because I am not familiar with objective-c</p>
  <p>Issue 1,
  No known class method for selector 'presentCheckoutForSubmittingTransactionCompletionHandler:cancelHandler:'</p>
  <p>Issue 2,
  No known class method for selector 'dismissCheckoutAnimated:completion:'</p>
  <p>I am sorry if my code is long but I don't to miss something</p>
  <pre><code>// RCTCalendarModule.m
  #import &quot;HyperPay.h&quot;
  #import &quot;UIKit/UIKit.h&quot;
  #import &lt;OPPWAMobile/OPPWAMobile.h&gt;
  
  @implementation HyperPay{
   RCTResponseSenderBlock onDoneClick;
   RCTResponseSenderBlock onCancelClick;
   UIViewController *rootViewController;
   NSString *isRedirect;
   OPPPaymentProvider *provider;
  }
  // To export a module named RCTCalendarModule
  RCT_EXPORT_METHOD(openHyperPay:(NSDictionary *)indic createDialog:(RCTResponseSenderBlock)doneCallback createDialog:(RCTResponseSenderBlock)cancelCallback) {
    onDoneClick = doneCallback;
    onCancelClick = cancelCallback;
    NSArray *events = @[];
    
    if ([indic[@&quot;is_sandbox&quot;] isEqualToString:@&quot;1&quot;]) {
      provider = [OPPPaymentProvider paymentProviderWithMode:OPPProviderModeTest];
    } else {
      provider = [OPPPaymentProvider paymentProviderWithMode:OPPProviderModeLive];
    }
    
    OPPCheckoutSettings *checkoutSettings = [[OPPCheckoutSettings alloc] init];
  
    // Set available payment brands for your shop
    checkoutSettings.paymentBrands = @[@&quot;VISA&quot;, @&quot;MASTER&quot;];
    // Set shopper result URL
    checkoutSettings.shopperResultURL = @&quot;com.simicart.enterprise.payments://result&quot;;
    
    OPPCheckoutProvider *checkoutProvider = [OPPCheckoutProvider checkoutProviderWithPaymentProvider:provider checkoutID:indic[@&quot;checkoutId&quot;]
                                                                                            settings:checkoutSettings];
    dispatch_async(dispatch_get_main_queue(), ^{
      [OPPCheckoutProvider presentCheckoutForSubmittingTransactionCompletionHandler:^(OPPTransaction * _Nullable transaction, NSError * _Nullable error) {
        if (error) {
          // Executed in case of failure of the transaction for any reason
          if (isRedirect &amp;&amp; ![isRedirect isEqualToString:@&quot;1&quot;]) {
            onCancelClick(@[@&quot;cancel&quot;, events]);
          }
        } else if (transaction.type == OPPTransactionTypeSynchronous)  {
          // Send request to your server to obtain the status of the synchronous transaction
          // You can use transaction.resourcePath or just checkout id to do it
          NSDictionary *responeDic = @{@&quot;resourcePath&quot; : transaction.resourcePath};
          onDoneClick(@[responeDic, events]);
          NSLog(@&quot;%@&quot;, transaction.resourcePath);
        } else {
          // The SDK opens transaction.redirectUrl in a browser
          // See 'Asynchronous Payments' guide for more details
  
        }
      } cancelHandler:^{
          onCancelClick(@[@&quot;cancel&quot;, events]);
  
        // Executed if the shopper closes the payment page prematurely
      }];
       });
  }
  
  
  - (instancetype)init{
      self = [super init];
      if (self) {
          [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getStatusOder:) name:@&quot;getStatusOrder&quot; object:nil];
      }
      return self;
  }
  
  - (void)getStatusOder:(NSNotification*)noti{
    [OPPCheckoutProvider dismissCheckoutAnimated:YES completion:^{
      isRedirect = @&quot;1&quot;;
      NSURL *url = noti.object;
      NSString *urlString = [url absoluteString];
      NSLog(@&quot;%@&quot;, urlString);
      if (![urlString isEqualToString:@&quot;com.simicart.enterprise.payments://result&quot;]) {
        NSArray *events = @[];
        NSDictionary *responeDic = @{@&quot;url&quot; : urlString};
        onDoneClick(@[responeDic, events]);
      }
    }];
  }
  
  @end
  
  </code></pre>