DeviceCheck của Apple ghi nhớ chiếc điện thoại của kẻ lạm dụng hoàn tiền, ngay cả khi họ đăng ký tài khoản mới
Cấm tài khoản và mã định danh giao dịch mất tác dụng ngay khi kẻ lạm dụng hoàn tiền tạo tài khoản mới. DeviceCheck của Apple và device recall của Google Play lưu vài bit cho mỗi thiết bị trên máy chủ của cửa hàng. Bài viết này giải thích chúng lưu gì, khi nào nên đặt bit, và bạn tiết kiệm được gì.

Điểm chính
- DeviceCheck của Apple cho phép máy chủ của bạn đặt và truy vấn hai bit nhị phân cho mỗi thiết bị, được lưu trên máy chủ của Apple. Apple nêu việc gắn cờ thiết bị mà bạn xác định là gian lận là một trong những mục đích sử dụng dự kiến.
- Tính năng ghi nhớ thiết bị (device recall) của Google Play, một tính năng beta của Play Integrity API, lưu ba bit tùy chỉnh cho mỗi thiết bị trên máy chủ của Google. Các bit này vẫn còn sau khi cài lại ứng dụng và đặt lại thiết bị.
- Giá trị device recall được dùng chung cho mọi ứng dụng trong cùng một tài khoản nhà phát triển Google Play và được giữ trong 3 năm kể từ lần đọc hoặc ghi cuối cùng.
- Mã Play Integrity có thể dùng để ghi bit device recall trong tối đa 14 ngày sau khi được xác minh. Khoảng thời gian này bao trùm cửa sổ tự hoàn tiền 48 giờ của Google Play.
- Cả thông báo hoàn tiền của Apple lẫn giao dịch bị hủy của Google đều không chứa mã định danh thiết bị. Vì vậy, chỉ máy chủ nào đã liên kết giao dịch với tài khoản của chính mình từ trước mới có thể gắn cờ thiết bị.
- Cờ thiết bị không thể ngăn một lần hoàn tiền. Cờ quyết định ứng dụng của bạn sẽ cho thiết bị đó gì tiếp theo, chẳng hạn tín dụng miễn phí, bản dùng thử do bạn chi trả, hoặc ưu đãi khuyến mãi do máy chủ của bạn ký.
- Chỉ có hai quy trình hoàn tiền cho phép nhà phát triển gửi bằng chứng trước khi cửa hàng quyết định: CONSUMPTION_REQUEST của Apple, phản hồi trong vòng 12 giờ, và quy trình xem xét chargeback của Google Play qua orders.reviewrefund, phản hồi trong vòng 24 giờ.
Cấm tài khoản không ngăn được kẻ lạm dụng hoàn tiền đăng ký lại trên cùng chiếc điện thoại. DeviceCheck của Apple và device recall của Google Play tồn tại chính là để lấp khoảng trống đó. Mỗi công cụ cho phép máy chủ của bạn gắn vài bit mang ý nghĩa do bạn quy định vào một thiết bị vật lý, được lưu trên máy chủ của cửa hàng. Nhờ vậy, cờ vẫn còn đó khi người đứng sau quay lại với một địa chỉ email mới. Không công cụ nào đưa cho bạn ID thiết bị, và không công cụ nào ngăn được hoàn tiền. Điều chúng làm là cho bạn biết, lúc đăng ký hoặc tại paywall, rằng thiết bị này đã từng gây thiệt hại cho bạn.
Dưới đây là những gì mỗi cửa hàng thực sự lưu, cái bẫy thời gian quyết định bạn có đặt được cờ hay không, và chi phí mà một kẻ lạm dụng lặp lại gây ra trước khi bạn phát hiện.
Vì sao một tài khoản mới vượt qua mọi lớp phòng thủ ở cấp tài khoản
Phần lớn biện pháp chống lạm dụng hoàn tiền gắn với tài khoản. appAccountToken của Apple liên kết một giao dịch với một người dùng trong cơ sở dữ liệu của bạn. ID tài khoản đã làm rối (obfuscated account ID) của Google Play làm điều tương tự trên Android. Cả hai đều nên được đặt cho mọi giao dịch, và cả hai đều mô tả tài khoản của một người, không phải phần cứng họ đang cầm. Xóa tài khoản, đăng ký bằng email mới, và lịch sử của bạn về người đó trở về số không.
Các cửa hàng không lấp khoảng trống này thay bạn. Thông báo hoàn tiền của App Store cho bạn biết giao dịch nào đã được hoàn tiền. Giao dịch bị hủy của Google Play cho bạn biết mã giao dịch, ID đơn hàng và voidedReason. Không thông báo nào chứa mã định danh thiết bị. Một nhà phát triển ứng dụng hẹn hò đã mô tả hậu quả trong một chủ đề trên Apple Developer Forums: các hồ sơ lừa đảo liên tục mua gói thành viên cao cấp rồi được hoàn tiền, và việc cấm thiết bị của họ bằng phương pháp riêng của nhà phát triển không giúp được gì.
Tài khoản mới có đặt lại bản dùng thử của cửa hàng không?
Không, nếu vẫn dùng cùng một Apple Account. Tài liệu của Apple nêu rằng ưu đãi giới thiệu, kể cả bản dùng thử miễn phí, chỉ dành cho khách hàng chưa từng nhận ưu đãi đó cho sản phẩm này hoặc bất kỳ sản phẩm nào trong cùng nhóm gói đăng ký. Vì vậy, một lần đăng nhập mới trong ứng dụng của bạn không mang lại bản dùng thử Apple thứ hai. Một Apple Account mới thì có, và mọi thứ bạn tự phát cũng vậy: tín dụng khi đăng ký, bản dùng thử do máy chủ chi trả, tiền thưởng giới thiệu. Đó là những món quà mà cờ thiết bị bảo vệ.
DeviceCheck của Apple thực sự lưu gì
DeviceCheck gồm hai phần. Trong ứng dụng, lớp DCDevice tạo ra một mã tạm thời nhận diện thiết bị. Trên máy chủ, bạn gửi mã đó đến Apple kèm một JSON web token được ký bằng khóa từ tài khoản nhà phát triển của bạn, và Apple cho phép bạn truy vấn hoặc cập nhật hai bit cho thiết bị đó. Phản hồi truy vấn trả về bit0, bit1 và last_update_time, ở dạng năm và tháng. Các ví dụ sử dụng do chính Apple đưa ra là thiết bị đã nhận ưu đãi khuyến mãi và thiết bị mà bạn xác định là gian lận.
Apple giữ các bit, nhưng ý nghĩa của chúng thuộc về bạn. Tài liệu của Apple nêu rằng bạn chịu trách nhiệm theo dõi ý nghĩa của các bit và quyết định khi nào đặt lại chúng, với ví dụ là thiết bị đã được bán đi. Hai bit cho bạn bốn trạng thái. Một sơ đồ đơn giản là một bit cho đã hoàn tiền sau khi dùng nhiều, và một bit cho đã nhận tín dụng miễn phí.
- Mã chỉ dùng một lần. Apple cho biết mã vẫn hợp lệ đủ lâu để thử lại một yêu cầu, nhưng bạn nên tạo mã mới cho mỗi lần gọi.
- Bản dựng phát triển giao tiếp với api.development.devicecheck.apple.com. Môi trường production phải dùng api.devicecheck.apple.com, nếu không cờ của bạn sẽ nằm sai chỗ.
- Apple mô tả DeviceCheck là một đầu vào trong đánh giá rủi ro tổng thể, không phải một phán quyết. Hãy coi một bit đã đặt là lý do để xem xét kỹ hơn.
Device recall của Google bổ sung gì trên Android
Phiên bản của Google nằm trong Play Integrity API và vẫn đang ở giai đoạn beta, cần đăng ký qua biểu mẫu quan tâm. Sau khi được chấp thuận và bật tính năng trong Play Console, mỗi kết quả kiểm tra tính toàn vẹn sẽ mang theo ba bit tùy chỉnh cho thiết bị. Bạn ghi các bit này bằng một lệnh gọi từ máy chủ đến endpoint deviceRecall:write, sử dụng một mã toàn vẹn mà bạn đã xác minh. Google cho biết dữ liệu vẫn còn sau khi cài lại ứng dụng và đặt lại thiết bị, vì dữ liệu nằm trên máy chủ của Google.
Tài liệu của Google nói rất thẳng về các trường hợp sử dụng. Google nêu tên các thiết bị có bằng chứng lạm dụng nghiêm trọng, thiết bị đã đổi một vật phẩm giá trị cao như bản dùng thử miễn phí, và thiết bị được dùng đi dùng lại để tạo tài khoản mới nhằm mục đích lạm dụng. Google cũng thẳng thắn không kém về giới hạn: device recall chỉ được dùng để bảo vệ an ninh ứng dụng và chống lạm dụng, gian lận và truy cập trái phép. Không bao giờ được dùng để lấy dấu vân tay thiết bị hay theo dõi từng người dùng, và không bao giờ được lưu các đặc điểm nhạy cảm như tuổi, giới tính hay vị trí.
| Câu hỏi | Apple DeviceCheck | Google Play device recall |
|---|---|---|
| Trạng thái | Phát hành chính thức | Beta, cần chấp thuận qua biểu mẫu quan tâm |
| Số bit mỗi thiết bị | 2 | 3 |
| Nơi lưu trữ | Máy chủ của Apple | Máy chủ của Google |
| Còn sau khi cài lại và đặt lại | Lưu phía máy chủ, Apple để việc đặt lại cho bạn | Có, cả hai, theo Google |
| Dùng chung giữa các ứng dụng của bạn | Gắn với tài khoản nhà phát triển của bạn | Có, mọi ứng dụng trong tài khoản nhà phát triển |
| Dấu thời gian | Năm và tháng cập nhật gần nhất | Ngày ghi của từng bit |
| Thời gian lưu giữ | Cho đến khi bạn đặt lại | 3 năm kể từ lần đọc hoặc ghi cuối cùng |
| Mã để ghi | Mã DCDevice mới, dùng một lần | Mã toàn vẹn đã xác minh, dùng được trong 14 ngày |
| Yêu cầu bổ sung | App ID đã đăng ký với tài khoản của bạn | Play Store và Play services phiên bản gần đây, người dùng có giấy phép Play, không dùng trình giả lập |
Vấn đề thời gian: hoàn tiền đến sau khi mã đã không còn
Cả hai công cụ đều cần một thứ từ chính thiết bị trước khi bạn có thể gắn cờ. Apple cần một mã DCDevice mới. Google cần một mã toàn vẹn từ thiết bị đó, không quá 14 ngày tuổi. Trong khi đó, hoàn tiền đến máy chủ của bạn qua một thông báo của cửa hàng không biết gì về thiết bị. Vì vậy câu hỏi không phải là có nên gắn cờ thiết bị hay không. Câu hỏi là bạn có còn cách nào tiếp cận thiết bị khi hoàn tiền xảy ra hay không.
Hoàn tiền 48 giờ của Google nằm gọn trong cửa sổ 14 ngày
Tính năng tự hoàn tiền của Google Play chỉ có trong vòng 48 giờ sau khi mua, nằm gọn trong 14 ngày mà mã toàn vẹn còn dùng được để ghi. Hãy chạy kiểm tra tính toàn vẹn ngay lúc mua, lưu mã đã xác minh cạnh ID đơn hàng, và khi giao dịch bị hủy cho đơn hàng đó đến, bạn có thể ghi bit ngay. Chargeback là trường hợp khó hơn, vì tranh chấp ngân hàng có thể đến rất lâu sau ngày thứ 14.
Hoàn tiền của Apple cần thiết bị quay lại
Hoàn tiền của Apple có thể đến nhiều tuần sau khi mua, và mã DeviceCheck đã lưu không được thiết kế để dùng lại. Cách làm thực tế là đánh dấu tài khoản trước, thiết bị sau. Khi thông báo hoàn tiền đến, hãy gắn cờ tài khoản trong cơ sở dữ liệu của bạn. Lần tới tài khoản đó mở ứng dụng, hãy lấy mã DeviceCheck và đặt bit. Những kẻ giữ lại nội dung sau khi hoàn tiền thường quay lại, vì sử dụng nội dung chính là mục đích của họ.
- Khi mua, ghi nhận giao dịch vào tài khoản của chính bạn qua appAccountToken hoặc ID tài khoản đã làm rối.
- Khi có hoàn tiền hoặc hủy giao dịch, gắn cờ tài khoản đó trên máy chủ của bạn.
- Ở phiên tiếp theo của tài khoản bị gắn cờ, lấy mã thiết bị và đặt bit của bạn.
- Ở mỗi lần đăng ký, truy vấn các bit trước khi cấp bất cứ thứ gì tốn tiền của bạn.
Một kẻ lạm dụng hoàn tiền lặp lại khiến bạn tốn bao nhiêu
Số tiền bị hoàn là phần nhìn thấy được. Phần còn lại là mọi thứ giao dịch đã khởi động. Nếu ứng dụng của bạn tốn tiền để cung cấp thứ nó bán, mỗi vòng mua, dùng rồi hoàn tiền để lại khoản tiền đã tiêu: thời gian GPU cho hình ảnh được tạo, các lệnh gọi trả phí đến API mô hình hoặc dữ liệu, dung lượng lưu trữ cho tệp xuất mà khách hàng giữ lại, và khoản chi trả cho nhà sáng tạo được tính trên doanh số. Một tài khoản mới mở lại vòng lặp, và sổ sách của bạn ghi nhận đó là một khách hàng hoàn toàn mới.
Quà tặng miễn phí cũng thất thoát theo cách tương tự, mà không cần hoàn tiền. Một thiết bị gom tín dụng đăng ký trên mười tài khoản tiêu tốn gấp mười lần năng lực tính toán bạn dự trù cho một bản dùng thử. Trên Google Play, chargeback cho các đơn hàng sau ngày 3 tháng 8 năm 2026 còn khiến bạn mất giá mua trừ phí dịch vụ của Google, cộng thêm phí ngân hàng. Vì vậy, người tranh chấp từ một tài khoản mới mỗi lần sẽ khiến bạn chịu lại toàn bộ chi phí tranh chấp.
| Hạng mục chi phí | Không có cờ thiết bị | Có cờ thiết bị |
|---|---|---|
| Tín dụng đăng ký hoặc bản dùng thử do bạn chi trả | Cấp lại trên mỗi tài khoản mới | Giữ lại hoặc giảm trên thiết bị bị gắn cờ |
| Năng lực tính toán và lệnh gọi API trả phí | Tiêu lại ở mỗi vòng | Tiêu một lần, sau đó bị chặn |
| Chi trả cho nhà sáng tạo hoặc đối tác liên kết | Trả cho doanh số rồi bị hoàn tiền | Tạm giữ để xem xét trên thiết bị bị gắn cờ |
| Chargeback Google Play sau ngày 3 tháng 8 năm 2026 | Giá trừ phí dịch vụ, cộng phí ngân hàng, mỗi lần | Như nhau cho mỗi tranh chấp, nhưng ít tranh chấp lặp lại hơn |
| Quyết định hoàn tiền của cửa hàng | Do cửa hàng quyết định | Vẫn do cửa hàng quyết định |

Làm gì với một thiết bị bị gắn cờ
Một cờ trả lời một câu hỏi: thiết bị này có nên được nhận thứ gì đó miễn phí nữa không? Hãy phản ứng tương xứng, vì một bit đã đặt là dấu hiệu, không phải bằng chứng. Điện thoại được bán lại, các gia đình dùng chung iPad, và Google nói rõ rằng bạn nên cân nhắc bỏ qua hoặc đặt lại dữ liệu cũ vì lý do đó.
- Bỏ tín dụng đăng ký, bản dùng thử do máy chủ chi trả hoặc tiền thưởng giới thiệu trên thiết bị bị gắn cờ, và đề xuất gói trả phí thay thế.
- Không ký ưu đãi khuyến mãi cho thiết bị bị gắn cờ. Trên App Store, máy chủ của bạn tạo chữ ký mở khóa ưu đãi khuyến mãi, nên quyền quyết định thuộc về bạn.
- Yêu cầu thanh toán hoàn tất trước khi giao các vật phẩm tiêu hao đắt tiền trên thiết bị bị gắn cờ.
- Dùng dấu thời gian. Một cờ đặt tháng trước có trọng lượng hơn một cờ đặt hai năm trước.
- Cho mọi người cách liên hệ bộ phận hỗ trợ. Người mua điện thoại cũ bị gắn cờ nhầm xứng đáng nhận được câu trả lời, và bạn có thể đặt lại các bit.
Có thể cấm luôn thiết bị không?
Bạn có thể từ chối các phần thưởng miễn phí của chính mình, và đó là nơi cờ thiết bị phát huy hiệu quả. Khóa hoàn toàn thì rủi ro hơn. Người đang cầm điện thoại hôm nay có thể không phải người đã lạm dụng nó, và chính điều khoản của Google giới hạn device recall vào việc ngăn chặn lạm dụng, không phải theo dõi con người. Hãy chặn những gì tốn tiền của bạn và để ngỏ con đường trả phí.
Còn Keychain (chuỗi khóa) hoặc mã định danh thiết bị thì sao?
Các nhà phát triển thường hỏi liệu một dấu đánh dấu trong Keychain hoặc ID phần cứng có làm được việc tương tự không. Dấu đánh dấu mà ứng dụng lưu trên điện thoại sẽ mất sau khi đặt lại thiết bị, và Apple không cung cấp cho ứng dụng mã định danh phần cứng ổn định cho mục đích này. DeviceCheck và device recall là những giải pháp được cửa hàng chấp thuận, chính vì các bit nằm trên máy chủ của Apple và Google thay vì trên điện thoại.
Nơi cửa hàng vẫn quyết định
Cờ thiết bị thay đổi những gì ứng dụng của bạn cho đi tiếp theo. Cờ không tác động đến lần hoàn tiền trước mắt. Chỉ có hai quy trình hoàn tiền cho phép bạn gửi bằng chứng trước khi cửa hàng quyết định. Apple gửi CONSUMPTION_REQUEST và yêu cầu dữ liệu tiêu dùng trong vòng 12 giờ. Google Play mở quy trình xem xét chargeback mà bạn phản hồi trong vòng 24 giờ qua orders.reviewrefund. Mọi trường hợp khác, từ hoàn tiền 48 giờ của Google Play đến hoàn tiền qua bộ phận hỗ trợ và hoàn tiền tự động cho giao dịch chưa được xác nhận, đều được quyết định mà không có bạn. Chargeback là cuối cùng khi ngân hàng đã phán quyết.
RefundHalt phản hồi mọi CONSUMPTION_REQUEST và quy trình xem xét chargeback của Google Play trong thời hạn bằng dữ liệu sử dụng thực tế của bạn, và liên kết mỗi lần hoàn tiền với tài khoản đã yêu cầu. Nhờ vậy máy chủ của bạn biết cần gắn cờ thiết bị nào khi thiết bị đó kết nối lại.
Câu hỏi thường gặp
- DeviceCheck của Apple dùng để làm gì?
- DeviceCheck cho phép máy chủ của bạn lưu và đọc hai bit cho mỗi thiết bị trên máy chủ của Apple. Các ví dụ do chính Apple đưa ra là đánh dấu thiết bị đã nhận ưu đãi khuyến mãi và gắn cờ thiết bị mà bạn xác định là gian lận. Bạn quyết định ý nghĩa của các bit và khi nào đặt lại chúng.
- DeviceCheck có còn hoạt động sau khi người dùng xóa ứng dụng hoặc tạo tài khoản mới không?
- Có. Các bit thuộc về thiết bị và được lưu trên máy chủ của Apple, không nằm trong ứng dụng hay tài khoản người dùng. Vì vậy, một lần đăng ký mới trên cùng thiết bị sẽ đọc được cùng các bit sau khi cài lại ứng dụng. Apple để việc đặt lại cho bạn, ví dụ khi thiết bị được bán đi.
- Android có công cụ tương đương DeviceCheck không?
- Có, đó là device recall trong Play Integrity API. Tính năng này lưu ba bit tùy chỉnh cho mỗi thiết bị trên máy chủ của Google, vẫn còn sau khi cài lại và đặt lại thiết bị, được dùng chung cho mọi ứng dụng trong tài khoản nhà phát triển của bạn, và giữ dữ liệu trong 3 năm kể từ lần truy cập cuối cùng. Tính năng đang ở giai đoạn beta và cần được chấp thuận.
- Cờ thiết bị có ngăn khách hàng nhận hoàn tiền không?
- Không. Apple và Google tự quyết định hoàn tiền. Cờ thiết bị chỉ kiểm soát những gì ứng dụng của bạn đề xuất tiếp theo, như tín dụng miễn phí hoặc ưu đãi khuyến mãi. Bằng chứng của bạn chỉ được tính trong CONSUMPTION_REQUEST của Apple, phản hồi trong vòng 12 giờ, và quy trình xem xét chargeback của Google Play, phản hồi trong vòng 24 giờ.
- Có được phép chặn thiết bị vì lạm dụng hoàn tiền không?
- Google chỉ cho phép dùng device recall cho an ninh ứng dụng và ngăn chặn lạm dụng, gian lận và truy cập trái phép, đồng thời cấm dùng nó để lấy dấu vân tay thiết bị hoặc theo dõi người dùng. Vì thiết bị có thể được bán lại và dùng chung, cách dùng an toàn hơn là giữ lại các phần thưởng miễn phí trên thiết bị bị gắn cờ thay vì khóa nó khỏi các tính năng trả phí.
Nguồn và tài liệu đọc thêm
- Apple Developer: DeviceCheck
- Apple Developer: Accessing and modifying per-device data
- Apple Developer: DCDevice
- Apple Developer: Implementing introductory offers in your app
- Android Developers: Detect repeat abuse using device recall (beta)
- Apple Developer Forums: Refund abuse
- Google Play Help: Apps, games, and in-app purchases refund policies
- Play Console Help: Updates to refund protection and chargeback cost responsibility
RefundHalt
Chế độ tự động xử lý hoàn tiền cho App Store và Google Play
Đọc tiếp
Phí alternative billing của Google Play tại Mỹ áp dụng từ ngày 1 tháng 10, còn việc hoàn tiền cho các giao dịch đó vẫn là việc của bạn
Từ ngày 1 tháng 10 năm 2026, Google Play thu phí dịch vụ với các giao dịch mua tại Mỹ thực hiện qua alternative billing hoặc external content links. Google vẫn không xử lý bất kỳ khoản hoàn tiền nào. Dưới đây là nội dung các bảng phí, cách báo cáo hoàn tiền về Google, và mỗi lần hoàn tiền khiến bạn tốn bao nhiêu.
Yêu cầu hoàn tiền quá mức có thể khiến bạn mất nhiều hơn chính khoản hoàn tiền, vì cả hai kho ứng dụng đều coi đó là tín hiệu chất lượng
Hướng dẫn 5.6.4 của Apple nêu rõ yêu cầu hoàn tiền quá mức là dấu hiệu ứng dụng không đạt chuẩn chất lượng, còn Thỏa thuận phân phối của Google cho phép gỡ ứng dụng của nhà phát triển mới dựa trên tỷ lệ hoàn tiền. Đây là những gì mỗi kho quy định, cái giá khi bị gỡ và cách tránh rủi ro.