我刚刚为iOS发布了一个应用程序,我使用了收入猫来帮助IAP。我刚刚发现,任何一个拥有越狱iPhone的人都可以购买假货,而无需付款就能买到“商品”。税务猫有办法核实和确保这种情况不会发生吗?
以下是在应用程序中生成特定信息时的代码(按下按钮):
guard let package = offering?.availablePackages[2] else {
print("No available package")
return
}
Purchases.shared.purchasePackage(package) { (trans, info, error, cancelled) in
// handle purchase
if trans?.transactionState == .purchased {
if let currentUser = Auth.auth().currentUser {
var ref: DatabaseReference!
ref = Database.database().reference()
ref.child("users/\(currentUser.uid)/score").getData(completion: { error, snapshot in
guard error == nil else {
print(error!.localizedDescription)
return;
}
let score = snapshot.value as? Int ?? 0;
let newScore = score + 100
ref = Database.database().reference()
ref.child("users").child(currentUser.uid).updateChildValues(["score": newScore])
});
}
}
}发布于 2022-03-07 04:04:10
从客户端递增score并不是很安全。您可以收听RevenueCat网络钩子,并在成功购买或更新时更新得分服务器端。网络钩子将只有从RevenueCat发出的一个有效的购买,并与苹果公司进行安全验证。
另一种方法是在购买完成块中对服务器进行ping,以检查RevenueCat的最新购买状态。然后从服务器调用RevenueCat的GET /subscriber端点,并确保score已经更新。然后,Webhooks可以用作一种冗余机制。
https://stackoverflow.com/questions/71372315
复制相似问题