1

我正在为我们的应用程序的新版本测试应用内购买,应用内购买代码之前已经过测试并且工作正常,但是现在它要求在购买确认警报之前两次登录 iTunes。它仍然可以正常工作并在双重登录后正确购买该项目,但它有点令人不安。最近有人在沙盒服务器上遇到过类似的问题吗?

为了提供更多信息,实际交易验证发生在我们的服务器上,我在客户端使用 RMStore 进行默认虚拟验证,它实际上什么都不做,只是检查应用收据中是否存在 productID,很酷的一面是它会刷新应用收据收据中不存在 nil 或 productID。我们的应用中只有自动续订订阅,我在测试新购买之前从应用商店注销。

这大致是我的代码的样子:

-(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: ...
        }
    };
}
4

1 回答 1

0

要使登录工作,您必须注销设置> iTunes。然后在应用程序提示您时使用测试帐户(在 iTunes Connect 上创建)登录。

于 2015-07-24T12:38:59.273 回答