Tôi đang cố triển khai Apple Pay cho ứng dụng của mình. Tôi có PKPaymentAuthorizationViewController đang cố gắng tải lên Apple Pay View. Bộ điều khiển xem này đã được trả về là Nil bởi hàm tạo nếu tôi không có bất kỳ thẻ nào đã có trong ví của tôi. Vì vậy, tôi quyết định hướng dẫn người dùng mặc dù quá trình họ nhập thông tin thẻ của họ. Tôi có thể đạt được điều này bằng cách sử dụngApple Pay phát hiện Wallet không có thẻ tín dụng
PKPassLibrary* lib = [[PKPassLibrary alloc] init];
[lib openPaymentSetup];
Đây là phần mà tôi có khởi tạo PKPaymentAuthorizationViewController. Điều này trả về một đối tượng hợp lệ trên Simulator hiển thị khung nhìn. Nhưng trên một thiết bị thực mà không có một thẻ tín dụng được cấu hình trả về nil và chạy vào một ngoại lệ thời gian chạy. Đây là mã khởi tạo:
if ([PKPaymentAuthorizationViewController canMakePayments]) {
// init arr
[arr addObject:total];
request.paymentSummaryItems = arr;
PKPaymentAuthorizationViewController *paymentPane = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:request];
paymentPane.delegate = self;
[self presentViewController:paymentPane animated:TRUE completion:nil];
}
Đây mảng là một NSArray hợp lệ của PKPaymentSummaryItem đó là lý do tại sao hoạt động thành công trên trình mô phỏng.
Tôi cần gọi phương thức openPaymentSetup ở trên, mỗi khi tôi thấy người dùng không có thẻ tín dụng trong ví của họ. Có cách nào để phát hiện điều đó không?
Hiện nay tôi đang sử dụng
if ([PKPassLibrary isPassLibraryAvailable]) {
PKPassLibrary* lib = [[PKPassLibrary alloc] init];
if ([lib passesOfType:PKPassTypePayment].count == 0) {
[lib openPaymentSetup];
}
}
Nhưng điều này sẽ không làm việc kể từ khi tôi đang nhìn vào số lượng đi trong ví. Mà có thể giống như thẻ lên máy bay cho hãng hàng không, hoặc Eventbrite đường chuyền vv
Nhìn: PKPaymentAuthorizationViewController present as nil view controller
Apple pay PKPaymentauthorizationViewController always returning nil when loaded with Payment request
có lý do nào khiến bạn không thể sử dụng phương thức canMakePayments từ tài liệu hướng dẫn của apple không? (https://developer.apple.com/library/ios/documentation/PassKit/Reference/PKPaymentAuthorizationViewController_Ref/#//apple_ref/occ/clm/PKPaymentAuthorizationViewController/canMakePayments) – bplattenburg
@bplattenburg Nó luôn luôn trả về đúng sự thật. Kiểm tra chỉnh sửa. – Rushabh
Bạn cần sử dụng phương thức 'canMakePaymentsUsingNetworks:', không phải phương thức 'canMakePayments'. – rmaddy