React Native bridge for Adyen Swift SDK and Adyen Android SDK
npm install react-native-adyennpm i react-native-adyen —-save
react-native link
You must then take the following steps for iOS only:
pod Adyen to your Podfile and then run cocoapods to installPaymentManagerDelegate to the interface- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(showCheckout:)
name:@"AFShowCheckout"
object:nil];showCheckout function! - (void)showCheckout:(NSNotification *)notification{
NSLog(@"-----AppDelegate::ShowCheckout ------- ");
self.paymentManager.paymentDetails = [notification userInfo];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:self.paymentManager.paymentDetails[@"adyenAppSecretKey"] forKey:@"adyenAppSecretKey"];
[defaults setObject:self.paymentManager.paymentDetails[@"adyenURL"] forKey:@"adyenURL"];
[defaults setObject:self.paymentManager.paymentDetails[@"adyenAuthHeader"] forKey:@"adyenAuthHeader"];
[defaults synchronize];
[[self paymentManager] beginPaymentWithHostViewController:self.window.rootViewController];
}#pragma mark -
#pragma mark Payment Manager - Adyen
- (PaymentManager *)paymentManager {
if (_paymentManager) {
return _paymentManager;
}
PaymentManager *paymentManager = [[PaymentManager alloc] init];
[paymentManager setDelegate:self];
_paymentManager = paymentManager;
return paymentManager;
}
- (void)paymentManager:(PaymentManager )paymentManager didFinishWithResult:(PaymentManagerResult )result andToken:(NSString*)token{
NSString *resultString = [self alertTitleForPaymentManagerResult:result];
NSMutableDictionary *adyenResult = [NSMutableDictionary dictionary];
[adyenResult setObject: resultString forKey: @"adyenResult"];
[adyenResult setObject: token forKey: @"adyenToken"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"onCheckoutDone" object:nil userInfo:adyenResult];
}
- (NSString )alertTitleForPaymentManagerResult:(PaymentManagerResult )result {
switch ([result status]) {
case PaymentManagerResultStatusReceived:
return @"Payment received";
case PaymentManagerResultStatusAuthorised:
return @"Payment authorised";
case PaymentManagerResultStatusRefused:
return @"Payment refused";
case PaymentManagerResultStatusCancelled:
return @"Payment canceled";
case PaymentManagerResultStatusError:
return [NSString stringWithFormat:@"Payment failed with error (%@)", [result error]];
}
}