Bật tính năng mua hàng trong paywall tùy chỉnh của bạn trong Unity SDK

Hướng dẫn này mô tả cách tích hợp Adapty vào các paywall tùy chỉnh của bạn. Giữ toàn quyền kiểm soát việc triển khai paywall, trong khi Adapty SDK tự động lấy sản phẩm, xử lý các giao dịch mua mới và khôi phục các giao dịch trước đó. Hướng dẫn này sử dụng API của Adapty Unity SDK v4 (beta) — nếu bạn đang dùng v3, hãy xem hướng dẫn migration để biết tên các phương thức tương ứng.

Hướng dẫn này dành cho các nhà phát triển đang triển khai paywall tùy chỉnh. Nếu bạn muốn cách đơn giản nhất để bật tính năng mua hàng, hãy sử dụng Adapty Flow Builder. Với Flow Builder, bạn tạo các flow trong trình chỉnh sửa trực quan không cần code, Adapty xử lý toàn bộ logic mua hàng tự động, và bạn có thể thử nghiệm các thiết kế khác nhau mà không cần phát hành lại ứng dụng.

Trước khi bắt đầu

Thiết lập sản phẩm

Để bật tính năng in-app purchase, bạn cần hiểu ba khái niệm chính:

  • Sản phẩm – bất cứ thứ gì người dùng có thể mua (gói đăng ký, consumable, quyền truy cập trọn đời)
  • Paywalls – cấu hình xác định những sản phẩm nào sẽ được cung cấp. Trong Adapty, paywall là cách duy nhất để lấy sản phẩm, nhưng thiết kế này cho phép bạn chỉnh sửa sản phẩm, giá cả và ưu đãi mà không cần thay đổi code ứng dụng. Trong SDK v4, các biến thể paywall cho một placement được chứa trong đối tượng flow — bạn fetch một flow và truy vấn các sản phẩm của nó.
  • Placements – nơi và thời điểm hiển thị paywall trong ứng dụng của bạn (ví dụ: main, onboarding, settings). Bạn thiết lập paywall cho các placement trên dashboard, sau đó yêu cầu chúng theo placement ID trong code. Điều này giúp bạn dễ dàng chạy A/B test và hiển thị các paywall khác nhau cho từng nhóm người dùng.

Hãy đảm bảo bạn hiểu các khái niệm này ngay cả khi bạn đang làm việc với paywall tùy chỉnh. Về cơ bản, đây là cách bạn quản lý các sản phẩm bán trong ứng dụng.

Để triển khai paywall tùy chỉnh, bạn cần tạo một paywall và thêm nó vào một placement. Thiết lập này cho phép bạn lấy các sản phẩm. Để hiểu những gì bạn cần làm trên dashboard, hãy xem hướng dẫn bắt đầu nhanh tại đây.

Quản lý người dùng

Bạn có thể làm việc có hoặc không có xác thực backend ở phía bạn.

Tuy nhiên, Adapty SDK xử lý người dùng ẩn danh và người dùng đã xác định theo cách khác nhau. Đọc hướng dẫn bắt đầu nhanh về xác định người dùng để hiểu các đặc điểm cụ thể và đảm bảo bạn đang làm việc với người dùng đúng cách.

Bước 1. Lấy danh sách sản phẩm

Để lấy danh sách sản phẩm cho paywall tùy chỉnh, bạn cần:

  1. Lấy đối tượng flow bằng cách truyền ID placement vào phương thức GetFlow.
  2. Lấy mảng sản phẩm cho flow này bằng phương thức GetPaywallProducts.
using AdaptySDK;

void LoadPaywall() {
    Adapty.GetFlow("YOUR_PLACEMENT_ID", (flow, error) => {
        if (error != null) {
            // Handle the error
            return;
        }

        Adapty.GetPaywallProducts(flow, (products, productsError) => {
            if (productsError != null) {
                // Handle the error
                return;
            }

            // Use products to build your custom paywall UI
        });
    });
}

Bước 2. Xử lý thanh toán

Khi người dùng nhấn vào một sản phẩm trên paywall tùy chỉnh của bạn, hãy gọi phương thức MakePurchase với sản phẩm đã chọn. Phương thức này sẽ xử lý flow thanh toán và trả về hồ sơ người dùng đã được cập nhật.

using AdaptySDK;

void PurchaseProduct(AdaptyPaywallProduct product) {
    Adapty.MakePurchase(product, (result, error) => {
        if (error != null) {
            // Handle the error
            return;
        }

        switch (result.Type) {
            case AdaptyPurchaseResultType.Success:
                var profile = result.Profile;
                // Purchase successful, profile updated
                break;
            case AdaptyPurchaseResultType.UserCancelled:
                // User canceled the purchase
                break;
            case AdaptyPurchaseResultType.Pending:
                // Purchase is pending (e.g., user will pay offline with cash)
                break;
        }
    });
}

Bước 3. Khôi phục giao dịch mua

Các cửa hàng ứng dụng yêu cầu tất cả ứng dụng có gói đăng ký phải cung cấp cách để người dùng khôi phục giao dịch mua của họ.

Gọi phương thức RestorePurchases khi người dùng nhấn nút khôi phục. Thao tác này sẽ đồng bộ lịch sử mua hàng của họ với Adapty và trả về hồ sơ người dùng đã được cập nhật.

using AdaptySDK;

void RestorePurchases() {
    Adapty.RestorePurchases((profile, error) => {
        if (error != null) {
            // Handle the error
            return;
        }

        // Restore successful, profile updated
    });
}

Bước 4. Kiểm tra trạng thái gói đăng ký

Sau khi mua hoặc khôi phục, hãy kiểm tra mức độ truy cập của người dùng để quyết định có hiển thị paywall hay mở khóa các tính năng trả phí hay không. Các phương thức MakePurchaseRestorePurchases đã trả về hồ sơ người dùng được cập nhật; bất cứ khi nào bạn cần trạng thái hiện tại ở nơi khác trong ứng dụng, hãy sử dụng phương thức GetProfile:

using AdaptySDK;

void CheckPremiumAccess() {
    Adapty.GetProfile((profile, error) => {
        if (error != null) {
            // Handle the error
            return;
        }

        var hasPremiumAccess =
            profile.AccessLevels.TryGetValue("premium", out var premium) && premium.IsActive;
        // Grant access to paid features if hasPremiumAccess is true
    });
}

Để biết thêm các cách kiểm tra và theo dõi trạng thái gói đăng ký, bao gồm lắng nghe cập nhật theo thời gian thực, xem Kiểm tra trạng thái gói đăng ký.

Bước tiếp theo

Bạn có câu hỏi hoặc gặp sự cố? Hãy xem diễn đàn hỗ trợ của chúng tôi — nơi bạn có thể tìm câu trả lời cho các câu hỏi thường gặp hoặc đặt câu hỏi của riêng mình. Đội ngũ và cộng đồng của chúng tôi luôn sẵn sàng giúp đỡ!

Paywall của bạn đã sẵn sàng để hiển thị trong ứng dụng. Hãy kiểm tra các giao dịch mua hàng trong sandbox App Store hoặc Google Play Store để đảm bảo bạn có thể hoàn tất giao dịch mua thử từ paywall.