/// <summary>
/// Checks the product's transaction ID for uniqueness
/// against the transaction log and calls the Application's
/// ProcessPurchase method if so.
/// </summary>
private void ProcessPurchaseIfNew(Product product)
{
if (useTransactionLog && m_TransactionLog.HasRecordOf(product.transactionID))
{
m_Store.FinishTransaction(product.definition, product.transactionID);
return;
}
var p = new PurchaseEventArgs(product);
// Applications may elect to delay confirmations of purchases,
// such as when persisting purchase state asynchronously.
if (PurchaseProcessingResult.Complete == m_Listener.ProcessPurchase(p))
{
ConfirmPendingPurchase(product);
}
}