Kiểm tra trạng thái đăng ký trong Flutter SDK

Với Adapty, việc theo dõi trạng thái gói đăng ký trở nên dễ dàng hơn bao giờ hết. Bạn không cần phải chèn thủ công ID sản phẩm vào code. Thay vào đó, bạn có thể dễ dàng xác nhận trạng thái gói đăng ký của người dùng bằng cách kiểm tra mức độ truy cập đang hoạt động.

Trước khi bắt đầu kiểm tra trạng thái đăng ký (Nhấn để mở rộng)

Mức độ truy cập và đối tượng AdaptyProfile

Mức độ truy cập là thuộc tính của đối tượng AdaptyProfile. Chúng tôi khuyến nghị bạn lấy hồ sơ người dùng khi ứng dụng khởi động, chẳng hạn như khi bạn xác định người dùng, rồi cập nhật lại mỗi khi có thay đổi. Nhờ vậy, bạn có thể dùng đối tượng hồ sơ người dùng mà không cần gọi lại nhiều lần.

Để nhận thông báo khi hồ sơ người dùng thay đổi, hãy lắng nghe sự kiện cập nhật hồ sơ như mô tả trong phần Lắng nghe cập nhật hồ sơ, bao gồm mức độ truy cập bên dưới.

Muốn xem ví dụ thực tế về cách tích hợp Adapty SDK vào ứng dụng di động? Hãy xem ứng dụng mẫu của chúng tôi, nơi minh họa toàn bộ quá trình thiết lập, bao gồm hiển thị paywall, thực hiện mua hàng và các chức năng cơ bản khác.

Lấy mức độ truy cập từ server

Để lấy mức độ truy cập từ server, dùng phương thức .getProfile():

try {
  final profile = await Adapty().getProfile();
  // check the access
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
}

Tham số trả về:

Tham sốMô tả
Profile

Một đối tượng AdaptyProfile. Thông thường, bạn chỉ cần kiểm tra trạng thái mức độ truy cập của hồ sơ người dùng để xác định xem người dùng có quyền truy cập premium vào ứng dụng hay không.

Phương thức .getProfile luôn cố gắng truy vấn API nên sẽ trả về kết quả mới nhất. Nếu vì lý do nào đó (ví dụ: không có kết nối internet), Adapty SDK không thể lấy thông tin từ server, dữ liệu từ cache sẽ được trả về thay thế. Ngoài ra, Adapty SDK cũng thường xuyên cập nhật cache của AdaptyProfile để đảm bảo thông tin luôn ở trạng thái mới nhất.

Phương thức .getProfile() cung cấp hồ sơ người dùng, từ đó bạn có thể kiểm tra trạng thái mức độ truy cập. Một ứng dụng có thể có nhiều mức độ truy cập. Chẳng hạn, nếu bạn có ứng dụng đọc báo và bán gói đăng ký theo từng chủ đề riêng biệt, bạn có thể tạo các mức độ truy cập “sports” và “science”. Tuy nhiên, trong hầu hết trường hợp, bạn chỉ cần một mức độ truy cập duy nhất — khi đó, hãy dùng mức độ truy cập mặc định “premium”.

Dưới đây là ví dụ kiểm tra mức độ truy cập mặc định “premium”:

try {
  final profile = await Adapty().getProfile();
  if (profile?.accessLevels['premium']?.isActive ?? false) {
        // grant access to premium features
    }
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
}

Lắng nghe cập nhật trạng thái đăng ký

Mỗi khi gói đăng ký của người dùng thay đổi, Adapty sẽ kích hoạt một sự kiện.

Để nhận thông báo từ Adapty, bạn cần thực hiện thêm một số cấu hình:

Adapty().didUpdateProfileStream.listen((profile) {
  // handle any changes to subscription state
});

Adapty cũng kích hoạt một sự kiện khi ứng dụng khởi động. Trong trường hợp này, trạng thái gói đăng ký được lưu trong cache sẽ được truyền vào.

Cache trạng thái đăng ký

Cache được tích hợp trong Adapty SDK lưu trữ trạng thái gói đăng ký của hồ sơ người dùng. Điều này có nghĩa là ngay cả khi server không khả dụng, dữ liệu cache vẫn có thể được truy cập để cung cấp thông tin về trạng thái gói đăng ký của hồ sơ người dùng.

Tuy nhiên, cần lưu ý rằng không thể yêu cầu dữ liệu trực tiếp từ cache. SDK định kỳ truy vấn server mỗi phút để kiểm tra có cập nhật hay thay đổi nào liên quan đến hồ sơ người dùng không. Nếu có bất kỳ thay đổi nào — chẳng hạn như giao dịch mới hoặc các cập nhật khác — chúng sẽ được đồng bộ vào dữ liệu cache để giữ cho cache luôn nhất quán với server.