我正在为来自美国以外的美国客户使用 Apple Pay 开发应用程序。我正在使用 Braintree + Apple Pay。我们支持真实信用卡到 Passbook,但我们无法验证它们。
我成功生成了客户端令牌,self.braintree
并尝试了 BT 的两种集成方式。
BTPaymentProvider - 我们对支付方式创建的抽象。
if(self.braintree && ![self.braintree isKindOfClass:[NSNull class]]) { self.provider = [braintree paymentProviderWithDelegate:self]; if ([self.provider canCreatePaymentMethodWithProviderType:BTPaymentProviderTypeApplePay]) { self.provider.paymentSummaryItems = @[[PKPaymentSummaryItem summaryItemWithLabel:@"XXXX" amount:[NSDecimalNumber decimalNumberWithString:@"1"]]]; } [self.provider createPaymentMethod:BTPaymentProviderTypeApplePay]; }
但它没有推动“
PKPaymentAuthorizationViewController
”。追踪它也不例外。PassKit - Apple 的 ApplePay API。
if([PKPaymentAuthorizationViewController canMakePayments]) // It returns TRUE { PKPaymentRequest *paymentRequest = [[PKPaymentRequest alloc] init]; paymentRequest.countryCode = @"US"; paymentRequest.currencyCode = @"USD"; paymentRequest.merchantCapabilities = PKMerchantCapabilityEMV | PKMerchantCapability3DS; paymentRequest.merchantIdentifier = MERCHANTID; paymentRequest.supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa]; paymentRequest.paymentSummaryItems = @[ [PKPaymentSummaryItem summaryItemWithLabel:@"TEST" amount:[NSDecimalNumber decimalNumberWithString:@"1"]] ]; if([PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:@[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa]]) // Returns FALSE { PKPaymentAuthorizationViewController *vc = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:paymentRequest]; vc.delegate = self; [self presentViewController:vc animated:YES completion:nil]; } }
这给出了“vc”是
nil
。
纠正我,如果它是错误的。如何在真实设备上进行测试?