例如:单个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
中声明
答案 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;
}
}
}