2013-07-12 33 views
6

Trình đánh giá AppStore yêu cầu chúng tôi mua loại Non-renewing subscriptions sẽ không bắt buộc người dùng đăng ký. Anh ấy cũng có nghĩa là người dùng không đăng ký anh ấy cũng có thể mua Non-renewing subscriptions loạiKhôi phục giao dịch cho đăng ký không gia hạn mà không cần đăng ký

và tài liệu Apple yêu cầu phải được khôi phục Non-renewing subscriptions. Ông cho biết:

Đăng ký không đổi mới và các sản phẩm tiêu hao không được tự động khôi phục bởi Bộ lưu trữ. Tuy nhiên, các đăng ký không gia hạn phải được khôi phục. Để khôi phục các sản phẩm này, bạn phải ghi lại các giao dịch trên máy chủ của riêng mình khi chúng được mua và cung cấp cơ chế của riêng bạn để khôi phục các giao dịch đó cho thiết bị của người dùng.

Vì vậy, khi người dùng đăng ký, tôi sẽ cung cấp cho người dùng một userId duy nhất, anh ấy có thể chia sẻ thông tin người dùng với tên người dùng và mật khẩu của mình, để tôi có thể chia sẻ các giao dịch, bởi vì họ có một userId duy nhất.

Nhưng vấn đề là: khi người dùng không đăng ký, máy chủ của tôi cũng sẽ cung cấp cho họ một userId duy nhất, người dùng không đăng ký sẽ lưu userId vào .plist. Họ cũng có thể khôi phục các giao dịch. Nhưng khi anh ta xóa ứng dụng của tôi, và sau đó tải xuống một lần, userId bị mất, vì vậy anh ta không thể khôi phục lại các giao dịch. Anh ấy sẽ là người dùng mặc định bình thường.

Liệu Appstore sẽ từ chối ứng dụng của tôi với lý do:

không thể khôi phục giao dịch cho Non-đổi mới đăng ký mà không cần đăng ký, mà xóa các ứng dụng trước khi khôi phục

Nếu Appstore sẽ từ chối, làm thế nào để sửa chữa nó, thx tất cả.

+0

Tôi lo ngại về ý tưởng đưa userId cho người dùng hoặc lưu trữ nó vào .plist. Điều gì xảy ra nếu người dùng độc hại đăng trực tuyến userId này? Điều đó sẽ phá vỡ an ninh của bạn, phải không? (Thông tin .plist có sẵn thông qua các chương trình như iExplorer). –

+0

@ChrisPrince Anh ấy có thể đăng trực tuyến userId của mình nhưng máy chủ của chúng tôi có danh sách giao dịch. Một thuê bao (không được sử dụng) có thể được khôi phục thành công chỉ một lần. Nếu anh ấy đăng bài cho người khác, một trong những người khác có thể khôi phục thành công và anh ấy không thể khôi phục. Vì vậy, điều đó sẽ không phá vỡ an ninh của tôi. –

+0

@ChrisPrince Lưu ý rằng: các giao dịch là quan trọng. UserId chỉ có nghĩa là khôi phục cho ai. Một số tin tặc đánh cắp các giao dịch của bạn và sau đó bán các giao dịch cho người dùng khác. –

Trả lời

4

Tôi đã gửi ứng dụng của mình đến appStore.

Tôi khôi phục giao dịch cho đăng ký không gia hạn đăng ký hoặc đăng nhập.

Tôi không khôi phục giao dịch cho các đăng ký không gia hạn không "đăng ký" và "xóa ứng dụng của tôi".

Ứng dụng của tôi được chấp thuận

+0

Điều đó có nghĩa là họ có thể chấp nhận một ứng dụng không khôi phục được giao dịch mua nếu iCloud không đăng nhập. bạn nghĩ sao? – hasan83

+0

@hasan Ứng dụng của tôi hỗ trợ iOS4.3 +, vì vậy không có iCloud. Và tôi không tìm thấy một cách hoàn hảo để 'khôi phục giao dịch cho đăng ký không gia hạn mà không cần đăng ký, xóa ứng dụng trước khi khôi phục. Tôi sẽ khôi phục giao dịch cho người dùng đăng nhập và khôi phục giao dịch cho khách không xóa ứng dụng của tôi –

+0

Điều này rất hữu ích . Tôi đang theo một chiến lược tương tự cho ứng dụng của mình nhưng chưa gửi nó. –

1
  • Đăng ký doanh nghiệp phải có tùy chọn cho các hạng mục inapp không tái tạo được.
  • Bạn có thể cung cấp cho họ thông báo rằng nếu bạn muốn sử dụng trên nhiều thiết bị, thì bạn phải Đăng ký và đăng nhập.
  • Trong khi đăng ký, thông tin cá nhân như email và điện thoại di động không phải là tùy chọn và bạn phải giải thích cụ thể tại sao bạn giữ email trong quá trình đăng ký (ví dụ như khôi phục mật khẩu).
  • Cũng giống như bình luận trước đó, nếu inapp cho mục không tái tạo không phải là quá đắt, họ có thể chấp nhận các ứng dụng. Nhưng nếu, inapp là tốn kém, họ sẽ không cho phép bạn phá vỡ bất kỳ quy tắc của họ.

Lưu ý: Bạn có thể sử dụng một cơ chế để sử dụng UUID và lưu trữ nó trong móc khóa.Nếu bạn cài đặt lại ứng dụng, bạn có thể lấy lại nó từ keychain và sử dụng cùng một UUID, bạn có thể quản lý hết hạn tại máy chủ của mình.

1

của Apple cho thấy sử dụng iCloud để tồn tại dữ liệu mua:

#if USE_ICLOUD_STORAGE 
NSUbiquitousKeyValueStore *storage = [NSUbiquitousKeyValueStore defaultStore]; 
#else 
NSUserDefaults *storage = [NSUserDefaults standardUserDefaults]; 
#endif 

NSData *newReceipt = transaction.transactionReceipt; 
NSArray *savedReceipts = [storage arrayForKey:@"receipts"]; 
if (!receipts) { 
    // Storing the first receipt 
    [storage setObject:@[newReceipt] forKey:@"receipts"]; 
} else { 
    // Adding another receipt 
    NSArray *updatedReceipts = [savedReceipts arrayByAddingObject:newReceipt]; 
    [storage setObject:updatedReceipts forKey:@"receipts"]; 
} 

[storage synchronize]; 

Ít nhất đó là tốt hơn so với ném đi thông tin mua hàng, khi người dùng xóa các ứng dụng. Làm cho khách hàng trả tiền hai lần cho một dịch vụ, không phải là trải nghiệm người dùng tuyệt vời.

+0

transactionReceipt không được chấp nhận. – user965972

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