J'essaie de mettre en œuvre Apple Pay pour mon application. J'ai le PKPaymentAuthorizationViewController essayant de charger l'Apple Pay View. Ce contrôleur de vue a été retourné comme nul par le constructeur si je n'avais pas de cartes déjà dans mon portefeuille. Donc, j'ai décidé de guider l'utilisateur à travers le processus où ils entrent leurs informations de carte. J'ai pu parvenir grâce àApple Pay détecter Wallet n'a pas de cartes de crédit
PKPassLibrary* lib = [[PKPassLibrary alloc] init];
[lib openPaymentSetup];
Voici la partie où je l'initialisation du PKPaymentAuthorizationViewController. Cela retourne un objet valide sur le simulateur montrant la vue. Mais sur un appareil réel sans carte de crédit configurée renvoie zéro et s'exécute dans une exception d'exécution. Voici le code d'initialisation:
if ([PKPaymentAuthorizationViewController canMakePayments]) {
// init arr
[arr addObject:total];
request.paymentSummaryItems = arr;
PKPaymentAuthorizationViewController *paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
paymentPane.delegate = self;
[self presentViewController:paymentPane animated:TRUE completion:nil];
}
Ici, le tableau est un NSArray valide de PKPaymentSummaryItem qui est de savoir pourquoi fonctionne avec succès sur simulateur.
Je dois appeler la méthode ci-dessus de openPaymentSetup, chaque fois que je vois un utilisateur sans la carte de crédit dans leur portefeuille. Y a-t-il un moyen de détecter cela?
Actuellement, je me sers
if ([PKPassLibrary isPassLibraryAvailable]) {
PKPassLibrary* lib = [[PKPassLibrary alloc] init];
if ([lib passesOfType:PKPassTypePayment].count == 0) {
[lib openPaymentSetup];
}
}
Mais cela ne fonctionnera pas depuis que je suis à la recherche au nombre de passes en portefeuille. Ce qui peut être comme carte d'embarquement pour les compagnies aériennes, ou laissez-passer Eventbrite, etc.
ont regardé: PKPaymentAuthorizationViewController present as nil view controller
Apple pay PKPaymentauthorizationViewController always returning nil when loaded with Payment request
Existe-t-il une raison pour laquelle vous ne pouvez pas utiliser la méthode canMakePayments de la documentation Apple? (https://developer.apple.com/library/ios/documentation/PassKit/Reference/PKPaymentAuthorizationViewController_Ref/#//apple_ref/occ/clm/PKPaymentAuthorizationViewController/canMakePayments) – bplattenburg
@bplattenburg Il retourne toujours vrai. Vérifiez l'édition. – Rushabh
Vous devez utiliser la méthode 'canMakePaymentsUsingNetworks:', pas la méthode 'canMakePayments'. – rmaddy