Kiểm tra trạng thái gói đăng ký trong React Native SDK

Để quyết định xem người dùng có thể truy cập nội dung trả phí hay cần xem paywall hay không, bạn cần kiểm tra mức độ truy cập của họ trong hồ sơ người dùng.

Bài viết này hướng dẫn bạn cách đọc trạng thái hồ sơ người dùng để quyết định nên hiển thị gì — paywall hay nội dung trả phí.

Lấy trạng thái gói đăng ký

Khi quyết định hiển thị paywall hay nội dung trả phí cho người dùng, bạn kiểm tra mức độ truy cập trong hồ sơ của họ. Bạn có hai lựa chọn:

  • Gọi getProfile nếu cần dữ liệu hồ sơ mới nhất ngay lập tức (ví dụ khi khởi chạy ứng dụng) hoặc muốn ép buộc cập nhật.
  • Thiết lập cập nhật hồ sơ tự động để giữ một bản sao cục bộ được tự động làm mới mỗi khi trạng thái gói đăng ký thay đổi.

Lấy hồ sơ người dùng

Cách đơn giản nhất để lấy trạng thái gói đăng ký là dùng phương thức getProfile:

try {
    const profile = await adapty.getProfile();
} catch (error) {
  // handle the error
}

Lắng nghe cập nhật gói đăng ký

Để tự động nhận cập nhật hồ sơ trong ứng dụng:

  1. Dùng adapty.addEventListener('onLatestProfileLoad') để lắng nghe các thay đổi hồ sơ — Adapty sẽ tự động gọi phương thức này mỗi khi trạng thái gói đăng ký của người dùng thay đổi.
  2. Lưu dữ liệu hồ sơ được cập nhật khi phương thức này được gọi, để bạn có thể sử dụng xuyên suốt ứng dụng mà không cần thực hiện thêm các yêu cầu mạng.
class SubscriptionManager {
    private currentProfile: any = null;
    
    constructor() {
        // Listen for profile updates
        adapty.addEventListener('onLatestProfileLoad', (profile) => {
            this.currentProfile = profile;
            // Update UI, unlock content, etc.
        });
    }
    
    // Use stored profile instead of calling getProfile()
    hasAccess(): boolean {
        return this.currentProfile?.accessLevels?.['premium']?.isActive ?? false;
    }
}

Adapty tự động gọi event listener onLatestProfileLoad khi ứng dụng khởi động, cung cấp dữ liệu gói đăng ký đã được cache ngay cả khi thiết bị offline.

Kết nối hồ sơ với logic paywall

Khi cần đưa ra quyết định ngay lập tức về việc hiển thị paywall hay cấp quyền truy cập vào tính năng trả phí, bạn có thể kiểm tra hồ sơ người dùng trực tiếp. Cách tiếp cận này hữu ích cho các tình huống như khi khởi chạy ứng dụng, khi vào các phần premium, hoặc trước khi hiển thị nội dung cụ thể.

const checkAccessLevel = async () => {
  try {
    const profile = await adapty.getProfile();
    return profile.accessLevels['YOUR_ACCESS_LEVEL']?.isActive === true;
  } catch (error) {
    console.warn('Error checking access level:', error);
    return false; // Show paywall if access check fails
  }
};

const initializePaywall = async () => {
  try {
    await loadPaywall();
    
    const hasAccess = await checkAccessLevel();
    if (!hasAccess) {
      // Show paywall if no access
    }
  } catch (error) {
    console.warn('Error initializing paywall:', error);
  }
};

Bước tiếp theo

Bây giờ khi bạn đã biết cách theo dõi trạng thái gói đăng ký, hãy tìm hiểu cách làm việc với hồ sơ người dùng để đảm bảo họ có thể truy cập những gì đã thanh toán.