2015-11-18 13 views
11

Apple Pay統合プロジェクトを開始し、デバイス上でトランザクションを結びつけ、Stripeを使用して支払いを承認することができました。私が実際に苦労している部分は、Apple Payがサポートされているかどうかをデバイスがテストするための適切な方法です。したがって、古いIphoneモデルの場合、ios8またはios9がインストールされていても、Apple Pay機能を隠すことを選択します。iosデバイスがApple Payをサポートするかどうか確認する

デバイスモデルを確認して、< Iphone5Sの支払いを無視することができます。しかし、私はまた、IPadのバージョンなどのテストを開始する必要がある場合、これは複雑になります

私はApplePayがサポートされているかどうかをテストする方法が1つあるのだろうか?

私はこの方法をオンラインで1つのアイデアとして見つけましたが、Iphone5シミュレータでapple paidがサポートされていると主張しましたが、これは完全に真実ではありません。私は残念なことにテストするためにIphone5の実際のデバイスを持っていません。

- (BOOL) applePaySupported { 
    return [PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkVisa, PKPaymentNetworkMasterCard]]; 
} 

EDIT/SOLUTION:

私は今、このラインを使用し、Iphone6(サポート)対(サポートされていない)のiPhone5のために動作することが確認されました。私は他のデバイスを想定しています。私はそれがいつもシミュレータではうまくいくとは思っていませんが、ApplePayはちょっと奇妙で、テストはデバイスで一番うまくいきます。

- (BOOL) applePaySupported { 
    return [PKPaymentAuthorizationViewController canMakePayments] && [PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkVisa, PKPaymentNetworkMasterCard]]; 
} 

答えて

6

canMakePayments - カードの設定に関係なく "YES"(真/ 1)を返します。

canMakePaymentsUsingNetworks - カードが正しく設定されていないか正しく設定されていない場合は、「いいえ」を返します。

両方をチェックする必要があります。両方ともTRUEにする必要がある場合は、ボタン「Apple Pay」を表示する必要があります。

これが役に立ちます。

+0

私は一緒に両方の条件を試してみましたが、それは常にtrueを返している、私は何をすべきか教えてください? –

+0

ロナクが正しいです、両方のチェックが必要です。 – Rushabh

2

インwift 3.0あなたのデバイスのサポートを確認することができますリンゴ支払うかどうかは、この機能を介して返されますtrueあなたのデバイスサポートリンゴ支払う。ここではリンゴの賃金をサポートするデバイスのリストは以下のとおりです。

iPhone 5SあなたはiPhone 6最新の平和

iPhone SE、

を購入以降、

場合にのみ、

iPad Pro、

iPadの第5世代、

のiPadエアー2、

iPadのミニ3以降、

とAppleウォッチ。

func applePaySupported() -> Bool { 
      return PKPaymentAuthorizationViewController.canMakePayments() && PKPaymentAuthorizationViewController.canMakePayments(usingNetworks: [.amex, .visa, .masterCard]) 
} 
+1

を置き換えてください|| &&これにより右になります –

+0

@ YauheniShauchenka修正をありがとうございます。 –

関連する問題