2017-01-23 9 views
0

PKPaymentAuthorizationViewControllerを初期化する際にデバイスのいずれかでnilを返す問題に直面しています。PKPaymentAuthorizationViewController(paymentRequest:requestObject)がnilを返しています

デバイス領域はUKに設定されており、Apple Walletには英国発行のカードが追加されています。

PKPaymentRequest

は、次のように構成されています

   let request = PKPaymentRequest() 

       request.merchantIdentifier = "mymerchantid" 
       request.supportedNetworks = [PKPaymentNetworkVisa, PKPaymentNetworkMasterCard, PKPaymentNetworkAmex] 
       request.merchantCapabilities = PKMerchantCapability.Capability3DS 
       request.countryCode = "US" 
       request.currencyCode = "USD" 

       let price: <NSDecimalNumber> 

       let item : PKPaymentSummaryItem = PKPaymentSummaryItem(label: "amount", amount: price, type: .Pending) 
       request.paymentSummaryItems = [ 
         item 
        ] 
      let paymentAuthorizationVC = PKPaymentAuthorizationViewController(paymentRequest: request) // Returning Nil 

      if PKPaymentAuthorizationViewController.canMakePaymentsUsingNetworks(SupportedPaymentNetworks) // Returns true 

端末:iPhone 6 OS:10.2.2

注:同じカードは、その作業罰金同じAppの別のデバイスにonboaredされます。下記のリンクや他のいくつかのblogs-運の提案を探してい Apple pay PKPaymentauthorizationViewController always returning nil when loaded with Payment request

で述べたように

をしようとしました。

答えて

0

私はこの同じ問題を抱えていました。その原因は、サポートされている支払いネットワークに含まれていないときに、Discoverカードを使ってテストしていたためです。あなたのユーザーベースが使用する可能性があるすべてのクレジットカードの種類を渡していることを確認してください。次へ

request.supportedNetworks = [PKPaymentNetworkVisa, PKPaymentNetworkMasterCard, PKPaymentNetworkAmex] 

は、この行を変更してみてください

Swift3で
request.supportedNetworks = [PKPaymentNetworkVisa, PKPaymentNetworkMasterCard, PKPaymentNetworkAmex, PKPaymentNetwork.discover] 

PKPaymentAuthorizationViewControllerinit()の宣言は、それが失敗したときnilを返さないにも関わらず、オプションとして定義されていません。

関連する問題