【问题标题】:iOS IAP, how to judge multiple user at the same deviceiOS IAP,如何判断同一设备上的多个用户
【发布时间】:2014-03-26 02:54:12
【问题描述】:

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

首先,app用户以A身份登录,执行IAP动作,A注销未完成购买。

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

我google了一下,发现SKMutablePayment.requestData可以用来解决这个问题,但是Apple Document告诉我这是一个保留属性,必须为nil,否则付款将被拒绝。

请求数据 保留供将来使用。 (只读)

@property(nonatomic, copy, readonly) NSData *requestData 讨论 默认值为无。如果 requestData 不为零,您的付款 请求将被拒绝。

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

中声明

【问题讨论】:

  • 所以你的问题是,如何将用户身份(如用户名)与 IAP 请求一起传递?
  • @Raptor 是的,我想。
  • 我认为这不是问题。退出并不会删除您的 IAP。
  • @RhythmicFistman,是的,IAP仍然存在,但我不知道它属于A还是B?
  • IAP 无论如何都是匿名的,你无法区分 A 和 B。你只能得到有效的收据。

标签: ios iphone in-app-purchase


【解决方案1】:

感谢大家的回复

最后,我发现 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;
        }
    }
}

【讨论】:

  • 很高兴知道如何在 ios6 上处理这个问题?
  • 这是非常好的方法 :) 但是当我尝试恢复事务时遇到了问题。恢复后,applicationUsername 返回 NULL。你能帮帮我吗?
  • @AlexSamnas 你试过 trans.originalTransaction.applicationUsername 吗?
  • @LolaRun 不,我终于找到了恢复事务问题的另一种方法。这是我修复它的方法(效果很好):stackoverflow.com/a/25768965/3233154
  • @LolaRun: trans.originalTransaction.applicationUsername 真的有效吗?你测试过吗?我不想尝试 Alex Samnas 的方法,因为它可能需要我在我的桌子上设置另一组属性,哈哈。
猜你喜欢
  • 2011-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多