2013-02-28 23 views
8

Tôi có ứng dụng phải trả phí trên Google Play hôm nay, tôi muốn thay đổi thành ứng dụng miễn phí với 3 lần mua hàng trong ứng dụng. Vấn đề là do làm thế nào để "cung cấp" mua hàng trong ứng dụng cho khách hàng hiện tại, đã trả tiền cho ứng dụng.Thay đổi ứng dụng Android trả phí thành miễn phí với Thanh toán trong ứng dụng - đang cố gắng khách hàng hiện tại

Tôi chỉ có một ý tưởng - có thể cấp phép làm thủ thuật?

Ứng dụng trả tiền hiện có sử dụng cấp phép của Google, nhưng điều đó không cần thiết nữa khi tất cả các tính năng được mua dưới dạng mua hàng trong ứng dụng - phải không? Vì vậy, tất cả khách hàng hiện tại đều có giấy phép, trong khi tất cả khách hàng mới không cần giấy phép.

Có thể kiểm tra giấy phép hay không và trong trường hợp nó được cấp cho người dùng quyền truy cập vào các tính năng tương tự như 3 lần mua hàng trong ứng dụng sẽ cấp quyền truy cập?

Trả lời

2

Theo tôi biết, không có cách nào tốt để cung cấp cho người dùng mua hàng trong ứng dụng miễn phí khi giao dịch mua chưa được miễn phí (ví dụ: thông qua phiếu giảm giá).

Có một cuộc thảo luận về một số cách có thể để làm điều này tại How can I use the paid version of my app as a “key” to the free version?

Một cách để làm điều này sẽ có một số mã để kiểm tra cho "người sử dụng di sản" (những người có ứng dụng trả tiền cũ được cài đặt), và đặt tùy chọn trên thiết bị của họ gắn cờ họ là có ứng dụng trả phí.

Bạn sẽ gặp sự cố nếu người dùng chuyển đổi điện thoại hoặc gỡ cài đặt rồi cài đặt lại ứng dụng của bạn. Bạn có thể phá vỡ điều này bằng cách thêm bộ sản phẩm trong ứng dụng thứ hai cho người dùng cũ miễn phí nhưng chỉ được cung cấp cho những người dùng đã cài đặt ứng dụng cũ. Sau khi họ mua các phiên bản cũ miễn phí, họ có thể gỡ cài đặt ứng dụng cũ. Sau đó, bất cứ khi nào bạn kiểm tra các sản phẩm đã mua, bạn kiểm tra xem sản phẩm cũ hay sản phẩm mới.

1

Tôi nghĩ bạn có thể làm một cái gì đó như thế này, để xác minh rằng ứng dụng "chuyên nghiệp" có sẵn và được ký bởi cùng một chữ ký.

public boolean isProAppPresent() 
{ 
    try 
    { 
     PackageInfo info = context.getPackageManager().getPackageInfo("x.x.x.pro", 
       PackageManager.GET_META_DATA); 
     Log.d(TAG, "Pro app is installed: " + info.applicationInfo.name); 
     return context.getPackageManager().checkSignatures("x.x.x", 
       "x.x.x.pro") == PackageManager.SIGNATURE_MATCH; 
    } 
    catch (NameNotFoundException e) 
    { 
     return false; 
    } 
} 

Thật dễ dàng để làm, nhưng tôi không chắc đó có phải là sự bảo vệ hoàn toàn hay không.

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