Android Google Billing 应用内提供有关产品的所有信息(包括是否购买)
iOS 应用内购买 (IAP) 怎么样?
我不想在用户购买后将购买的商品保存在本地(iOS 的 UserDefaults)或保存到我自己的服务器
Android 使用 Google Play 服务、AIDL即使在离线模式下也能获取已购买的商品
为了Android的安全,我们可以验证用户是否真的购买了商品(并且没有使用一些黑客应用程序免费获取它) - https://developer.android.com/google/play/billing/billing_best_practices#validating-purchase-服务器
当用户的设备互联网启用时,我们可以对已购买的物品进行这种额外验证(尽管仅在购买物品期间检查它应该足够了),如果互联网被禁用,我们可以暂时说用户购买了它(但如果他没有购买)购买它然后无论如何都需要互联网,在这种情况下我们无论如何都会在我们的服务器上验证它)
那么 iOS 是如何工作的呢?它是否有一些(我不知道)iTunes 服务来获取特定应用程序的 IAP 信息?
小智 -3
是的,在 iOS 上,您应该使用 StoreKit 来获取有关该应用程序可用的所有应用内购买的详细信息。
在 App Store connect 中设置应用内购买后,您将获得购买 ID。
要检索有关它们的信息,您应该使用购买 ID 发出 SKProductRequest。这将返回所需的信息。
import StoreKit
class YourPurchaseManagerClass: NSObject {
var productsRequest: SKProductsRequest?
var products: [SKProduct]?
func validateProductIdentifiers(productIdentifiers: Set<String>) {
// Create and start the
productsRequest = SKProductsRequest(productIdentifiers: productIdentifiers)
productsRequest?.delegate = self
productsRequest?.start()
}
}
extension YourPurchaseManagerClass: SKProductsRequestDelegate {
func productsRequest(_ request: SKProductsRequest,
didReceive response: SKProductsResponse) {
// Store the products data. This will contain the information about the purchases
products = response.products;
for invalidIdentifier in response.invalidProductIdentifiers {
// Handle any invalid product identifiers.
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个专门讨论检索应用内购买信息并包含示例代码的链接。
以下是有关整个应用内购买设置流程的 Apple 文档的链接
| 归档时间: |
|
| 查看次数: |
3009 次 |
| 最近记录: |