2012-07-09 24 views
6

Tôi đang làm việc trên ứng dụng này khi đã bật mua ứng dụng. Con đường hạnh phúc là tất cả được bảo hiểm, tất cả mọi thứ là tốt, tôi đang cố gắng để làm việc ra con đường không hạnh phúc.Bộ lưu trữ sẽ giữ các giao dịch chưa hoàn thành trong bao lâu?

Để đơn giản, giao dịch mua được ràng buộc với thành phần phía máy chủ. Khi mua, khi giao dịch ở trạng thái "Đã mua", tôi phải chuyển sang máy chủ, điều này sẽ kích hoạt tài khoản của người dùng. Khi yêu cầu quay lại, sau đó tôi dọn sạch một số nội dung và cuối cùng gọi -finishTransaction: trên SKPaymentQueue.

Đường dẫn không hạnh phúc là khá nhiều khi cuộc gọi máy chủ không thành công vì bất kỳ lý do gì. Mạng không khả dụng, thời gian chờ mạng, người dùng đã đóng ứng dụng ngay sau khi mua và ngay trước khi tôi có thể thực hiện cuộc gọi máy chủ, bạn đặt tên cho nó.

Thử nghiệm của tôi trong trình mô phỏng 5.1 với tài khoản sandbox cho tôi biết rằng giao dịch Mua chưa hoàn tất sẽ trở lại trong hàng đợi khi khởi động tiếp theo và đại biểu của tôi sẽ được gọi đúng. Nhưng, sau một thời gian ngắn, ví dụ 5 phút, bùng nổ, biến mất là giao dịch. Xem xét toàn bộ sự ổn định của tài khoản sandbox, tôi sẵn sàng gọi nó trên thực hiện của trình giả lập, nhưng thật khó để nói.

Cách thích hợp để giải quyết vấn đề này là gì?

Câu hỏi bổ sung: khi nào thì thực sự Apple tính phí ai đó? Có vẻ như sau khi ứng dụng được gọi là -finishTransaction :, nhưng tôi không thể tìm thấy bất kỳ bằng chứng nào về điều này ở bất kỳ đâu.

Cảm ơn, /Kra

UPDATE: thử nghiệm trên thiết bị vật lý, gần một giờ và giao dịch vẫn còn ở đó. Có vẻ như các giao dịch biến mất là một điều giả lập.

Trả lời

0

Khi tôi triển khai mua hàng trong ứng dụng, tôi đã từ bỏ việc thử nghiệm trong trình mô phỏng. Hành vi này quá khác biệt. Kiểm tra nó trên thiết bị và xem liệu nó có hoạt động ở đó hay không.

Tôi cũng quan tâm đến câu hỏi của bạn về việc sạc, vì tôi cũng không hoàn toàn chắc chắn về vấn đề này (ứng dụng của tôi chưa được phát hành;)).

+0

Cảm ơn câu trả lời của bạn. Đó là khá nhiều kết luận tôi nhận được, sandbox là hoàn toàn không đáng tin cậy, và bạn phải mất một bước nhảy vọt của đức tin trước khi đi sản. Một số bài kiểm tra trước đó trên thiết bị đã cho tôi biết rằng họ sẽ luôn quay trở lại (và một chút cảm giác thông thường cũng cho thấy điều đó). Thử nghiệm trên các thiết bị không hoàn toàn đáng tin cậy, tôi đã gỡ bỏ cài đặt, khởi động lại, cài đặt lại nhờ bộ lưu trữ freaking out với lỗi "Can't reach the appstore" đáng sợ. – kra

+0

Tôi phải nói rằng tôi đã không thực sự gặp rắc rối quá nhiều khi thử nghiệm trên thiết bị. Tôi đã làm theo hướng dẫn này rất chặt chẽ: http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/. Điều duy nhất mà đôi khi tôi đôi khi, là nó trả về id sản phẩm không hợp lệ sau khi thực hiện một số biên dịch lại - khi điều đó xảy ra, tôi chỉ phải xóa và xây dựng/chạy lại. Toàn bộ mối quan hệ mã-ký hiệu với id sản phẩm cũng vẫn là ma thuật đối với tôi - ví dụ tôi không hiểu tại sao nó hoạt động khi thực hiện một thử nghiệm adhoc với việc gỡ lỗi. –

+0

Vâng, đó là một phần khá nhiều ok, vấn đề của tôi là nhiều hơn với chuyển đổi giữa các tài khoản sandbox. Tại một số điểm, StoreKit chỉ từ bỏ, liên tục trả về lỗi giả mạo cho dù bạn làm gì và bạn phải gỡ cài đặt/khởi động lại điện thoại/cài đặt lại. Tôi không nhớ bất kỳ vấn đề nào với việc ký mã, bạn chỉ cần cẩn thận khi sử dụng một hồ sơ cấp phép cụ thể, chứ không phải một ký tự đại diện. Miễn là các mục có sẵn, nó sẽ hoạt động bất kể cert. – kra

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