繁体   English   中英

在iOS In-App-Purchases收据验证中返回许多交易

[英]Returns many transactions on iOS In-App-Purchases receipt validation

我的应用程序包含可消耗的IAP产品,当我使用以下代码调用验证收据时返回多个事务:

[[NSBundle mainBundle] appStoreReceiptURL];

有没有办法返回最后一笔交易

它与恢复交易有关吗?

我检查了restoreCompletedTransaction inapp purchase的多次收据计数 ,这个iOS应用内购买恢复返回了许多交易

我试图恢复所有购买但它没有用。

我正在使用这些线路来拨打收据:

- (void) checkReceipt {

NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
if(!receipt) {

}
NSError *error;
NSDictionary *requestContents = @{@"receipt-data": [receipt base64EncodedStringWithOptions:0]};
NSLog(@"requestContents:%@", requestContents);
NSData *requestData = [NSJSONSerialization dataWithJSONObject:requestContents
                                                      options:0
                                                        error:&error];

if (!requestData) {  }

NSURL *storeURL = [NSURL URLWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"];

NSMutableURLRequest *storeRequest = [NSMutableURLRequest requestWithURL:storeURL];
[storeRequest setHTTPMethod:@"POST"];
[storeRequest setHTTPBody:requestData];

NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:storeRequest queue:queue
                       completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {

                           if (connectionError) {


                           } else {


                           }
                       }];

}

注意:此应用程序支持iOS 8+。

这与恢复交易无关,这是因为苹果在做出验证请求时会响应用户所做的所有应用内交易。 如果您在本地解码,则收据中包含相同的信息。

如果您正在查找最后一个事务,您可以按purchase_date_ms对数组进行排序,然后选择最后一个。

我的目标-c不是很热,所以我无法帮助您进行排序,但本文档可能有所帮助: https//developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Collections/Articles/Arrays.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM