ÿÿ Adapty Flow Builder Quickstart | Tài liệu Adapty

Bật tính năng mua hàng với Flow Builder trong Kotlin Multiplatform SDK

Hướng dẫn này sử dụng API của Adapty Kotlin Multiplatform 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.

Äể kích hoạt in-app purchase, bạn cần nắm rõ ba khái niệm quan trá»ng:

  • Sản phẩm – má»i thứ ngưá»i dùng có thể mua (gói đăng ký, consumable, quyá»n truy cập trá»n Ä‘á»i)
  • Flow – chuá»—i màn hình trình bày sản phẩm đến ngưá»i dùng, được xây dá»±ng trong Flow Builder không cần code. SDK lấy chúng qua getFlow. Nếu bạn muốn tá»± xây dá»±ng giao diện trong code cá»§a mình, hãy dùng paywall thay thế — xem Triển khai paywall thá»§ công.
  • Placement – nÆ¡i và thá»i Ä‘iểm bạn hiển thị flow trong ứng dụng (ví dụ: main, onboarding, settings). Bạn gắn flow vào placement trong 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 flow khác nhau cho các nhóm ngưá»i dùng khác nhau.

Adapty cung cấp cho bạn ba cách để kích hoạt tính năng mua hàng trong ứng dụng. Hãy chá»n má»™t trong số đó tùy theo yêu cầu cá»§a ứng dụng:

Triển khaiÄá»™ phức tạpKhi nào nên dùng
Adapty Flow Builder✅ DễBạn tạo một flow hoàn chỉnh, sẵn sàng để mua hàng trong trình tạo no-code. Adapty tự động hiển thị nó và xử lý toàn bộ flow mua hàng phức tạp, xác thực biên lai và quản lý gói đăng ký ở phía sau.
Paywall tự tạo thủ công🟡 Trung bìnhBạn tự triển khai giao diện paywall trong code ứng dụng, nhưng vẫn lấy đối tượng flow từ Adapty để duy trì sự linh hoạt trong việc cung cấp sản phẩm. Xem hướng dẫn.
Chế độ Observer🔴 KhóBạn đã có cơ sở hạ tầng xử lý mua hàng riêng và muốn tiếp tục sử dụng nó. Lưu ý rằng chế độ observer có những hạn chế nhất định trong Adapty. Xem bài viết.

Các bước dưới đây hướng dẫn cách triển khai một flow được tạo trong Adapty Flow Builder.

Nếu bạn muốn tự xây dựng giao diện paywall, hãy xem Triển khai paywall thủ công.

Äể hiển thị má»™t flow được tạo trong Adapty Flow Builder, trong code cá»§a ứng dụng, bạn chỉ cần:

  1. Lấy flow: Lấy từ Adapty.
  2. Hiển thị flow và Adapty sẽ xử lý thanh toán cho bạn: Hiển thị view trong ứng dụng.
  3. Xá»­ lý các hành động nút: Liên kết các tương tác cá»§a ngưá»i dùng vá»›i phản hồi cá»§a ứng dụng. Ví dụ: mở liên kết hoặc đóng flow khi ngưá»i dùng nhấn nút.

Trước khi bắt đầu

Trước khi bắt đầu, hãy hoàn thành các bước sau:

  1. Kết nối ứng dụng của bạn với App Store và/hoặc Google Play trong Adapty Dashboard.
  2. Tạo sản phẩm trong Adapty.
  3. Tạo một flow và thêm sản phẩm vào đó.
  4. Tạo một placement và thêm flow vào đó.
  5. Cài đặt và kích hoạt SDK trong code ứng dụng của bạn.

Cách nhanh nhất để hoàn thành các bước này là làm theo hướng dẫn quickstart hoặc tạo flow và placement bằng Developer CLI.

1. Lấy flow

Các flow của bạn được liên kết với các placement được cấu hình trên dashboard. Placement cho phép bạn chạy các flow khác nhau cho các đối tượng khác nhau hoặc chạy A/B test.

Äể lấy má»™t flow được tạo trong Adapty Flow Builder, bạn cần:

  1. Lấy đối tượng flow theo ID placement bằng phương thức getFlow.

  2. Tạo flow view bằng phương thức createFlowView. View chứa các thành phần UI và kiểu dáng cần thiết để hiển thị flow. Nếu flow chưa được cấu hình view, createFlowView sẽ trả vỠlỗi — hãy xử lý lỗi đó trong onError.

Äể hiển thị view, bạn phải bật toggle Show on device trong Flow Builder. Nếu không, createFlowView sẽ trả vá» lá»—i và flow sẽ không được hiển thị.

Adapty.getFlow("YOUR_PLACEMENT_ID")
    .onSuccess { flow ->
        AdaptyUI.createFlowView(flow)
            .onSuccess { view ->
                view.present()
            }
            .onError { error ->
                // the flow has no view configured, or view creation failed
            }
    }
    .onError { error ->
        // handle the error
    }

2. Hiển thị flow

Bây giỠkhi bạn đã có flow, chỉ cần thêm vài dòng code để hiển thị nó.

Äể hiển thị flow trá»±c quan trên màn hình thiết bị, trước tiên bạn phải tạo view. Äể làm Ä‘iá»u đó, hãy gá»i phương thức AdaptyUI.createFlowView():

AdaptyUI.createFlowView(flow)
    .onSuccess { view ->
        view.present()
    }
    .onError { error ->
        // handle the error
    }

Sau khi view được tạo thành công, bạn có thể hiển thị nó trên màn hình thiết bị. Má»—i view chỉ được sá»­ dụng má»™t lần: sau khi gá»i dismiss(), hãy gá»i lại createFlowView để hiển thị flow thêm má»™t lần nữa.

Äể biết thêm chi tiết vá» cách hiển thị má»™t flow, hãy xem hướng dẫn cá»§a chúng tôi.

3. Xử lý hành động nút

Khi ngưá»i dùng nhấn các nút trong flow, Kotlin Multiplatform SDK tá»± động xá»­ lý việc mua hàng, khôi phục, đóng flow và mở liên kết.

Tuy nhiên, các nút khác có ID tùy chỉnh hoặc được định sẵn và yêu cầu xử lý hành động trong code của bạn. Hoặc, bạn có thể muốn ghi đè hành vi mặc định của chúng.

Ví dụ, đây là hành vi mặc định của nút đóng. Bạn không cần thêm nó vào code, nhưng ở đây bạn có thể thấy cách thực hiện nếu cần.

Lưu ý rằng theo mặc định, flow vẫn mở sau khi mua hàng thành công. Nếu bạn muốn đóng flow sau khi mua xong, hãy dismiss view trong callback flowViewDidFinishPurchase.

Xem các hướng dẫn của chúng tôi vỠcách xử lý hành động và sự kiện của nút bấm.

AdaptyUI.setFlowsEventsObserver(object : AdaptyUIFlowsEventsObserver {
    override fun flowViewDidPerformAction(view: AdaptyUIFlowView, action: AdaptyUIAction) {
        when (action) {
            is AdaptyUIAction.CloseAction -> mainUiScope.launch { view.dismiss() }
            else -> Unit
        }
    }

    override fun flowViewDidFinishPurchase(
        view: AdaptyUIFlowView,
        product: AdaptyPaywallProduct,
        purchaseResult: AdaptyPurchaseResult
    ) {
        if (purchaseResult !is AdaptyPurchaseResult.UserCanceled) {
            mainUiScope.launch { view.dismiss() }
        }
    }
})

Các bước tiếp theo

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

Tiếp theo, bạn cần kiểm tra mức độ truy cập cá»§a ngưá»i dùng để đảm bảo bạn hiển thị paywall hoặc cấp quyá»n truy cập vào các tính năng trả phí cho đúng ngưá»i dùng.

Ví dụ đầy đủ

Dưới đây là cách tích hợp tất cả các bước đó vào ứng dụng của bạn.

// Set up the observer for handling flow events
AdaptyUI.setFlowsEventsObserver(object : AdaptyUIFlowsEventsObserver {
    override fun flowViewDidPerformAction(view: AdaptyUIFlowView, action: AdaptyUIAction) {
        when (action) {
            is AdaptyUIAction.CloseAction -> mainUiScope.launch { view.dismiss() }
            else -> Unit
        }
    }

    override fun flowViewDidFinishPurchase(
        view: AdaptyUIFlowView,
        product: AdaptyPaywallProduct,
        purchaseResult: AdaptyPurchaseResult
    ) {
        if (purchaseResult !is AdaptyPurchaseResult.UserCanceled) {
            mainUiScope.launch { view.dismiss() }
        }
    }
})

// Get and display the flow
Adapty.getFlow("YOUR_PLACEMENT_ID")
    .onSuccess { flow ->
        AdaptyUI.createFlowView(flow)
            .onSuccess { view ->
                view.present()
            }
            .onError { error ->
                // the flow has no view configured — use custom logic
            }
    }
    .onError { error ->
        // handle the error
    }
ÿÿÿÿ