我正在测试针对我们应用的新版本的应用内购买,应用内购买代码之前已经过测试并且工作正常但是现在它要求在购买确认提醒之前两次登录itunes。它仍然可以正常工作,并在双重登录后正确购买该项目,但它有点令人不安。最近有没有人在使用沙盒服务器时遇到过类似的问题?
为了提供更多信息实际交易验证在我们的服务器上发生,我在客户端使用RMStore进行默认的虚拟验证,它实际上什么也没做,但检查应用收据中是否存在productID,酷的是刷新应用收据如果它是nil或者收据中不存在productID。我们的应用程序中只有自动续订订阅,我在测试新购买之前从appstore注销。
这大致是我的代码的样子:
-(void) paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
for (SKPaymentTransaction * transaction in transactions) {
switch (transaction.transactionState)
{
case SKPaymentTransactionStatePurchased:
{
RMStoreAppReceiptVerificator *verificator = [RMStoreAppReceiptVerificator new];
[verificator verifyTransaction:transaction success:^{
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
NSString *receiptStr = [receipt base64EncodedStringWithOptions:kNilOptions];
[self sendReceiptToServer:receiptStr];
}
failure:^(NSError *error) {
...
}];
}
break;
case ... : ...
default: ...
}
};
}
答案 0 :(得分:0)
要使登录工作,您必须注销设置> iTunes中。然后当应用程序使用测试帐户(在itunes connect上创建)提示您时登录。