2013-04-20 28 views
7

Chúng tôi là ba người, đã thực hiện một free game cho iPhone, đã có sẵn trên App Store trong gần một năm.Có thể tiêu thụ và không tiêu hao trong iOS

Ứng dụng là trò chơi trên bàn, nơi bạn tạo người dùng hoặc đăng nhập bằng thông tin đăng nhập Facebook của bạn. Bạn có thể đăng xuất khỏi trò chơi và đăng nhập lại bằng một tài khoản khác.

Bây giờ, chúng tôi đã cập nhật ứng dụng với khả năng nâng cấp người dùng lên người dùng cao cấp. Cho phép thống kê trò chơi cá nhân và toàn cầu.

Nhưng Apple đang khiến chúng tôi đau đầu trong quá trình phê duyệt và từ chối chấp nhận Mua hàng trong ứng dụng của chúng tôi. Đầu tiên họ sẽ không chấp nhận nó, vì nó không có nút khôi phục. Sau đó, khi chúng tôi nói với họ, một nút khôi phục là không cần thiết, vì nó là một mua hàng tiêu thụ, bây giờ họ yêu cầu chúng tôi thay đổi nó thành một không tiêu hao và thêm nút khôi phục.

Hãy xem xét trường hợp này nếu mua hàng không tiêu thụ được. bản ghi

  1. người dùng trong.
  2. nâng cấp tài khoản tài khoản để bảo hiểm
  3. tài khoản đăng xuất.
  4. Đăng nhập người dùng bằng một tài khoản khác.
  5. Người dùng khôi phục giao dịch mua trước đó.

Điều này sẽ cho phép bạn nâng cấp hai tài khoản lên cao cấp, nhưng chỉ với một lần mua.

Đối số của Apple là, người dùng của chúng tôi cần có thể khôi phục mua hàng, nếu thiết bị mới được thiết lập hoặc thiết bị được khôi phục.

Nhưng đó không phải là cách hoạt động. Người dùng nâng cấp tài khoản của họ lên tài khoản cao cấp. Bây giờ khi họ mua thiết bị mới hoặc khôi phục thiết bị hiện có, họ chỉ cần đăng nhập bằng tài khoản trò chơi hiện có của họ và nâng cấp sẽ khả dụng vì chúng tôi ở phía máy chủ đã đánh dấu tài khoản là tài khoản trả phí.

Vì vậy, câu hỏi của tôi về cơ bản là vậy. Chúng ta hoàn toàn sai, khi chúng ta chọn sử dụng một vật phẩm thay vì không tiêu hao được. Và nếu vậy, làm thế nào không nên tiêu thụ được thực hiện để được (có khả năng) mua nhiều hơn một lần với các tài khoản trò chơi khác nhau trên cùng một thiết bị?

Và thứ hai, nếu chúng ta chính xác về việc sử dụng mua hàng trong ứng dụng tiêu hao, chúng ta nên nói gì để thuyết phục Apple, rằng chúng ta đang đi đúng hướng?

Trả lời

4

Nếu tài khoản đặc biệt của bạn là thứ mà người dùng của bạn chỉ phải mua một lần thì Apple chắc chắn sẽ yêu cầu bạn chuyển sang ứng dụng không tiêu thụ trong ứng dụng.

Kịch bản bạn mô tả là hoàn toàn có thể (tôi cũng phải đối mặt với nó) nhưng nếu bạn thêm xác minh phía máy chủ hóa đơn trong ứng dụng trước khi mở tính năng cao cấp (lưu tất cả giao dịch được liên kết với người dùng), bạn có cơ hội để xác minh rằng giao dịch mua mới hoặc được khôi phục, hãy kiểm tra các trường original_transaction_idoriginal_purchase_date trong dữ liệu biên lai. Bằng cách này, bạn có thể xem liệu người dùng khôi phục giao dịch mua có giống với mua ban đầu hay không (có thể kiểm tra id người dùng facebook của họ).

Dù sao, kinh nghiệm cho tôi thấy rằng nguy cơ xảy ra điều này là không thực sự cao và tôi sẽ không khuyên bạn nên thực hiện việc kiểm tra này (mặc dù xác nhận phía máy chủ là hầu như luôn luôn phải ;-))

+0

Cám ơn câu trả lời của bạn. Tôi đã thực hiện điều này và nó hoạt động. Khi người dùng khôi phục giao dịch mua với người dùng khác, giờ đây, người mua sẽ nói rằng giao dịch mua thuộc về một tài khoản khác. NHƯNG. Nếu người dùng sau đó nhấn mua, App Store sẽ cho phép nó "tải xuống" nó một lần nữa, nhưng miễn phí. Và điều này tôi không thể bắt được. – Trenskow

+0

Điểm, tôi nghĩ, là để xác định xem "chủ sở hữu" của tính năng cao cấp thực sự là người dùng của bạn hoặc tài khoản id apple. Tôi nghĩ rằng nó nói chung là an toàn để nói rằng nó được liên kết với tài khoản id apple kể từ khi mua được thực hiện với Apple (đó là lý do tại sao tôi nói rằng tôi đã không thực hiện kiểm tra này trong dự án của tôi). Cuối cùng, có, bạn có thể khôi phục các giao dịch mua được thực hiện bằng một id apple cho nhiều tài khoản người dùng nhưng kịch bản này vẫn chưa được phổ biến lắm – andreagiavatto

2

Theo phần 'Khôi phục Giao dịch' của In-App Purchase Programming Guide:

Nếu ứng dụng của bạn hỗ trợ các loại sản phẩm mà phải restorable, bạn phải bao gồm một giao diện cho phép người dùng để khôi phục lại những vụ mua bán.

Nếu ứng dụng của bạn chứa giao dịch mua không tiêu hao và nếu bạn không bao gồm nút khôi phục, Apple sẽ không phê duyệt ứng dụng của bạn.

này đã được thực hiện cần thiết bởi táo sau tháng năm 2012.

Vì vậy, để trả lời câu hỏi của bạn: Không, có vẻ như bạn phải sử dụng restoreCompletedTransactions.

Hy vọng nó sẽ giúp bạn.

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