0

我正在尝试在 iOS 6.0 上实现托管内容的 IAP。

没有发布一堆代码,我的代码来自 raywenderlich 教程http://www.raywenderlich.com/21081/introduction-to-in-app-purchases-in-ios-6-tutorialhttp://xinsight .ca/blog/iap-content-download-in-ios6/。此代码适用于购买普通的非消耗品。

我创建了一个包含托管内容的新 IAP 项目,并通过 xcode 上传(使用上面第二个链接中描述的方法)。

当我去购买该物品时,它会显示警报,然后我单击购买。此后不久,我的交易失败了,下面调用了 SKPaymentTransactionStateFailed 案例:

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

    for (SKPaymentTransaction * transaction in transactions) {

        switch (transaction.transactionState){
            case SKPaymentTransactionStatePurchased: {

                if (transaction.downloads) {
                    [[SKPaymentQueue defaultQueue] startDownloads:transaction.downloads];
                } else {
                    // unlock features
                    //[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                    [self completeTransaction:transaction];
                }    
                break;               
            }
            case SKPaymentTransactionStateFailed: {
                if (transaction.downloads) {
                    NSLog(@"transaction failed... but found downloads");
                }

                [self failedTransaction:transaction];
                break;
            }
            case SKPaymentTransactionStateRestored: {

                if (transaction.downloads) {
                    [[SKPaymentQueue defaultQueue] startDownloads:transaction.downloads];
                } else {
                    // unlock features
                    //[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                    [self restoreTransaction:transaction];
                }

                break;
            }
            default:
               break;
       }
   }
}

transaction.error.code 似乎是 SKErrorPaymentCancelled。

如果我在 iTunesConnect 中将此 IAP 项目的性质更改为没有托管内容,那么购买就可以完成。我不知道是什么原因造成的。

任何有 IAP 托管内容经验的人都知道我应该注意的任何陷阱吗?可能与我创建托管内容包的方式有关吗?创建包时,我只是将所有内容都放在了 xcode 中的 Supporting Files 组中 - 在 finder 中检查存档包显示内容如下:

/dSYMs

/Info.plist

/Products/Library/InAppPurchaseContent/ProductIDName/Contents/#content here#

/Products/Library/InAppPurchaseContent/ProductIDName/ContentInfo.plist

这个对吗?上传后显示“等待截图”,我理解这是正确的。

4

1 回答 1

0

我也遇到了同样的问题,对于托管在 Apple 服务器上的所有 IAP 内容,我也会收到 SKErrorPaymentCancelled 错误。这个问题似乎来自目前正在解决这个问题的苹果公司。

见那里更多更新:

https://devforums.apple.com/message/839428#839428

iPhone storekit 沙盒停止工作

于 2013-06-25T15:11:29.630 回答