4

PK Payment auth ビュー コントローラー インスタンスが nil として返されます。このコードの何が問題になっていますか?

if([PKPaymentAuthorizationViewController canMakePayments])
{
    if ([PKPaymentAuthorizationViewController    canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa]]) 
    {
        PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
        request.currencyCode = @"USD";
        request.countryCode = @"US";
        request.merchantCapabilities = 0;
        request.requiredBillingAddressFields=PKAddressFieldAll;
        request.merchantIdentifier = @"merchant.com.domain.mine";
        PKPaymentSummaryItem *item = [[PKPaymentSummaryItem alloc] init];
        item.label=@"Merchant";
        item.amount=[NSDecimalNumber decimalNumberWithString:@"10"];
        request.paymentSummaryItems=@[item];
        PKPaymentAuthorizationViewController *viewController =  [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
        viewController.delegate = self;
        [self presentViewController:viewController animated:YES   completion:nil];
    }
}
4

3 に答える 3

8

にアクセスする前PKPaymentAuthorizationViewControllerに、iPhone デバイスで Apple Pay を適切に設定する必要があります。デバイスで Apple Pay を設定していない場合は、 のnil価値が得られますPKPaymentAuthorizationViewControllerThis device cannot make payment.コンソールに " "という例外が表示されることさえあります。

デバイスで Apple Pay を設定するには、次の手順に従います。

  • [設定]に移動します。
  • Passbook と Apple Payオプションを選択します (このオプションが設定に表示されない場合は、[一般] -> [言語と地域] に移動し、地域を米国または英国に変更します。これにより、 [設定]に [ Passbook & Apple Pay ] オプションが表示されます)。 )
  • ホーム画面からPassbookアプリケーションを開き、有効なクレジット/デビット カードを設定します (米国/英国ベースのカードのみ)。
  • 追加されたカードを確認した後、アプリケーションを実行すると、有効なPKPaymentAuthorizationViewControllerインスタンスが取得されます。

これが役立つことを願っています。

于 2015-07-27T09:06:59.893 に答える