2015-08-31 2 views
0

Я пытаюсь настроить Apple Pay на свое приложение, но у меня нет iPhone 6 со мной в данный момент. Поэтому я пытаюсь собрать все и запустить с симулятором, прежде чем я смогу купить его, или попытаться заставить кого-то одолжить мне.iOS Simulator застрял в «Pay with Passcode» при попытке Apple Pay

Во всяком случае, я попал в точку, фактически показывает контроллер представления ApplePay:

enter image description here

Но когда я нажимаю на «Оплатить с помощью кода доступа» ничего не происходит, так что я не могу идти дальше и завершите тестирование всего на сервере.

Вот соответствующие части моего кода:

class PaymentVC: UIViewController,PKPaymentAuthorizationViewControllerDelegate { 

@IBAction func onPaymentSubmit(sender: AnyObject) { 
    if PKPaymentAuthorizationViewController.canMakePaymentsUsingNetworks(supportedPaymentNetworks) { 
     let applePayMerchantID = "merchant.com.id" 

     let request = PKPaymentRequest() 
     request.merchantIdentifier = applePayMerchantID 
     request.supportedNetworks = supportedPaymentNetworks 
     request.merchantCapabilities = PKMerchantCapability.Capability3DS 
     request.countryCode = "US" 
     request.currencyCode = "USD" 
     request.paymentSummaryItems = [ 
      PKPaymentSummaryItem(label: "Custom Order", amount: NSDecimalNumber(float: total)) 
     ] 
     let applePayController = PKPaymentAuthorizationViewController(paymentRequest: request) 
     applePayController.delegate = self 
     self.presentViewController(applePayController, animated: true, completion: nil) 
    } 
} 

//MARK: Apple Pay 

func paymentAuthorizationViewController(controller: PKPaymentAuthorizationViewController, didAuthorizePayment payment: PKPayment, completion: (PKPaymentAuthorizationStatus) -> Void) { 

} 

func paymentAuthorizationViewControllerDidFinish(controller: PKPaymentAuthorizationViewController) { 
    controller.dismissViewControllerAnimated(true, completion: nil) 
} 

} 

Любая идея, что может быть не так?

ответ

2

Необходимо вернуть статус платежа в paymentAuthorizationViewController. Вы увидите, что у метода делегата есть обработчик завершения, который вы должны вызывать, чтобы указать, удалось ли вам успешно обработать платеж или нет.

+0

Это настолько странно, что я бы поклялся, что у меня там был контрольный пункт, и его не вызывали. Но да, это заставило его работать. Благодаря! В случае, если кто-то задается вопросом, строка, добавляемая для проверки успешного платежа, - это «завершение (PKPaymentAuthorizationStatus.Success)» – Jan

Смежные вопросы