iOS 内购出现重复购买的问题

测试内购时,购买监听多次进入交易完成(SKPaymentTransactionStatePurchased)的状态,,

  • (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
    {
    for (SKPaymentTransaction *transaction in transactions)
    {
    std::string identifier();
    IOSiAPPaymentEvent event;

switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchasing: //购买中
{
NSLog(@"==购买中========");
event = IOSIAP_PAYMENT_PURCHASING;
}
return;
case SKPaymentTransactionStatePurchased: //购买监听 交易完成
{
;
event = IOSIAP_PAYMENT_PURCHAED;
}
break;
case SKPaymentTransactionStateFailed: //购买监听 交易失败
NSLog(@"==交易失败========");
;
event = IOSIAP_PAYMENT_FAILED;
break;
case SKPaymentTransactionStateRestored: //购买监听 恢复成功
NSLog(@"==恢复成功========");
;
// NOTE: consumble payment is NOT restorable
event = IOSIAP_PAYMENT_RESTORED;
break;
}

_iosiap->delegate->onPaymentEvent(identifier, event, transaction.payment.quantity);
}

  • (void)completeTransaction:(SKPaymentTransaction *)transaction
    {
    // Remove the transaction from the payment queue.
    finishTransaction: transaction];

}

因为交易完成之后还有后续处理,比如给玩家添加金币,所以就出现玩家类似刷单的问题。交易成功之后我也有销毁交易------- finishTransaction: transaction];
添加观察员也只调用了一次【
if (!hasAddObserver)
{
addTransactionObserver:self];
hasAddObserver=YES;
}

求各位大神给出出主意,,,,,