Я хочу отображать страницу добавления карт Apple Wallet всякий раз, когда пользователь нажимает кнопку добавления карт в кошелек в моем приложении ios. как вызвать Apple Wallet из приложения ios. Я включил возможности кошелька в своем приложении iOS, а также сгенерировал права кошелька для своего приложения. Как использовать PKAddPaymentPassViewControler с помощью swift. пожалуйста, дайте некоторое представление об этом
как вызвать кошелек Apple из приложения iOS с помощью Swift
Ответы (1)
ПРИМЕЧАНИЕ. Только для эмитентов карт. Если вы хотите перенаправить пользователя для добавления способа оплаты, используйте openPaymentSetup метод. См. мой ответ здесь для более подробной информации.
Для эмитентов карт вам необходимо специальное разрешение, выданное Apple.
Ваше приложение должно включать это право, прежде чем вы сможете использовать этот класс. Дополнительную информацию о запросе этого права см. в разделе «Эмитенты карт» на странице developer.apple.com/apple-pay/.
Из этого ответа:
PKAddPaymentPassViewController
требуется ключ разрешенияcom.apple.developer.payment-pass-provisioning
для вашего приложения. Плохая новость заключается в том, что никто не может отправлять приложения с этим правом, поскольку для этого требуется специальное разрешение от Apple, которое, как я полагаю, зарезервировано для эмитентов карт, таких как банки и тому подобное. Если вы считаете, что соответствуете требованиям, вам необходимо связаться с Apple напрямую по адресу[email protected]
.
Вам необходимо реализовать методы делегата и инициализировать его конфигурацией.
import UIKit
import PassKit
class ViewController: UIViewController, PKAddPaymentPassViewControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
if (!PKAddPaymentPassViewController.canAddPaymentPass()){
// use other payment method / alert user
}
let config = PKAddPaymentPassRequestConfiguration.init(encryptionScheme: PKEncryptionScheme.ECC_V2)
let addPaymentPassVC = PKAddPaymentPassViewController.init(requestConfiguration: config!, delegate: self)
self.present(addPaymentPassVC!, animated: true, completion: nil)
}
func addPaymentPassViewController(_ controller: PKAddPaymentPassViewController, generateRequestWithCertificateChain certificates: [Data], nonce: Data, nonceSignature: Data, completionHandler handler: @escaping (PKAddPaymentPassRequest) -> Void) {
}
func addPaymentPassViewController(_ controller: PKAddPaymentPassViewController, didFinishAdding pass: PKPaymentPass?, error: Error?) {
// pass added
}
}
initWithRequestConfiguration
вернет nil, если у вас нет специального разрешения от Apple.
- person Scott Condron; 06.08.2018