iOS IAP,如何判断同一设备上的多个用户

时间:2014-03-26 02:54:13

标签: ios iphone in-app-purchase

例如:单个iPhone设备中有两个不同的游戏角色, 我们称之为A和B.

首先,app用户登录为A,执行IAP操作,A注销未完成购买。

然后,app用户登录为B,然后购买完成事件到货,这是问题,如何判断收据属于A,而不是B.

我用谷歌搜索,发现SKMutablePayment.requestData可用于解决此问题,但 Apple Document 告诉我这是一个保留属性,必须为零,否则付款将被拒绝

  

的RequestData   保留供将来使用。 (只读)

     

@property(非原子,复制,只读)NSData * requestData讨论   默认值为nil。如果requestData不是nil,则为您的付款   请求将被拒绝。

     

可用性适用于iOS 3.0及更高版本。在 SKPayment.h

中声明

1 个答案:

答案 0 :(得分:7)

感谢大家的回复

最后,我发现SKMutablePayment.applicationUsername可以保存我的私人帐户用户名, 但它仅适用于iOS7.0。

保存:

SKMutablePayment* payment = [SKMutablePayment paymentWithProduct:product];
payment.applicationUsername = @"my_username_1001";

读:

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{            
     for (SKPaymentTransaction* trans in transactions) {
        switch (trans.transactionState) {
            case SKPaymentTransactionStateFailed:
                [[SKPaymentQueue defaultQueue] finishTransaction:trans];
                break;
            case SKPaymentTransactionStatePurchased:
                // got private user account here
                NSString* applicationUsername = [[trans payment] applicationUsername];
                break;
            case SKPaymentTransactionStatePurchasing:
                break;
            case SKPaymentTransactionStateRestored:
                break;
        }
    }
}