5

Tôi có một ứng dụng cho nhiều nền tảng khác nhau. Hãy để chúng là iOS, Android và Windows. Để sử dụng một ứng dụng, một khoản phí hàng tháng cần phải được thanh toán, nhưng nó chỉ cần được trả một lần để sử dụng tất cả các nền tảng. Nó giống với Spotify, vì vậy bằng cách trả tiền một lần, mọi nền tảng đều có thể được sử dụng.Duy trì và tổ chức mua hàng trên nhiều nền tảng

Theo nguyên tắc của Google và Apple, tôi cần cung cấp Mua hàng trong ứng dụng cho khoản phí hàng tháng. Hệ thống được kết nối với tài khoản người dùng, được quản lý bởi một máy chủ, đó là trong tầm kiểm soát của tôi. Tôi đang lưu trữ dữ liệu đăng ký của người dùng, vì vậy nếu người dùng sử dụng Mua hàng trong ứng dụng trên iOS, thông tin sẽ được truyền tới máy chủ trung tâm để mở khóa Ứng dụng Android (trong trường hợp nó đã được thanh toán trên nền tảng khác đã)

Sự cố xảy ra với trường hợp sau: Người dùng có đăng ký hợp lệ đã được thanh toán qua Google Play. Ứng dụng iOS và Windows cũng được mở khóa. Giờ đây, người dùng đã gỡ cài đặt ứng dụng Android, truy cập trang web Google Play và hủy đăng ký. Trong kịch bản hiện tại, tôi không thể phát hiện điều này và đăng ký sẽ hợp lệ cho tất cả các nền tảng khác.

Câu hỏi đặt ra là: Có mẫu nào để phá vỡ vấn đề này không? Spotify và co cũng đang giải quyết vấn đề này, do đó, phải có giải pháp cho

Trả lời

1

Vâng, máy chủ xử lý ủy quyền của người dùng (nghĩa là máy chủ của bạn) nên truy vấn API đăng ký của Google, để kiểm tra xem đăng ký hiện tại vẫn hợp lệ. Mỗi tài nguyên SubscriptionPurchase chứa thông tin về thời điểm đăng ký hết hạn.

(xem https://developers.google.com/android-publisher/api-ref/purchases/subscriptions)

Đối với Apple, những thứ này cũng áp dụng: Bạn sẽ nhận được biên lai, và với nhận điều đó, bạn có thể truy vấn các máy chủ bất cứ lúc nào để kiểm tra xem thuê bao vẫn còn hiệu lực.

Có một slide mà tóm tắt những điểm này và những cạm bẫy rất tốt: https://speakerdeck.com/rosapolis/the-recurring-nightmare-cross-platform-in-app-subscription-purchases

Bottom line: Bạn sẽ không thể làm cho điều đó xảy ra mà không có một máy chủ mà không được truyền thông giữa hai cửa hàng. Nó đi kèm với các vấn đề, mặc dù, như trình chiếu.

Phần thưởng: The talk from which the slides are taken is also on Youtube

+1

Điểm với API đăng ký của Google hợp lệ, tôi đã sử dụng phần này. Tôi không chắc chắn về phần Apple, tôi sẽ kiểm tra điều này. Cảm ơn bạn cho đến nay :-) – thardes2

+1

Điều quan trọng là [this] (https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html) bài viết từ apple. Theo quan điểm của tôi, cách dễ nhất là một số giao diện trên máy chủ tin cậy, chuyển tiếp các yêu cầu đó đến các máy chủ apple. Cảm ơn sự giúp đỡ của bạn :-) – thardes2

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