Phản hồi kết quả mua hàng

Khi một giao dịch mua hàng hoàn tất, Adapty SDK sẽ gọi lại ứng dụng của bạn với kết quả tương ứng. Màn hình sẽ không thay đổi cho đến khi ứng dụng của bạn phản hồi. Ứng dụng có thể đóng paywall, giữ nguyên để thử lại, hoặc mở một flow thứ hai để xác nhận giao dịch mua hàng.

Builder không thể phân nhánh dựa trên kết quả mua hàng: không có trigger nào được kích hoạt khi mua hàng hoàn tất, và không có biến nào mang kết quả đó. Vì vậy, việc chuyển tiếp phải được xử lý trong code của bạn, nơi nhận được kết quả.

Công việc chia thành ba phần:

  • Xây dựng flow sau khi mua hàng và gán nó vào placement riêng.
  • Trong code ứng dụng, phân nhánh dựa trên kết quả mua hàng.
  • Khi thành công, đóng paywall và hiển thị flow sau khi mua hàng.

Trước khi bắt đầu

1. Xây dựng flow sau khi mua hàng

Tạo flow. Flow này chạy sau khi mua hàng nên không cần sản phẩm. Để đưa người dùng trở lại giao diện ứng dụng của bạn, hãy thêm một nút với hành động Close Flow vào màn hình cuối cùng.

Post-purchase flow in the builder with a Thank you screen, the Start button selected, and its On Tap trigger set to the Close Flow action

Sử dụng Custom Action khi flow có nhiều hơn một hướng đi. Tạo nhiều nút, mỗi nút có action ID riêng, để ứng dụng của bạn có thể phân biệt Set up now với Set up later.

2. Thêm post-purchase flow vào placement riêng của nó

Để tải post-purchase flow từ ứng dụng của bạn, hãy gán nó vào một placement riêng. Placement của flow hiện tại không thể phục vụ flow đó — một placement chỉ phục vụ một flow cho mỗi đối tượng.

  1. Xuất bản flow.
  2. Tạo một flow placement. Lưu ý Placement ID — ứng dụng của bạn sử dụng ID này để tải flow.
  3. Gán post-purchase flow vào placement mới.

3. Xử lý kết quả mua hàng

Ứng dụng của bạn nhận kết quả mua hàng qua hai callback:

  • Completion: Giao dịch mua đã kết thúc — thành công, người dùng hủy, hoặc thanh toán đang chờ phê duyệt (ví dụ: chờ xác nhận từ phụ huynh). Đọc kiểu của kết quả để phân biệt ba trường hợp này. Khi thành công, kết quả sẽ chứa AdaptyProfile đã được cập nhật.
  • Failure: Một lỗi đã ngăn quá trình mua hàng, và callback mang theo một AdaptyError — hạn chế thanh toán, sản phẩm không hợp lệ, lỗi mạng, hoặc lỗi xác minh giao dịch.

Tên và chữ ký callback: iOS | Android | React Native | Flutter | Unity | Kotlin Multiplatform | Capacitor

Xử lý theo kết quả:

  • Nếu thành công, đóng paywall rồi hiển thị flow sau khi mua.
  • Nếu hủy, thanh toán đang chờ xử lý, hoặc thất bại, giữ nguyên paywall.
Note

Tính năng khôi phục báo cáo thông qua callback riêng, xử lý cả trường hợp người dùng cài lại ứng dụng hoặc đổi thiết bị. Xác nhận rằng hồ sơ người dùng trả về có mức độ truy cập đang hoạt động, sau đó đóng và hiển thị một flow theo cách tương tự. Hãy trỏ callback đó vào một flow riêng — màn hình cảm ơn người dùng sau khi mua hàng không phù hợp cho trường hợp khôi phục.

4. Tải và hiển thị flow sau khi mua hàng

Để mở flow sau khi mua hàng mà không bị chờ đợi, hãy tải nó song song với paywall thay vì bên trong handler. Nhớ request cả cấu hình UI của nó — đó là lệnh gọi kích hoạt việc cache ảnh của flow trong nền.

Trên iOS và Android, preloadFlows (SDK 4.1+) khởi động trước nhiều placement trong một lần gọi. Hàm này chỉ cache JSON của placement, vì vậy hãy kết hợp với fetch policy ReturnCacheDataElseLoad và vẫn cần yêu cầu cấu hình UI trước.

Lấy flow và paywall: iOS | Android | React Native | Flutter | Unity | Kotlin Multiplatform | Capacitor

Hiển thị flow và paywall: iOS | Android | React Native | Flutter | Unity | Kotlin Multiplatform | Capacitor