Apple Pay не работает должным образом в Swift
Я реализовал Apple Pay с полосой, используя Swift. Я следовал за официальным документом нашивки. Всякий раз, когда пользователь нажимает кнопку оплаты Apple, он показывает платежный лист правильно? Но в нашем случае это не показывает платежный лист. он показывает ошибку типа "Passbook UI Service неожиданно завершил работу", и я написал ошибку в коде, чтобы ошибка выводилась на консоль. Когда я запускаю ту же программу в симуляторе MacBook Air, она работает отлично и также генерирует полосовой токен. Но я бегу в реальном Iphone, он не работает хорошо, как показано выше, я упоминал об ошибке. Я тестировал код в симуляторах iphone8plus и более поздних версиях. Мой код:
import UIKit
import PassKit
import Stripe
class ViewController: UIViewController {
let request = PKPaymentRequest()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func applepay(_ sender: Any) {
let merchantIdentifier = "merchant.Appplepay"
let paymentNetworks = [PKPaymentNetwork.masterCard, PKPaymentNetwork.visa]
if PKPaymentAuthorizationViewController.canMakePayments(usingNetworks: paymentNetworks)
{
request.merchantIdentifier = "merchant.Appplepay"
request.countryCode = "US"
request.currencyCode = "USD"
request.supportedNetworks = paymentNetworks
request.merchantCapabilities = .capability3DS
request.paymentSummaryItems = [PKPaymentSummaryItem(label: "Fancy Hat", amount: 50.00),
// The final line should represent your company;
// it'll be prepended with the word "Pay" (i.e. "Pay iHats, Inc $50")
PKPaymentSummaryItem(label: "iHats, Inc", amount: 50.00),]
} else {
// Traditional checkout flow
}
func applePaySupported() -> Bool {
return PKPaymentAuthorizationViewController.canMakePayments() && PKPaymentAuthorizationViewController.canMakePayments(usingNetworks: [.amex, .visa, .masterCard])
}
// Setup payment authorization view controller
let paymentAuthorizationViewController = PKPaymentAuthorizationViewController(paymentRequest:request)
paymentAuthorizationViewController?.delegate = self
// Present payment authorization view controller
self.present((paymentAuthorizationViewController)!, animated: true,completion: nil)
}
}
extension ViewController : PKPaymentAuthorizationViewControllerDelegate {
func paymentAuthorizationViewController(_ controller: PKPaymentAuthorizationViewController, didAuthorizePayment payment: PKPayment, completion: @escaping (PKPaymentAuthorizationStatus) -> Void) {
STPAPIClient.shared().createToken(with: payment) { (token: STPToken?, error)-> Void in
print("Stripe token is \(String(describing: token!))")
completion(.success)
}
}
func paymentAuthorizationViewControllerDidFinish(_ controller: PKPaymentAuthorizationViewController!) {
controller.dismiss(animated: true, completion: nil)
}
}
и мои скриншоты подписи:
Этот снимок экрана - мой идентификатор продавца и возможность оплаты Apple в моих возможностях в моем проекте.
Пожалуйста, помогите мне, как преодолеть эту ошибку и отображение платежного листа