2013-04-26 39 views
10

Tôi đã có một ứng dụng hoàn toàn miễn phí được xuất bản tại cửa hàng Google Play.Thanh toán trong ứng dụng của Google Play tặng một mặt hàng miễn phí

Vì ứng dụng phổ biến hơn tôi nghĩ, nên tôi quyết định khóa một số tính năng và yêu cầu thanh toán trong ứng dụng trước khi sử dụng. Tuy nhiên, tôi thích rằng tất cả người dùng hiện tại sẽ tiếp tục được hưởng các tính năng cao cấp miễn phí.

Vì vậy, tôi nghĩ về những điều sau đây:

  • Tải lên một phiên bản với thanh toán trong ứng dụng miễn phí, do đó người dùng hiện tại sẽ "mua" nó miễn phí.
  • Sau một khoảng thời gian nhất định bắt đầu tính phí cho các mặt hàng, nhưng kể từ người dùng hiện tại đã sở hữu các mặt hàng cao cấp họ sẽ không bị bị tổn thương.

Có cách nào để cấp cho một số người dùng một mục cho "miễn phí" không? Trong tài liệu thanh toán trong ứng dụng được viết rằng phải có giá cho tất cả các mục thanh toán trong ứng dụng.

Trả lời

3

Không có cách nào trực tiếp để làm điều đó từ google. Bạn sẽ có 2 thử nghiệm các trường hợp: -

  1. người dùng hiện tại
  2. New user Bạn cần phải lưu trữ độc đáo user-id trên máy chủ của bạn và khi bạn thực hiện trong ứng dụng của bạn trong ứng dụng gửi thông điệp này sử dụng id để bạn máy chủ.

Trường hợp 1: - Máy chủ của bạn sẽ khớp với DB hiện tại nếu nó khớp với thông báo thành công về id.

Trường hợp 2: - Đối với người dùng mới cùng với id người dùng này, ứng dụng của bạn sẽ gửi mã thông báo đến máy chủ của bạn để xác minh và sau khi xác minh việc mua máy chủ của bạn sẽ gửi tin nhắn thành công.

Tác vụ chung: - Khi ứng dụng của bạn bắt đầu, bạn nên luôn gọi restoreTransaction() sau đó bạn sẽ nhận được danh sách từ google chứa thông tin về các mặt hàng đã mua và bạn sẽ mở khóa nội dung đó. Đảm bảo bạn có triển khai xác minh máy chủ trong ứng dụng của mình.

+0

Cảm ơn câu trả lời của bạn. Tôi không nghĩ đến việc giữ một id người dùng duy nhất. Đó là một ý kiến ​​tuyệt vời! Tuy nhiên, điều đó không hữu ích đối với tôi, vì ứng dụng chỉ là ứng dụng khách và tôi không có thời gian để triển khai phía máy chủ ngay bây giờ. Tôi chấp nhận câu trả lời của bạn vì đây là cách nó nên được thực hiện. Giải pháp cho tôi, sẽ không chỉ tính phí cho những người dùng nâng cấp, nhưng lần sau, khi họ cài đặt một ứng dụng trên thiết bị khác, họ sẽ bị tính phí. – liovka

+0

cách bạn sẽ kiểm tra xem người dùng có nâng cấp ứng dụng hay cài đặt mới vì khi người dùng nâng cấp bất kỳ ứng dụng nào có tệp apk đầy đủ được tải xuống từ google play và cài đặt lại ứng dụng trên thiết bị theo cách tương tự như cài đặt ứng dụng mới? – Ankit

+0

Tôi biết những gì bạn đã viết. Bạn không nghĩ rằng nó có thể là một sự thỏa hiệp công bằng để bắt đầu tính phí khách hàng cho mỗi cài đặt hoàn toàn mới? – liovka

2

Đây là cách bạn có thể thực hiện một phần những gì mà bạn mong muốn, mà không sử dụng một máy chủ:

  1. Cập nhật ứng dụng của bạn với một phiên bản mới cho phép ghi một giá trị duy nhất để SharedPreferences. Giá trị này phải là một mã băm của một ID duy nhất cho thiết bị (hoặc ít nhất, không phải nhiều thiết bị khác sẽ chia sẻ). Lý do giá trị phải tương đối duy nhất là ngăn không cho nó được chia sẻ giữa những người dùng sau này. Nếu bạn muốn nó tồn tại khi cài đặt lại, bạn cũng có thể ghi nó vào một vùng bộ nhớ ngoài của người dùng sẽ không bị xóa khi ứng dụng của bạn được cài đặt.

  2. Chờ một thời gian đủ dài để hầu hết người dùng hiện tại của bạn sẽ cập nhật lên phiên bản mới. Trong quá trình này, bất kỳ người dùng mới nào trong giai đoạn này cũng sẽ nhận được giá trị duy nhất trong SharedPreferences của họ.

  3. phát hành một phiên bản mới mà không không viết ID duy nhất, và cho phép các tính năng mà bạn muốn để sạc chỉ nếu hoặc ID là hiện tại, hoặc nếu người dùng đã thanh toán qua thanh toán trong ứng dụng.

Đây không phải là hoàn hảo, nhưng nó có thể cho phép ít nhất nhất của người sử dụng hiện tại của bạn để tiếp tục truy cập vào các tính năng.

Tôi không biết điều này có vi phạm thỏa thuận của bạn với Google Play hay không và bạn sẽ cần tự mình kiểm tra vấn đề đó. Thực tế là bạn đã trình bày ứng dụng cho người dùng hiện tại của mình là miễn phí và bây giờ muốn tính phí cho một số tính năng của nó có thể được coi là một sự trình bày sai trừ khi bạn của bạn trong người dùng hiện tại của bạn và cách tiếp cận mà tôi đã phác thảo không đảm bảo rằng tất cả người dùng hiện tại sẽ được cấp quyền truy cập thành công.

Lưu ý rằng cách tiếp cận được gửi trong một câu trả lời khác yêu cầu sử dụng máy chủ của riêng bạn có vẻ giống nhau, vì bạn cần phát hành phiên bản ứng dụng mới có mã để giao tiếp với máy chủ của bạn không có cách nào để buộc người dùng hiện tại của bạn cập nhật lên phiên bản mới trong một khoảng thời gian cụ thể. Nếu không, bạn sẽ thu thập các ID duy nhất xác định người dùng hiện tại của bạn trên cơ sở dữ liệu của máy chủ như thế nào, vì người dùng ứng dụng miễn phí thường không được nhà phát triển biết đến?

Một cách tiếp cận sạch sẽ có thêm tính năng mới được tích hợp chặt chẽ với các tính năng hiện có, làm cho chúng có giá trị hơn, và cũng có thể thực hiện bất kỳ nội dung đã nhập bằng cách sử dụng tính năng có giá trị hơn. Bạn có thể tiếp tục cung cấp các tính năng hiện có miễn phí nhưng tính phí cho các tính năng mới.

Bằng cách sử dụng cách tiếp cận này, sẽ không có người dùng hiện tại nào bị tước chức năng và bạn cũng có thể tính phí người dùng hiện tại của mình (và không chỉ người dùng mới) cho các tính năng giá trị gia tăng. Sử dụng phương pháp này có thể không chỉ dễ chịu hơn cho người dùng của bạn mà còn có khả năng mang lại nhiều lợi nhuận hơn cho bạn, vì bạn sẽ có toàn bộ cơ sở người dùng hiện tại của mình làm khách hàng tiềm năng trả tiền.

Ngoài ra, bạn có thể xem xét mức độ phổ biến hiện tại của ứng dụng có thể là do các tính năng mà bạn hiện muốn tính phí. Và vì vậy, bạn có thể không thu hút một luồng người dùng mới liên tục khi các tính năng đó không còn miễn phí nữa.

+0

cảm ơn câu trả lời kỹ lưỡng của bạn. Tôi đang lên kế hoạch để làm một cái gì đó tương tự như những gì bạn đã đề xuất. 1) Tôi sẽ theo dõi người dùng hiện tại (nhiều nhất có thể) bằng cách sử dụng SharedPreferences. Tôi thậm chí không cần phải phát hành một phiên bản trung gian vì tôi có thể biết liệu một người dùng có cập nhật hay không bằng cách kiểm tra một số dữ liệu trong cơ sở dữ liệu sqlite mà ứng dụng được lưu trữ. 2) Tôi sẽ thêm các nội dung thú vị vào các tính năng mà tôi sẽ tính phí. – liovka

+1

Chỉ cần nhớ rằng SharedPreferences sẽ biến mất khi gỡ cài đặt và nếu người dùng có nhiều thiết bị, giá trị có thể không tự động khả dụng trên các thiết bị đó nếu được cài đặt ở đó sau này. Tính phí cho chức năng hoàn toàn mới vẫn có vẻ là cách tiếp cận rõ ràng nhất với tôi, nhưng bạn biết ứng dụng và người dùng của mình, tốt hơn nhiều nên có thể phân biệt giữa người dùng hiện tại và tương lai là một cách tiếp cận tốt. Tôi e rằng việc tiếp tục phân biệt giữa hai lớp người dùng của bạn có thể biến thành một cơn đau đầu thực sự. – Carl

+0

Ngoài ra, nếu bạn đang sử dụng giá trị hiện có được ghi vào cơ sở dữ liệu cục bộ để phân biệt giữa người dùng mới và người dùng mới, có khả năng giá trị đó có thể bị giả mạo, trừ khi bạn đã có quy trình xác thực cho nó (như tôi được mô tả trong câu trả lời của tôi). – Carl

0

Mặc dù không khả thi cho các ứng dụng có số lượt tải xuống đáng kể, kể từ tháng 1 năm 2016, bạn có thể cấp tối đa 500 mã khuyến mại cho mỗi ứng dụng mỗi quý.

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