2017-02-17 8 views
0

present(completion: _)というPKPaymentAuthorizationControllerを提示しようとすると、それ以上の情報なしで失敗します。Apple Pay Authorization Controllerを提示できません

let paymentSummaryItems: [PKPaymentSummaryItem] = <HIDDEN> 

let paymentRequest = PKPaymentRequest() 
paymentRequest.paymentSummaryItems = paymentSummaryItems 
paymentRequest.merchantIdentifier = <HIDDEN> 
paymentRequest.merchantCapabilities = .capability3DS 
paymentRequest.countryCode = "US" 
paymentRequest.currencyCode = "USD" 
paymentRequest.supportedNetworks = [.visa, .amex, .masterCard, .discover] 
paymentRequest.requiredShippingAddressFields = [.email] 

let paymentController = PKPaymentAuthorizationController(paymentRequest: paymentRequest) 
paymentController.delegate = self 

paymentController.present { success in 
    if success { 
     print("Presented payment controller") 
    } else { 
     print("Failed to present payment controller") 
    } 
} 

私がしようとするたびに、私は「支払コントローラを提示するために失敗しました」というメッセージが出て、何のアップルペイ認可のモーダルは表示されません:ここで

は、私はそれを提示してる方法です。

私はPKPaymentAuthorizationController.canMakePayments()チェックを追加し、それは真を返します。何がうまくいかないのか分かりません。同じコード(異なるmerchantIdentifier)は他のApple Payプロジェクトで問題なく動作します。

答えて

0

今後この問題に遭遇した方は、私はそれを理解しました。

私のPKDaymentSummaryItemsの配列にあるNSDecimalNumbersの1つに問題がありましたが、正しく小数点に変換せず、に設定されたamountになりました。私はそれを修正した後、コントローラが適切に現れました。

0

以下の手順で修正しました。そのうち1つは正解になる可能性があります。アプリのターゲット機能で

  • 、アップルの財布を有効にして、Appleは
  • を支払う正しい商人IDが含まれ、アップルの有料リストで
  • 変更資格
  • 商人ID provisiningにエラーが、有効にした場合は "プロファイル(REQDかどうかをチェック/チェックを外してください。)

App target capabilities screenshot

のプロビジョニング」署名を自動的に管理します
関連する問題