Tất cả bài viết
Cẩm nangĐọc trong 8 phút

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ì.

Một chiếc điện thoại thông minh cũ úp mặt trên quầy kính của cửa hàng, có buộc một thẻ đồng, minh họa cách DeviceCheck đánh dấu thiết bị thay vì tài khoản

Đ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ỏiApple DeviceCheckGoogle Play device recall
Trạng tháiPhát hành chính thứcBeta, cần chấp thuận qua biểu mẫu quan tâm
Số bit mỗi thiết bị23
Nơi lưu trữMáy chủ của AppleMáy chủ của Google
Còn sau khi cài lại và đặt lạiLưu phía máy chủ, Apple để việc đặt lại cho bạnCó, cả hai, theo Google
Dùng chung giữa các ứng dụng của bạnGắn với tài khoản nhà phát triển của bạnCó, mọi ứng dụng trong tài khoản nhà phát triển
Dấu thời gianNăm và tháng cập nhật gần nhấtNgày ghi của từng bit
Thời gian lưu giữCho đến khi bạn đặt lại3 năm kể từ lần đọc hoặc ghi cuối cùng
Mã để ghiMã DCDevice mới, dùng một lầnMã toàn vẹn đã xác minh, dùng được trong 14 ngày
Yêu cầu bổ sungApp ID đã đăng ký với tài khoản của bạnPlay 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ớiGiữ 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òngTiê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ếtTrả cho doanh số rồi bị hoàn tiềnTạ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 2026Giá trừ phí dịch vụ, cộng phí ngân hàng, mỗi lầnNhư 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àngDo cửa hàng quyết địnhVẫn do cửa hàng quyết định
Một ngăn kéo chứa các điện thoại thông minh giống hệt nhau trong xưởng sửa chữa, một chiếc được đánh dấu bằng dải băng dính màu cam, minh họa cách cờ thiết bị tách riêng một chiếc điện thoại giữa nhiều chiếc khác

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

RefundHalt

Chế độ tự động xử lý hoàn tiền cho App Store và Google Play

Đọc tiếp

Yêu cầu hoàn tiền tiếp theo đã đang trên đường đến.

Thiết lập RefundHalt trong khoảng thời gian bạn cần để đọc thêm một email hỗ trợ về khoản hoàn tiền mà mình chưa kịp phản biện.