2012-05-16 43 views
9

Tôi có một tài khoản thử nghiệm có chính xác hai lần mua hàng trong lịch sử giao dịch của nó. Cả hai sản phẩm đều không tiêu thụ được.Cách khôi phục SKPaymentTransactions bị thiếu?

tôi đăng nhập trên iPad 1 và mua sản phẩm A.

Sau đó, tôi đăng xuất khỏi iPad 1 và đăng nhập trên thiết bị iPad 2 và mua sản phẩm B.

Sau đó, tôi đã cố gắng để khôi phục lại giao dịch trước đó sử dụng [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; để mở khóa sản phẩm A trên iPad 2.

Khi cuộc gọi trở lại, chỉ sản phẩm B nằm trong danh sách các giao dịch đáng nhớ.

Ngoài ra, khi tôi cố gắng để mua sản phẩm A một lần nữa trên iPad 2 sử dụng

SKPayment *payment = [SKPayment paymentWithProduct:productA]; 
[[SKPaymentQueue defaultQueue] addPayment:payment]; 

tôi nhận được một popup nói rằng 'Bạn đã mua này. Nhấn OK để tải xuống lại miễn phí. '

Nếu tôi đã mua sản phẩm A, tại sao nó không nằm trong danh sách sản phẩm khi tôi cố khôi phục các giao dịch mua trước đó? Tại sao tôi lại phải cố gắng mua lại lần nữa?

EDIT:
Tôi đã phát hiện ra rằng nó không quan trọng mà tôi sử dụng iPad (iPad 1 hoặc iPad 2), chỉ có sản phẩm B xuất hiện trong danh sách các giao dịch restorable và sản phẩm A có nhu cầu được mua lại.

EDIT:
Tôi ngoại suy yêu cầu sản phẩm, khôi phục và mua công việc vào dự án của riêng nó với cùng một ID gói và ID sản phẩm làm ID gốc.

Hiện tại không có gì xuất hiện trong danh sách giao dịch đáng nhớ nhưng cùng một cửa sổ bật lên xuất hiện khi tôi cố gắng mua một trong hai sản phẩm.

Chuyến đi khác xuống hố thỏ với công cụ Apple bị hỏng.

EDIT:
Cảm hứng cho điều tra này là phát ban khiếu nại của người dùng về các quyền lợi bị thiếu. Điều này phần lớn bắt đầu trở thành một vấn đề khi người dùng chuyển từ iPad 2 sang iPad 3s mới. Điều này không nhất quán giữa tất cả người dùng của tôi, nhưng đủ người trong số họ đã nêu lên một điều gì đó để ưu tiên và hỗ trợ khách hàng của Apple đã hướng họ trở lại với tôi, nhưng tôi không chắc đây là vấn đề tôi có thể khắc phục , đặc biệt là kể từ khi Apple khẳng định là đăng ký tiền mặt cho mua hàng trong ứng dụng.

+0

Tôi cũng tự hỏi nếu đây là hành vi bình thường, nó hoạt động tương tự đối với tôi. – ggfela

+0

Điều này không thể bình thường. Toàn bộ lịch sử giao dịch của người dùng sẽ có sẵn trên mọi thiết bị bất kỳ lúc nào. – Hyperbole

+0

Tôi gặp sự cố này trong iOS 7. Nút khôi phục sẽ không thành công, nhưng nếu người dùng cố gắng mua lại, họ sẽ nói rằng họ đã mua mặt hàng và hỏi xem họ có muốn tải xuống hay không. Làm thế nào bạn đã đi về giải quyết này cuối cùng? – SAHM

Trả lời

3

Tôi có thẩm quyền tốt rằng đây là lỗi trong phần mềm máy chủ của Apple ở đâu đó.

+2

Tôi thấy vấn đề này tất cả các thời gian, đặc biệt là với các tài khoản itunes thử nghiệm. Vấn đề vẫn tồn tại trong iOS 7 GM. – jjxtra

3

Thông báo này 'Bạn đã mua nội dung này. Nhấn OK để tải xuống lại miễn phí. ' thường xuất hiện khi bạn thêm giao dịch thanh toán vào hàng đợi mặc định và không hoàn tất giao dịch để StoreKit giả sử người dùng đã mua mặt hàng nhưng ứng dụng của bạn chưa tải xuống ứng dụng, vì vậy hãy đảm bảo rằng bạn được phân phối mục cho người dùng và kết thúc giao dịch ... I'v có một cách nào để lấy các mặt hàng dùng mua và làm việc tốt của nó cho tôi .. thử nó

- (void) checkPurchasedItems 
{ 
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 
}//You Call This Function 

//Then this delegate Function Will be fired 
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue 
{ 
    purchasedItemIDs = [[NSMutableArray alloc] init]; 

    NSLog(@"received restored transactions: %i", queue.transactions.count); 
    for (SKPaymentTransaction *transaction in queue.transactions) 
    { 
     NSString *productID = transaction.payment.productIdentifier; 
     [purchasedItemIDs addObject:productID]; 
    } 

} 

các purchasedItemIDs sẽ chứa tất cả các ID sản phẩm mà người người dùng đã mua nó.

+0

Có, tôi làm điều này. Tham số 'queue' trong hàm gọi lại này chỉ rỗng như lời gọi lại của trình quan sát giao dịch. – Hyperbole

+0

Bạn không được gọi lại cho tất cả các sản phẩm sẽ được khôi phục đôi khi. Đây vẫn là một lỗi trong iOS 7 GM. – jjxtra

Các vấn đề liên quan