2012-07-03 24 views
14

Tôi đang phát triển một ứng dụng mà người dùng có thể mua bản đồ kỹ thuật số, biểu đồ, v.v. Tôi muốn gói những thứ này trong mua hàng trong ứng dụng. Vấn đề là tôi không biết trước bao nhiêu biểu đồ sẽ có, khi tôi nhận được chúng từ một nguồn khác từ mạng. Có thể có hàng trăm.Trong Mua ứng dụng: tự động thêm các mục không tiêu thụ

Tôi có một máy chủ định kỳ lấy các biểu đồ từ nguồn đó và lưu trữ chúng cục bộ; có thể xuất hiện các biểu đồ mới trong tương lai hoặc biến các biểu đồ hiện tại. Tất cả điều này mà không có sự can thiệp thủ công.

Có ba loại biểu đồ riêng biệt.

Giải pháp đầu tiên của tôi là tạo ra ba mặt hàng tiêu hao và cho phép người dùng mua những mặt hàng này; điều này đã được làm việc tốt nhưng tiếc là Apple từ chối nó, vì họ yêu cầu các bảng xếp hạng là "không tiêu hao".

Nhưng tôi hoàn toàn mất mát cách triển khai những gì tôi muốn với loại không tiêu hao. Nếu tôi tạo ba loại này là không tiêu thụ được và người dùng mua một cái, anh ta sẽ nhận được tất cả các biểu đồ khác trong nhóm đó miễn phí, vì một mục không thể tiêu thụ chỉ có thể được mua một lần.

Giải pháp duy nhất tôi có thể nghĩ đến là tạo mục không tiêu hao cho mọi biểu đồ. Nhưng đó là điều tôi muốn tránh bằng mọi giá: như bây giờ, các biểu đồ được định kỳ lấy từ nguồn từ xa mà không có bất kỳ công việc thủ công nào bên cạnh tôi. Tôi muốn giữ nó theo cách đó. Tôi không muốn tạo thủ công các giao dịch mua không tiêu thụ mới mỗi khi biểu đồ mới xuất hiện.

Bất kỳ ý tưởng nào về cách tạo khả năng mở rộng này?

Trả lời

18

Tôi không thể viết hoàn toàn cho bạn bằng mã nhưng bạn có thể xử lý vấn đề này theo hai cách:

Đơn vị tiền tệ. Bạn không bán các mặt hàng không tiêu hao như bản đồ. Bạn bán tiền tệ. Với loại tiền tệ đó bạn mua bản đồ. Bản đồ bạn cung cấp động bất cứ khi nào người dùng truy cập vào cửa hàng của bạn. Bằng cách đó, bạn chỉ cần theo dõi một số tùy chọn mua hàng.

Tùy chọn khác: Công ty tôi đã làm việc ban đầu thiết lập điều này rất đơn giản. Ứng dụng của chúng tôi sẽ khởi chạy và chúng tôi sẽ liên hệ với một tập lệnh php đã đưa chúng tôi trở lại ID cửa hàng ứng dụng mà chúng tôi đã đặt trong đó. Tại thời điểm đó, chúng tôi sẽ xác minh chúng và sử dụng các trả về hợp lệ. Tùy chọn này cho phép chúng tôi thay đổi giao dịch mua ứng dụng thông qua iTunes Connect và sau đó trong kịch bản và mọi thứ đều tuyệt vời.

+0

Mô hình tiền tệ có vẻ thú vị, bạn có thể giải thích chi tiết hơn một chút không? Liệu đơn vị tiền tệ trong ứng dụng có thể tiêu thụ được không? Để tôi có một mặt hàng mua trong ứng dụng, ví dụ: "Tiền tệ bản đồ" (có thể tiêu thụ) và với người dùng đó có thể tải xuống bất kỳ bản đồ nào từ máy chủ? Tôi tự hỏi nếu điều đó sẽ không hoàn toàn vòng quanh hướng dẫn của Apple trong ứng dụng mua hàng và họ sẽ từ chối nó trên cơ sở đó. Cảm ơn –

+0

OK, theo Nguyên tắc đánh giá của App Store (phần 11.4), sử dụng tiền tệ trong ứng dụng là OK miễn là nó không hết hạn và nó được tiêu thụ từ bên trong ứng dụng. Tôi nghĩ tôi sẽ thử con đường này. Cảm ơn đã chỉ cho tôi đến nó, tiền thưởng được trao! –

+0

@ThomasWana Tò mò để biết, Điều này có được phê duyệt bởi quả táo không? –

2

Tôi nghĩ giới hạn của bạn đối với các mặt hàng là thứ gì đó khổng lồ như 10.000 hoặc hơn.

Tạo trước một số lượng lớn các mục, thêm một số mã để kiểm tra trang web của bạn để xem số biểu đồ cao nhất của bạn là gì và đảm bảo người dùng chỉ có thể mua biểu đồ mà bạn có.

Ứng dụng tải xuống tên biểu đồ và id sản phẩm tương ứng từ máy chủ của bạn và sau đó bạn chỉ mua sản phẩm.

Apple không quan tâm nếu sản phẩm thực tế đã có trong ứng dụng và mở khóa bằng cách mua, tải xuống từ máy chủ của họ hoặc được cung cấp từ trang web của bạn.

+0

Tôi đã tò mò về giới hạn mục quá. "Đối với mỗi ứng dụng, bạn có thể tạo tối đa 1000 sản phẩm Mua hàng trong ứng dụng riêng biệt" ~ [Hướng dẫn cấu hình mua hàng trong ứng dụng cho iTunes Connect: Định cấu hình sản phẩm] (http://developer.apple.com/library/IOS/documentation /LanguagesUtilities/Conceptual/iTunesConnectInAppPurchase_Guide/Chapters/CreatingInAppPurchaseProducts.html#//apple_ref/doc/uid/TP40013727-CH3-SW1) –

3

Cho dù bạn đã mua trực tiếp thông qua IAP hoặc thông qua một số loại tiền tệ trong ứng dụng, bạn có thể đơn giản hóa số lượng công việc bạn cần thực hiện trong tương lai bằng cách sử dụng hệ thống đặt tên. tên cho từng mục bạn muốn bán.Ví dụ:

NSString *myMapName = [NSString stringWithFormat:@"%@%@%@%@", app_identifier, map_type, top_left_corner_location, scale]; 

cách này, nếu máy chủ của bạn đi mà thông tin cho một bản đồ mới, có một cách chương trình để biết những gì nhận dạng IAP nên be- chỉ làm cho nó giá trị của chuỗi myMapName.

Trong trường hợp bạn sử dụng tiền tệ (có vẻ dễ dàng hơn lựa chọn thay thế và có rất nhiều ứng dụng lớn đang hoạt động), bạn chỉ cần tạo băm với một số dữ liệu trong bản đồ để mọi người không thể đoán mã bạn đang lưu trữ trong keychain/plist của họ và kỳ diệu có được tất cả bản đồ của bạn mà không phải trả tiền :)

Trong trường hợp bạn thực sự có IAP riêng cho từng bản đồ, thật đáng buồn là bạn phải tạo IAP cho mọi bản đồ có thể một lần. (Nhưng bạn có thể thuê một số đứa trẻ để làm phần đó cho lương tối thiểu, đúng không? Nó chỉ là nhập dữ liệu) Chúng có thể là vỏ cơ bản, với thông tin thực tế được cung cấp qua máy chủ của bạn như đã mô tả ở trên. đã được mua.

Hy vọng điều này sẽ hữu ích!

5

Đây là một bài cũ, nhưng tôi chỉ có cùng một câu hỏi và phát hiện ra hiện nay là một cách để tự động cung cấp không hàng tiêu dùng bằng cách lưu trữ danh sách nhận dạng sản phẩm trên máy chủ của riêng bạn:

Mỗi sản phẩm bạn bán trong ứng dụng của mình có số nhận dạng sản phẩm duy nhất. Ứng dụng của bạn sử dụng các số nhận dạng sản phẩm này để tìm nạp thông tin về các sản phẩm từ App Store, chẳng hạn như đặt giá và gửi thanh toán yêu cầu khi người dùng mua các sản phẩm đó. Ứng dụng của bạn có thể đọc danh sách số nhận dạng sản phẩm từ một tệp trong gói ứng dụng hoặc tìm nạp chúng từ máy chủ của bạn.

Nếu ứng dụng của bạn có danh sách sản phẩm cố định, chẳng hạn như mua hàng trong ứng dụng để xóa quảng cáo hoặc bật chức năng, hãy nhúng danh sách trong gói ứng dụng . Nếu danh sách số nhận dạng sản phẩm có thể thay đổi mà không cần ứng dụng của bạn cần được cập nhật, chẳng hạn như trò chơi hỗ trợ các cấp bổ sung hoặc ký tự, hãy tải ứng dụng của bạn xuống từ danh sách từ máy chủ của bạn.

Không có cơ chế thời gian chạy để tìm danh sách tất cả sản phẩm được định cấu hình trong iTunes Kết nối cho một ứng dụng cụ thể. Bạn chịu trách nhiệm để quản lý danh sách sản phẩm của ứng dụng và cung cấp thông tin cho ứng dụng của bạn. Nếu bạn cần quản lý một số lượng lớn các sản phẩm , hãy xem xét sử dụng tính năng tải lên/tải xuống XML hàng loạt trong số Kết nối iTunes.

Apple Developer In-App Purchasing Guide

+1

Tốt, tôi sẽ xem xét điều đó, cảm ơn bạn! –

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