应用内购买:如何处理iOS5没有uniqueIdentifier的收据验证



为了在我的应用程序中启用应用内购买,我做了一个教程,引用了一个不是最新的收据验证的VerificationController。

结果我的应用被拒绝了,因为使用了iOS5的唯一标识符。因为我基本上喜欢支持iOS5和iOS6的想法,所以我认为可能会有一个解决方案来获得"Pre iOS6";代码下面运行,但我只找到了这个解决方案,它建议(在配套文件中)只是删除所有的"Pre iOS 6";代码。

- (BOOL)doesTransactionInfoMatchReceipt:(NSString*) receiptString
{
    // some code above
   
    if ([[UIDevice currentDevice] respondsToSelector:NSSelectorFromString(@"identifierForVendor")]) // iOS 6?
    {
#if IS_IOS6_AWARE
        // iOS 6 (or later)
        NSString *localIdentifier                   = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
        NSString *purchaseInfoUniqueVendorId        = [purchaseInfoFromTransaction objectForKey:@"unique-vendor-identifier"];
        NSString *verifiedReceiptVendorIdentifier   = [verifiedReceiptReceiptDictionary objectForKey:@"unique_vendor_identifier"];
        
        
        if(verifiedReceiptVendorIdentifier)
        {
            if (![purchaseInfoUniqueVendorId isEqualToString:verifiedReceiptVendorIdentifier]
                || ![purchaseInfoUniqueVendorId isEqualToString:localIdentifier])
            {
                // Comment this line out to test in the Simulator.
                failCount++;
            }
        }
#endif
    } else {
        // Pre iOS 6 - this part is missing now
        NSString *localIdentifier           = [UIDevice currentDevice].uniqueIdentifier;
        NSString *purchaseInfoUniqueId      = [purchaseInfoFromTransaction objectForKey:@"unique-identifier"];
        
        if (![purchaseInfoUniqueId isEqualToString:verifiedReceiptUniqueIdentifier]
            || ![purchaseInfoUniqueId isEqualToString:localIdentifier])
        {
            // Comment this line out to test in the Simulator.
            failCount++;
        }        
    }
    
// more code
}

我的问题是:如何匹配iOS5的交易信息和收据?为什么它不在VerificationController中了,它不重要吗?

任何想法都很感激,克里斯。

查看解决方案:https://github.com/MugunthKumar/MKStoreKit/issues/142

你不需要验证控制器(它使用[UIDevice[currentDevice]. uniqueidentifier)使MKStoreKit工作正常。我只是删除了这些文件,因为代码从未从MKStoreManager .

或创建自己的UDID: https://github.com/MugunthKumar/MKStoreKit/issues/142#issuecomment-17433634

最新更新