ПРИМЕЧАНИЕ. Это только для эмитентов карт. Если вы хотите перенаправить пользователя для добавления способа оплаты, используйте метод openPaymentSetup . См. Мой ответ здесь для более подробной информации.
Для эмитентов карт вам необходимо специальное разрешение, выданное Apple.
Ваше приложение должно включать это право, прежде чем вы сможете использовать этот класс.
Для получения дополнительной информации о запросе этого права см. Карту
Раздел Эмитенты на developer.apple.com/apple-pay/.
С этот ответ :
PKAddPaymentPassViewController
требуется право com.apple.developer.payment-pass-provisioning
ключ для вашего приложения. Плохая новость заключается в том, что никто не может отправлять приложения с
это право, поскольку оно требует специального разрешения от Apple, которое я
Вера зарезервирована для эмитентов карт, таких как банки и тому подобное. если ты
полагать, что вы имеете право, вам нужно связаться с Apple напрямую по адресу
apple-pay-inquiries@apple.com
Вам необходимо реализовать методы делегата и инициализировать его с помощью конфигурации.
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
}
}