背景: iOS 8.2,8.3 に同じコードを使用しましたが、正常に動作していました。
PKPaymentAuthorizationViewController *paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
paymentPane.delegate = self;
[self presentViewController:paymentPane animated:TRUE completion:nil];
支払いリクエストコード:
PKPaymentRequest *request = [[PKPaymentRequest alloc] init];
NSString *chargeApplePay=[NSString stringWithFormat:@"%.02f",pay];
PKPaymentSummaryItem *total = [PKPaymentSummaryItem summaryItemWithLabel:@"Grand Total"
amount:[NSDecimalNumber decimalNumberWithString:chargeApplePay]];
request.paymentSummaryItems = @[total];
request.countryCode = @"US";
request.currencyCode = @"USD";
request.supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa];
request.merchantIdentifier = @"valid.com.myIdentifier";
request.merchantCapabilities = PKMerchantCapability3DS;
質問:現在、iOS 8.4 で paymentPane を提示しようとすると、何らかの理由でその値が nil になっています。
致命的な例外: NSInvalidArgumentException アプリケーションが target に nil モーダル ビュー コントローラーを提示しようとしました。
グーグルで、stackoverflowからの回答を使用して、私がすでに試したこと。
使用済み小切手
[PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa]]
と
[PKPaymentAuthorizationViewController canMakePayments]
マーチャント ID が有効かどうかを確認しています。
- リクエストに使用したすべてのコードが有効かどうかを確認しています。