Kiểm thử Sandbox
Sau khi đã cấu hình xong mọi thứ trong Adapty Dashboard và ứng dụng mobile, đã đến lúc thực hiện kiểm thử in-app purchase.
Lưu ý: Không có công cụ kiểm thử nào tính phí người dùng khi họ thử mua sản phẩm. App Store không gửi email cho các giao dịch mua hoặc hoàn tiền được thực hiện trong môi trường kiểm thử.
Các giao dịch sandbox bị loại khỏi tất cả các biểu đồ phân tích. Chúng vẫn hiển thị trên các trang hồ sơ người dùng cá nhân và trong event feed.
Để tiến hành kiểm thử in-app purchase, hãy đảm bảo:
- Bạn đã hoàn thành hướng dẫn quickstart về tích hợp cửa hàng, thêm sản phẩm và tích hợp Adapty SDK.
- Sản phẩm của bạn đã được đánh dấu Ready to submit trong App Store Connect.
Kiểm thử Sandbox
Chúng tôi khuyến nghị kiểm thử in-app purchase trên thiết bị thật. Mặc dù có thể thực hiện mua hàng sandbox trên simulator, bạn cần thiết bị thật để kiểm thử đầy đủ tất cả các flow, bao gồm hộp thoại thanh toán và xác thực sinh trắc học.
Có hai cách chính để kiểm thử in-app purchase:
- Build trong Xcode và chạy trên thiết bị kiểm thử: Tiện lợi cho lập trình viên và kỹ sư QA.
- Dùng tài khoản kiểm thử sandbox với TestFlight: Phù hợp cho những người khác.
Cả hai tùy chọn này đều được hướng dẫn chi tiết bên dưới.
Bước 1. Tạo tài khoản kiểm thử Sandbox trong App Store Connect
Hãy tạo tài khoản kiểm thử Sandbox mới để đảm bảo lịch sử mua hàng của bạn sạch. Nếu dùng lại tài khoản cũ, các sản phẩm đã mua trước đó vẫn còn hiệu lực và bạn sẽ không thể kiểm thử việc mua lại chúng.
Bạn có thể tạo tài khoản kiểm thử Sandbox mới chỉ trong vài thao tác:
- Truy cập Users and Access > Sandbox > Test Accounts trong App Store Connect và nhấn +.
- Nhập thông tin người dùng kiểm thử. Hãy chắc chắn xác định Country or Region mà bạn muốn kiểm thử vì điều này ảnh hưởng đến tình trạng sẵn có của sản phẩm theo khu vực và đơn vị tiền tệ giao dịch.
- Nếu bạn dùng Gmail hoặc iCloud, bạn có thể tái sử dụng địa chỉ email hiện có với plus sign subaddressing.
- Bạn có thể dùng một địa chỉ email ngẫu nhiên thậm chí không tồn tại, nhưng hãy nhớ từ chối xác thực hai yếu tố (2FA) khi đăng nhập trên thiết bị kiểm thử sau này.
- Nhấn Create.
Bước 2. Bật chế độ Developer
Bỏ qua bước này nếu chế độ Developer đã được bật trên thiết bị kiểm thử của bạn hoặc nếu bạn không có thiết bị Mac.
Bạn sẽ cần một máy Mac đã cài Xcode và cáp kết nối thiết bị kiểm thử:
- Mở Xcode trên máy Mac. Nếu bạn định kiểm thử in-app purchase với TestFlight, bạn chỉ cần có XCode được cài đặt; bạn không cần phải có ứng dụng ở đó.
- Kết nối thiết bị kiểm thử với máy Mac bằng cáp.
- Vào Settings > Privacy & Security > Developer Mode trên thiết bị kiểm thử và bật Developer Mode.
Bước 3. Tải ứng dụng từ TestFlight
Bước này chỉ áp dụng nếu bạn đang kiểm thử với TestFlight. Nếu bạn đang build ứng dụng trong Xcode, hãy bỏ qua bước này.
Để biết chi tiết về cách gửi ứng dụng lên TestFlight, hãy xem tài liệu của Apple.
Trước khi tải ứng dụng TestFlight, trên thiết bị kiểm thử của bạn, hãy đảm bảo bạn đã đăng nhập bằng Apple Account thật (production) của mình. Sau đó tải ứng dụng cần kiểm thử từ TestFlight.
Đừng mở ứng dụng ngay sau khi tải về. Hãy tiếp tục với các bước tiếp theo. Nếu vô tình mở, hãy xóa ứng dụng khỏi thiết bị kiểm thử và tải lại. Nếu không, lịch sử mua hàng của bạn có thể không sạch và việc kiểm thử in-app purchase sẽ dẫn đến lỗi.
Bước 4. Chuyển sang tài khoản kiểm thử Sandbox
Không dùng Mac? Đây là cách làm thay thế cho bạn
Nếu bạn không làm việc trên macOS, bạn không thể chuyển sang tài khoản sandbox bằng Xcode. Tuy nhiên, bạn vẫn có thể thực hiện trực tiếp trên thiết bị kiểm thử của mình:
- Vào Settings > Your Apple Account > Media & Purchases trên thiết bị kiểm thử.
- Chọn Sign Out từ menu pop-up.
- Mở ứng dụng đã tải từ TestFlight và thử mua một sản phẩm.
- Khi được yêu cầu đăng nhập, nhập thông tin đăng nhập tài khoản sandbox để chuyển sang môi trường sandbox.
Để chuyển sang tài khoản sandbox của bạn:
- Vào Settings > Your Apple Account > Media & Purchases trên thiết bị kiểm thử.
- Chọn Sign Out từ menu pop-up.
- Vào Settings > Developer. Nếu tùy chọn Developer không hiển thị, hãy đảm bảo bạn đã bật nó ở bước 2.
- Cuộn xuống phần Sandbox Apple Account và nhấn Sign In.
- Đăng nhập bằng thông tin đăng nhập của tài khoản Apple Sandbox.
Bước 5. Xóa lịch sử mua hàng
Nếu bạn vừa tạo tài khoản kiểm thử Sandbox mới và đã chuyển sang nó, bạn có thể bỏ qua bước này vì nó chỉ áp dụng cho việc kiểm thử lặp lại bằng cùng một tài khoản kiểm thử Sandbox.
- Vào Settings > Developer > Sandbox Apple Account trên thiết bị kiểm thử.
- Chọn Manage từ menu pop-up.
- Vào Account Settings và nhấn Clear Purchase History.
Bước này là bắt buộc mỗi khi bạn lặp lại việc kiểm thử bằng cùng một tài khoản kiểm thử Sandbox. Trong trường hợp này, bạn cũng sẽ cần đăng xuất khỏi tài khoản kiểm thử Sandbox, sau đó đăng nhập lại để xóa bộ nhớ cache lịch sử mua hàng trên thiết bị kiểm thử.
Bước 6. Build trong Xcode và chạy
Bước này chỉ áp dụng nếu bạn đang kiểm thử với bản build từ Xcode. Nếu bạn đang dùng TestFlight, hãy bỏ qua bước này.
- Kết nối thiết bị kiểm thử với máy Mac.
- Mở Xcode.
- Nhấn Run trong thanh công cụ hoặc chọn Product > Run để build và chạy ứng dụng trên thiết bị đã kết nối.
Nếu build thành công, Xcode sẽ khởi chạy ứng dụng trên thiết bị của bạn và mở phiên gỡ lỗi trong khu vực debug.
Ứng dụng của bạn giờ đã sẵn sàng để kiểm thử trên thiết bị.
Bước 7. Thực hiện giao dịch mua kiểm thử
Mở ứng dụng và thực hiện giao dịch mua kiểm thử thông qua một paywall.
Sau khi hoàn tất, hãy xem bài viết về xác nhận giao dịch mua kiểm thử để kiểm tra kết quả.
Bước 8. Tiếp tục kiểm thử
Môi trường kiểm thử của bạn đã được thiết lập xong. Nếu muốn kiểm thử lại, hãy xóa lịch sử mua hàng của tài khoản sandbox.
Các vấn đề khi kiểm thử
Dưới đây là các vấn đề phổ biến bạn có thể gặp khi kiểm thử ứng dụng.
Vấn đề với TestFlight
Bạn không thể xóa lịch sử mua hàng nếu dùng TestFlight mà không có tài khoản kiểm thử Sandbox, dẫn đến các vấn đề khác nhau và kết quả kiểm thử không chính xác.
Nếu bạn vô tình quên chuyển sang tài khoản kiểm thử Sandbox và đã mở ứng dụng dù chỉ một lần, TestFlight sẽ gán lịch sử mua hàng của bạn vào tài khoản Apple production, gây ra các vấn đề không mong muốn.
Để khắc phục, hãy làm theo các bước sau:
- Xóa ứng dụng khỏi thiết bị kiểm thử.
- Làm theo các bước Kiểm thử Sandbox.
Quan trọng là không chỉ cài lại ứng dụng, mà còn phải chuyển sang tài khoản kiểm thử Sandbox, xóa lịch sử mua hàng và khởi chạy ứng dụng bằng tài khoản kiểm thử Sandbox.
Vấn đề với mức độ truy cập được chia sẻ
Nếu bạn lặp lại kiểm thử bằng cùng một tài khoản kiểm thử Sandbox, bạn có thể gặp hành vi bất ngờ với mức độ truy cập được chia sẻ cho người dùng kiểm thử.
Để kiểm tra xem người dùng có mức độ truy cập kế thừa hay không, hãy vào Profiles & Segments từ Adapty Dashboard và mở hồ sơ người dùng.
Nếu người dùng có mức độ truy cập kế thừa, hãy làm theo các bước sau để có kết quả kiểm thử chính xác:
- Xóa hồ sơ cha.
- Xóa ứng dụng khỏi thiết bị kiểm thử.
- Tải ứng dụng từ TestFlight.
- Chuyển sang tài khoản kiểm thử Sandbox.
- Xóa lịch sử mua hàng.
- Mở ứng dụng và thực hiện giao dịch mua kiểm thử.
Xóa lịch sử mua hàng là thao tác đặt lại giao dịch mua ở phía cửa hàng. Xóa hồ sơ cha chỉ xóa bản ghi ở phía Adapty. Để hiểu tại sao tài khoản được dùng lại vẫn giữ quyền truy cập và những thao tác đặt lại nào thực sự có hiệu quả, hãy xem Đặt lại gói đăng ký của người kiểm thử.
Cập nhật ứng dụng trong TestFlight
Nếu ứng dụng TestFlight đã được cập nhật:
- Xóa ứng dụng khỏi thiết bị kiểm thử.
- Tải ứng dụng từ TestFlight.
- Chuyển sang tài khoản kiểm thử Sandbox.
- Xóa lịch sử mua hàng.
- Mở ứng dụng và thực hiện giao dịch mua kiểm thử.
Đặt lại gói đăng ký của người kiểm thử
Trong môi trường sandbox, một giao dịch mua thuộc về tài khoản Apple sandbox, không phải hồ sơ người dùng Adapty. Các thao tác bạn thực hiện trên hồ sơ — xóa nó hoặc chỉnh sửa mức độ truy cập — không xóa giao dịch mua khỏi tài khoản cửa hàng. Lần cài đặt lại hoặc đồng bộ tiếp theo, SDK sẽ gán lại cùng giao dịch đó và người kiểm thử lại có quyền truy cập.
Bảng dưới đây cho thấy mỗi thao tác đặt lại thay đổi điều gì và người kiểm thử thấy gì sau đó.
| Thao tác | Hồ sơ người dùng Adapty | Tài khoản Apple sandbox | Quyền truy cập của người kiểm thử sau đó |
|---|---|---|---|
| Xóa hồ sơ trong Adapty Dashboard | Đã xóa | Không thay đổi | Trở lại — khi cài lại, một hồ sơ mới sẽ gán lại cùng chuỗi giao dịch |
| Xóa hồ sơ qua Delete profile API | Đã xóa | Không thay đổi | Trở lại — tương tự như xóa trong Dashboard |
| Thêm ngày hết hạn trong quá khứ qua Add access level | Bị ghi đè ở lần đồng bộ tiếp theo | Không thay đổi | Trở lại ở lần gia hạn tiếp theo — gói đăng ký đang hoạt động sẽ áp dụng lại ngày hết hạn trong tương lai |
| Gọi Revoke access level API | Hết hạn ngay, kích hoạt access_level_updated (is_active=false) | Không thay đổi | Trở lại ở lần gia hạn hoặc cài lại tiếp theo — không phải cách đặt lại sandbox đáng tin cậy |
| Hủy gói đăng ký trong tài khoản sandbox | Không thay đổi trực tiếp | Gói đăng ký đã bị hủy | Việc gia hạn dừng lại, quyền truy cập kết thúc khi chu kỳ hiện tại hết hạn, và người kiểm thử có thể mua lại sản phẩm |
| Đăng nhập bằng tài khoản Apple sandbox mới | Hồ sơ mới | Tài khoản mới, trống | Sạch — được khuyến nghị cho kiểm thử lặp lại |
Đặt lại người kiểm thử về trạng thái sạch
Để kiểm thử flow mua hàng lặp lại, hãy dùng một tài khoản Apple sandbox mới cho mỗi lần kiểm thử thay vì đặt lại hồ sơ. Làm theo Bước 1 để tạo tài khoản và Bước 4 để chuyển sang nó trên thiết bị. Nếu bạn tái sử dụng tài khoản sandbox hiện có, hãy xóa lịch sử mua hàng của nó trước — xóa hồ sơ Adapty không xóa được lịch sử đó.
Xóa quyền truy cập của người kiểm thử hiện tại
Để xóa quyền truy cập của người kiểm thử, đừng đặt ngày hết hạn về quá khứ hoặc gọi Revoke access level API. Trong sandbox, gói đăng ký tự gia hạn sau vài phút. Mỗi lần gia hạn sẽ khôi phục lại ngày hết hạn trong tương lai trên cùng chuỗi giao dịch, vì vậy quyền truy cập sẽ tự động trở lại. Revoke access level API có kích hoạt sự kiện access_level_updated (is_active=false), nhưng lần gia hạn tiếp theo sẽ ghi đè nó.
Để thực sự dừng quyền truy cập, hãy hủy gói đăng ký ở phía cửa hàng. Trên thiết bị kiểm thử, vào Settings > Developer > Sandbox Apple Account, chọn Manage và hủy gói đăng ký. Việc gia hạn sẽ dừng và quyền truy cập kết thúc khi chu kỳ hiện tại hết hạn.
Tại sao xóa hồ sơ lại khiến quyền truy cập trở lại
Khi người kiểm thử cài lại ứng dụng, Adapty nhận lịch sử mua hàng của tài khoản sandbox và liên kết lần cài đặt mới với giao dịch hiện có. Giao dịch mua được gắn với tài khoản cửa hàng, không phải với hồ sơ bạn đã xóa.
- Hồ sơ ẩn danh: Việc cài lại mà không có
customer_user_idluôn kế thừa mức độ truy cập của tài khoản cửa hàng, bất kể cài đặt chia sẻ quyền truy cập có phí của bạn. - Hồ sơ đã xác định: Quyền truy cập có được chuyển sang
customer_user_idmới hay không phụ thuộc vào cài đặt chia sẻ quyền truy cập có phí của bạn.
Để biết cách Adapty liên kết các hồ sơ này thành một chuỗi, hãy xem Cách hồ sơ hoạt động.
Gói đăng ký kiểm thử
Khi kiểm thử ứng dụng bằng tài khoản kiểm thử Sandbox, bạn có thể thiết lập tốc độ gia hạn gói đăng ký cho mỗi người kiểm thử trong sandbox. Tìm hiểu thêm về cách chỉnh sửa tốc độ gia hạn gói đăng ký trong tài liệu chính thức của Apple.
Mặc định, gói đăng ký gia hạn tối đa 12 lần trước khi dừng, theo lịch sau:
| Thời hạn gói đăng ký | 1 tuần | 1 tháng | 2 tháng | 3 tháng | 6 tháng | 1 năm |
|---|---|---|---|---|---|---|
| Tốc độ gia hạn gói đăng ký | 3 phút | 5 phút | 10 phút | 15 phút | 30 phút | 1 giờ |
| Thời gian thử lại thanh toán | 10 phút | 10 phút | 10 phút | 10 phút | 10 phút | 10 phút |
| Thời gian ân hạn thanh toán | 3 phút | 5 phút | 5 phút | 5 phút | 5 phút | 5 phút |
Lưu ý rằng các giao dịch kiểm thử có thể mất đến 10 phút để xuất hiện trong Event feed.
Hãy dùng sandbox để xác nhận rằng ứng dụng và backend của bạn xử lý đúng các lần gia hạn, thử lại thanh toán và thời gian ân hạn — không phải để dự đoán thời gian gia hạn trong môi trường production. Lịch gia hạn được tăng tốc và giới hạn ở trên không phản ánh thực tế production. Để phát lại giao dịch trên server phục vụ kiểm thử backend, hãy dùng Set transaction API.
Kiểm thử ưu đãi
Việc kiểm thử ưu đãi yêu cầu tất cả biên lai của người dùng phải được xóa để tính đủ điều kiện hoạt động chính xác.
Cách đáng tin cậy nhất để kiểm thử ưu đãi là dùng một tài khoản kiểm thử Sandbox hoàn toàn mới. Việc kiểm thử lặp lại bằng cùng một tài khoản kiểm thử Sandbox có thể gây ra hành vi bất ngờ.
Nếu bạn lặp lại kiểm thử bằng cùng một tài khoản kiểm thử Sandbox, hãy nhớ xóa lịch sử mua hàng để tránh các vấn đề liên quan đến điều kiện đủ điều kiện.