Triển khai web paywall trong Kotlin Multiplatform SDK

Trước khi bắt đầu, hãy đảm bảo bạn đã cấu hình web paywall trong dashboard và cài đặt Adapty SDK phiên bản 3.15 trở lên.

Mở web paywall

Nếu bạn đang làm việc với paywall do chính bạn phát triển, bạn cần xử lý web paywall bằng phương thức SDK. Phương thức openWebPaywall:

  1. Tạo một URL duy nhất giúp Adapty liên kết paywall cụ thể được hiển thị cho người dùng với trang web mà họ được chuyển hướng đến.
  2. Theo dõi khi người dùng quay lại ứng dụng, sau đó gọi getProfile theo chu kỳ ngắn để xác định xem quyền truy cập của hồ sơ người dùng có được cập nhật hay không.

Nhờ đó, nếu thanh toán thành công và quyền truy cập được cập nhật, gói đăng ký sẽ kích hoạt trong ứng dụng gần như ngay lập tức.

Sau khi người dùng quay lại ứng dụng, hãy làm mới giao diện để phản ánh các cập nhật hồ sơ người dùng. Adapty sẽ nhận và xử lý các sự kiện cập nhật hồ sơ người dùng.


viewModelScope.launch {
    Adapty.openWebPaywall(product = product).onSuccess {
        // the web paywall was opened successfully
    }.onError { error ->
        // handle the error
    }
}

Có hai phiên bản của phương thức openWebPaywall:

  1. openWebPaywall(product = product) tạo URL theo paywall và thêm dữ liệu sản phẩm vào URL.
  2. openWebPaywall(paywall = paywall) tạo URL theo paywall mà không thêm dữ liệu sản phẩm vào URL. Dùng khi các sản phẩm trong Adapty paywall của bạn khác với các sản phẩm trong web paywall.

Trong SDK v4, tham số paywall được thay thế bằng tham số flowPaywall nhận một AdaptyFlowPaywall — một trong các biến thể paywall trong flow.paywalls. Xem hướng dẫn migration.

Mở web paywall trong trình duyệt trong ứng dụng

Theo mặc định, web paywall sẽ mở trong trình duyệt bên ngoài.

Để mang lại trải nghiệm liền mạch cho người dùng, bạn có thể mở web paywall trong trình duyệt tích hợp ngay trong ứng dụng. Cách này hiển thị trang mua hàng trực tiếp bên trong ứng dụng của bạn, giúp người dùng hoàn tất giao dịch mà không cần chuyển sang ứng dụng khác.

Để bật tính năng này, đặt tham số openIn thành AdaptyWebPresentation.IN_APP_BROWSER:


viewModelScope.launch {
    Adapty.openWebPaywall(
        product = product,
        openIn = AdaptyWebPresentation.IN_APP_BROWSER // default – EXTERNAL_BROWSER
    ).onSuccess {
        // the web paywall was opened successfully
    }.onError { error ->
        // handle the error
    }
}