gpt4 book ai didi

ios - 使用 Apple 服务器验证消耗性 IAP 的正确方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 03:33:24 24 4
gpt4 key购买 nike

从 iOS7 开始,Apple 弃用了 SKPaymentTransaction 实例的 transactionReceipt 属性,现在我们有一张包含所有内容的大收据。在我的应用程序中,我购买了一些消耗品。我的代码:

#pragma mark -
#pragma mark SKPaymentTransactionObserver

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions {

for (SKPaymentTransaction *transaction in transactions) {

switch (transaction.transactionState) {

case SKPaymentTransactionStatePurchased:
[self completeTransaction:transaction];
break;

...
}

}

- (void)completeTransaction:(SKPaymentTransaction *)transaction {
// [self sendRecieptToServer:transaction.transactionReceipt]; // deprecated
[self testMainReceipt];
[self deliverPurchaseNotificationFirIdentifier:transaction.payment.productIdentifier];
[SKPaymentQueue.defaultQueue finishTransaction:transaction];
}

- (void)testMainReceipt {
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];

[self sendRecieptToServer:receipt]; //look at the 'status' field and determine whether a good purchase or not
}

从 Apple 的回复中,我看到“in_app”用一个数组归档,其中始终包含 1 个项目——我最近购买的商品,无论我之前购买过多少次。消耗品采购的运作方式是否正确?对于最近的购买,我总是会得到包含 1 个项目和“状态”字段的数组?或者有更好的方法吗?

最佳答案

enter image description here

您每次需要这些项目时都需要购买,而且您不能免费再次下载它们。如果您删除并重新安装应用程序,或在新设备上安装应用程序,您可能会丢失购买的消耗品。例如,如果您在 iPod touch 上安装了一个您开始在 iPhone 上玩的游戏,游戏级别会同步,但您在 iPhone 上购买的额外生命值或经验值不会同步。

消耗品可以是游戏币、额外生命值、额外经验值。

消耗品无法恢复,并且在收货时也会出现。

您可以找到更多详细信息 link .你也可以查看this .

关于ios - 使用 Apple 服务器验证消耗性 IAP 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45958940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com