2 votes

Impossible de présenter l'interface DropIn en utilisant Braintree iOS

Je crée une application de paiement et j'utilise Braintree pour cela. Je veux utiliser l'interface utilisateur Braintree DropIn. J'ai installé BraintreeDropIn via pod. J'utilise le code suivant pour afficher l'interface DropIn.

func showDropIn(clientTokenOrTokenizationKey: String) {
    let request =  BTDropInRequest()
    let dropIn = BTDropInController(authorization: clientTokenOrTokenizationKey, request: request)
    { (controller, result, error) in
        if (error != nil) {
            print("ERREUR")
        } else if (result?.cancelled == true) {
            print("ANNULÉ")
        } else if result != nil {
            // Utilisez les propriétés de BTDropInResult pour mettre à jour votre interface utilisateur
            // result.paymentOptionType
            // result.paymentMethod
            // result.paymentIcon
            // result.paymentDescription
        }
        controller.dismissViewControllerAnimated(true, completion: nil)
    }
    self.presentViewController(dropIn!, animated: true, completion: nil)
}

J'ai obtenu la clé de tokenisation du panneau de contrôle sandbox sous Clés de tokenisation et je la passe à la fonction showDropIn. Pourtant, rien ne s'affiche, cela ne rentre pas dans cette fonction

(BTDropInController(authorization: clientTokenOrTokenizationKey, request: request)
{ (controller, result, error))

2voto

Dheeraj D Points 2254

Essayez d'utiliser ceci:

    func showDropIn(clientTokenOrTokenizationKey: String) {

        let request =  BTDropInRequest()
        let dropIn = BTDropInController(authorization: clientTokenOrTokenizationKey, request: request)
        { (controller, result, error) in
            if (error != nil) {
                print("ERREUR")
            } else if (result?.cancelled == true) {
                print("ANNULÉ")
            } else if result != nil {
                // Utilisez les propriétés de BTDropInResult pour mettre à jour votre interface utilisateur
                // result.paymentOptionType
                // result.paymentMethod
                // result.paymentIcon
                // result.paymentDescription
            }
         dispatch_async(dispatch_get_main_queue(), ^{
             controller.dismissViewControllerAnimated(true,   completion: nil)
     });
        }
          dispatch_async(dispatch_get_main_queue(), ^{
             self.presentViewController(dropIn!, animated: true, completion: nil)
     });
    }

J'espère que cela fonctionnera...!!

0voto

ArielSD Points 288

En Objective-C:

- (void)showDropIn:(NSString *)clientTokenOrTokenizationKey {
    BTDropInRequest *request = [[BTDropInRequest alloc] init];
    BTDropInController *dropIn = [[BTDropInController alloc] initWithAuthorization:clientTokenOrTokenizationKey request:request handler:^(BTDropInController * _Nonnull controller, BTDropInResult * _Nullable result, NSError * _Nullable error) {

        if (error != nil) {
            NSLog(@"ERREUR");
        } else if (result.cancelled) {
            NSLog(@"ANNULÉ");
        } else {
            // Utiliser les propriétés de BTDropInResult pour mettre à jour votre interface utilisateur
            // result.paymentOptionType
            // result.paymentMethod
            // result.paymentIcon
            // result.paymentDescription
        }

        dispatch_async(dispatch_get_main_queue(), ^{
            [controller dismissViewControllerAnimated:YES completion:nil];
        });
    }];

    dispatch_async(dispatch_get_main_queue(), ^{
        [self presentViewController:dropIn animated:YES completion:nil];
    });
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X