相关疑难解决方法(0)

Obj-C,Storekit restoreCompletedTransactions返回零事务?

我在恢复已完成的交易时遇到了一些问题.

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
Run Code Online (Sandbox Code Playgroud)

我添加了几个例子中提到的观察者,我已经尝试过添加paymentQueueRestoreCompletedTransactionsFinished并且已经有了updatedTransactions.paymentQueueRestoreCompletedTransactionsFinished说没有交易.

我可以买一个产品,如果我再次尝试购买,它会阻止我并说我已经购买了该产品,使用此代码.

SKPayment *payment = [SKPayment paymentWithProductIdentifier:productIdentifier];
[[SKPaymentQueue defaultQueue] addPayment:payment];
Run Code Online (Sandbox Code Playgroud)

我想也许我的捆绑标识符有问题,但这看起来很好,如果不是,购买将不起作用.

我一直在设备和模拟器上尝试这个,但这有相同的结果.此外,它没有什么区别如果我使用英国或美国商店.

我真的抓住了吸管,找出为什么这对我不起作用?

iphone xcode cocoa-touch objective-c storekit

14
推荐指数
1
解决办法
9566
查看次数

从未付费的用户恢复应用内购买

我正在尝试在我的应用中测试应用内购买.

当我通过购买应用内购买的测试用户恢复应用内购买时,一切正常.

但是当我尝试在没有进行应用内购买的用户恢复应用内购买时,我希望框架调用以下方法:

-paymentQueue:restoreCompletedTransactionsFailedWithError:

但相反框架调用:

-paymentQueueRestoreCompletedTransactionsFinished:

喜欢我的测试用户已经购买了应用内购买....

这是正常行为吗?如果是这样,我如何测试用户试图恢复而不购买应用内购买?

cocoa-touch storekit in-app-purchase ios

6
推荐指数
1
解决办法
2628
查看次数

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

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

[[NSBundle mainBundle] appStoreReceiptURL];
Run Code Online (Sandbox Code Playgroud)

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

它与恢复交易有关吗?

我检查了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 …
Run Code Online (Sandbox Code Playgroud)

storekit in-app-purchase ios receipt-validation

6
推荐指数
1
解决办法
680
查看次数