react-native-adyen

1.2.7 • Public • Published

How to install

npm i react-native-adyen —-save

react-native link

You must then take the following steps for iOS only:

iOS

    0.        Copy the Adyen folder with the Swift files and the bridging header into your main iOS project
    1.        Add `pod Adyen` to your Podfile and then run cocoapods to install
    2.        Follow the steps listed here (https://bohemianpolymorph.wordpress.com/2014/07/11/manually-adding-a-swift-bridging-header/) to create a bridging header
    3.        import your bridging header into your project's AppDelegate
    4.        add `PaymentManagerDelegate` to the interface
    5.        add the following code in your `- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions`
    `[[NSNotificationCenter defaultCenter] addObserver:self
                                       selector:@selector(showCheckout:)
                                           name:@"AFShowCheckout"
                                         object:nil];`
    6.        define the `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];
    }`
    7.        add the following code at the end of AppDeleate before the "@end" 
    `#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]];
             }
       }`

`

Package Sidebar

Install

npm i react-native-adyen

Weekly Downloads

26

Version

1.2.7

License

MIT

Unpacked Size

22.7 MB

Total Files

79

Last publish

Collaborators

  • mieszko4
  • tlaf