2010-03-19 49 views
20

Tôi đang thử nghiệm ứng dụng mua ứng dụng của mình. Trong khi tôi mua sản phẩm tiêu hao lần thứ hai với tài khoản người dùng của mình trong môi trường hộp cát, nó luôn hiển thị cho tôi cảnh báo "Bạn đã mua nó nhưng chưa được tải xuống. Nhấn OK để tải xuống ngay bây giờ". Có cách nào để bỏ qua cảnh báo không?Cách bỏ qua cảnh báo "Bạn đã mua thông báo này nhưng chưa được tải xuống"

Cảm ơn bạn đã được trợ giúp.

+0

Bạn đã có giải pháp ... Tôi cũng gặp vấn đề tương tự ở đây không. –

Trả lời

6

Điều này thực sự khá phức tạp. Apple có thông báo này được xây dựng trong quá trình giao dịch của họ, vì vậy nếu bạn cho phép người dùng đến điểm mà họ đang cố gắng mua lại sản phẩm họ đã sở hữu, họ sẽ thấy thông báo này.

Bạn có thể sử dụng

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

Để khôi phục lại bất kỳ giao dịch họ đã mua trước đó trước khi họ nhận được để màn hình mua của bạn. Chạy restoreCompletedTransactions trước khi GUI cửa hàng của bạn tải và sau đó khóa các nút mua của bất kỳ nội dung nào được mở khóa khi giao dịch được hoàn tất thành công.

+1

Ngay cả đối với vật tư tiêu hao? – Brandon

+5

Không, phục hồiCompletedTransactions là không sử dụng khi sử dụng hàng tiêu dùng. –

+7

Lưu ý rằng khi gọi 'restoreCompletedTransaction', màn hình nhập mật khẩu sẽ bật lên và người dùng có thể sẽ không biết tại sao. – pt2ph8

14

Bạn không nên thấy cảnh báo này nếu bạn đang mua hàng tiêu dùng sau khi đã làm như vậy. Nếu bạn đang có, sau đó bạn chưa bao giờ loại bỏ các giao dịch từ hàng đợi. Bạn cần phải xóa nó trước khi cửa hàng sẽ cho phép bạn mua lại nó.

[[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
+3

Thật không may, điều này đã không thoát khỏi vấn đề đối với tôi. – Gomfucius

+0

Đúng vậy. Đồng thời đảm bảo thanh toán của bạnQueue: updatedTransactions: đang được gọi sau khi khởi động lại trình mô phỏng/thiết bị và kiểm tra trạng thái giao dịch đang chờ xử lý. Tại một số điểm bạn phải gọi finishTransaction. – saulobrito

2

này cũng có thể xảy ra với mã hoàn toàn hợp lệ trong một ad-hoc xây dựng nếu bạn đang đăng nhập bằng ID phi sandbox, hoặc ID sandbox SAI - như một từ một chương trình dev khác biệt so với các CERT ứng dụng đã được ký kết. Giống như cá nhân vs công ty chẳng hạn.

10

Vâng, giải pháp của tôi sau khi tìm kiếm trên web trong vài giờ! Đừng quên thêm người quan sát giao dịch cho người quản lý IAP của bạn !!

[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; 

Ứng dụng của bạn nên thêm một người quan sát vào hàng đợi thanh toán trong quá trình khởi ứng dụng. Nếu không có người quan sát nào được gắn vào hàng đợi, hàng đợi thanh toán không đồng bộ hóa danh sách các giao dịch đang chờ xử lý của nó với Apple App Store, vì không có người quan sát nào phản hồi các giao dịch được cập nhật.

Nếu ứng dụng thoát khi giao dịch vẫn đang được xử lý, các giao dịch đó sẽ không bị mất. Lần sau khi ứng dụng khởi chạy, hàng đợi thanh toán sẽ tiếp tục xử lý các giao dịch. Ứng dụng của bạn sẽ luôn được mong đợi để được thông báo về các giao dịch đã hoàn tất.

+0

Xin lỗi, bạn có thể cho biết lý do của bạn không? Cảm ơn :) – Kjuly

+2

** cô ** ghen tị: D –

2

Đảm bảo bạn đã thêm đoạn mã này vào bộ điều khiển xử lý tất cả các yêu cầu.

[[SKPaymentQueue defaultQueue] addTransactionObserver:observer]; 
1

Tôi vừa khắc phục sự cố sau khi tạo tài khoản mới để sử dụng. Tôi nghĩ rằng hệ thống của Apple chỉ được sao lưu và messes lên tài khoản trong một thời gian.

Chúc may mắn!

2

Tôi đã có cùng một vấn đề mặc dù tôi đã làm thêm các quan sát viên giao dịch và cũng đã loại bỏ các giao dịch khỏi hàng đợi.Tôi đã có thể sửa chữa nó bằng cách dọn dẹp hồ sơ dự phòng của tôi:

  1. Đến Provisioning Portal và kiểm tra xem hồ sơ cung phân phối/nhà phát triển của bạn vẫn còn hiệu lực - làm mới chúng nếu cần thiết hoặc ít nhất là làm mới chúng bằng cách loại bỏ một thiết bị và thêm lại.

  2. Chuyển đến trình tổ chức của bạn trong XCode và xóa tất cả cấu hình cấp phép, so với làm mới lần truy cập.

  3. Xóa ứng dụng của bạn và tất cả các hồ sơ dự phòng ứng dụng của bạn từ thiết bị thử nghiệm của bạn

  4. Đăng ra với người sử dụng thử nghiệm hiện tại của bạn từ appstore và đăng nhập lại sau khi của bạn trong công cụ mua ứng dụng sẽ yêu cầu bạn làm như vậy.

  5. sạch, xây dựng và đăng nhập bằng người dùng thử nghiệm của bạn khi bạn mua hàng trong ứng dụng của bạn

  6. Cầu nguyện rằng nó làm việc cho bạn quá!

+0

Trong bộ phận FWIW, chỉ cần khởi động lại iPad Mini (chạy 7.0.4) cũng khôi phục hành vi sandbox "bình thường" (không gây rối với các cấu hình cung cấp - mặc dù tôi sẽ hãy thử các bước ở trên tiếp theo!) – mm2001

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