2013-03-02 18 views
7

Sự cố: Tôi đang cố thử nghiệm trong các giao dịch mua ứng dụng bằng tài khoản sandbox, nhưng mỗi khi tôi cố gắng mua một mặt hàng tiêu hao hai lần, tôi nhận được thông báo lỗi sau:iOS Sandbox - Không thể mua vật phẩm tiêu hao hai lần

You've already purchased this In-App Purchase but it hasn't been downloaded. 
         [Environment: Sandbox] 

Điều này chỉ xảy ra khi sử dụng iOS < 6. Tôi đã đọc rằng đây có thể là vấn đề liên quan đến sandbox. Có ai biết nếu có bất kỳ sự thật cho tuyên bố đó?

Tôi chắc chắn rằng các cuộc gọi sau đây đang được thực hiện để hoàn tất giao dịch đầu tiên:

[[SKPaymentQueue defaultQueue] finishTransaction:transaction] 

tôi đã cố gắng thực hiện cuộc gọi này cũng như để tuôn ra hàng đợi không có may mắn:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

Tôi cũng đảm bảo rằng trước khi thử nghiệm iAP, tôi đã đăng xuất khỏi cửa hàng iTunes. Ngoài ra, tôi cũng đã kiểm tra xem số phiên bản và phiên bản có nằm trong ngăn Tóm tắt của Mục tiêu của tôi trong Xcode hay không.

+0

là bạn chắc chắn 100% đó là sản phẩm tiêu hao ...? – holex

+0

Vâng, tôi chắc chắn. – user2125688

+0

Tôi đang trải nghiệm điều này cho iOS 6 và 7 và các sản phẩm không tiêu thụ. Bạn đã tìm ra cách để giải quyết điều đó chưa? – SpaceDog

Trả lời

0

vấn đề có lẽ là dòng thiếu này trong mã của bạn

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

tôi nhận được các lỗi tương tự cách đây vài ngày. và dòng này khắc phục vấn đề cho tôi. dòng này thêm người quan sát cho các ứng dụng.

+0

Đã thử rồi. – user2125688

1

Tôi có tình huống tương tự mà tôi nhận được thông báo này và sau đó gặp sự cố nếu tôi cố mua lại. Với tôi, có vẻ như đây chỉ là thông báo rằng finishTransaction chưa hoàn thành (vì bất kỳ lý do gì). Theo nhật ký của tôi, nó cung cấp một giao dịch được cập nhật SKTransactionStateFailed, cho phép tôi gửi lại finishTransaction.

Sau đó, tôi đăng ký trong ứng dụng của mình rằng thực tế đã tải xuống dữ liệu/mua BOOL/mọi thứ và trình bày giao diện người dùng nếu họ cần tải xuống lại. Dường như không có vấn đề với tải xuống tiếp theo.

Để ngăn chặn những tiếng ầm ầm, tôi bao gồm:

[[SKPaymentQueue defaultQueue] removeTransactionObserver:self]; 
Các vấn đề liên quan