//--------------------------------------------------------------- //--------------------------------------------------------------- void GooglePlayIAPJavaInterface::OnTransactionStatusUpdated(u32 in_statusId, const CSNetworking::IAPSystem::Transaction& in_transaction) { if(m_transactionStatusDelegate == nullptr) return; CSNetworking::IAPSystem::Transaction::Status status = CSNetworking::IAPSystem::Transaction::Status::k_failed; //This requires a little bit of faith. These numbers correspond to the constants defined //in the java transaction description // public final static int SUCCEEDED = 0; // public final static int FAILED = 1; // public final static int CANCELLED = 2; // public final static int RESTORED = 3; // public final static int RESUMED = 4; // public final static int REFUNDED = 5; switch(in_statusId) { case 0: status = CSNetworking::IAPSystem::Transaction::Status::k_succeeded; AddToPendingCache(in_transaction.m_transactionId); break; case 1: status = CSNetworking::IAPSystem::Transaction::Status::k_failed; break; case 2: status = CSNetworking::IAPSystem::Transaction::Status::k_cancelled; break; case 3: status = CSNetworking::IAPSystem::Transaction::Status::k_restored; break; case 4: status = CSNetworking::IAPSystem::Transaction::Status::k_resumed; break; case 5: status = CSNetworking::IAPSystem::Transaction::Status::k_refunded; break; } CSNetworking::IAPSystem::TransactionSPtr transaction(new CSNetworking::IAPSystem::Transaction()); transaction->m_productId = in_transaction.m_productId; transaction->m_transactionId = in_transaction.m_transactionId; transaction->m_receipt = in_transaction.m_receipt; m_transactionStatusDelegate(status, transaction); }
//--------------------------------------------------------------- //--------------------------------------------------------------- void AmazonIAPJavaInterface::OnTransactionStatusUpdated(u32 in_statusId, const CSNetworking::IAPSystem::Transaction& in_transaction) { if(m_transactionStatusDelegate != nullptr) { CSNetworking::IAPSystem::Transaction::Status status = CSNetworking::IAPSystem::Transaction::Status::k_failed; //This requires a little bit of faith. These numbers correspond to the constants defined //in the java class CPurchaseTransaction const u32 k_purchaseSucceeded = 0; const u32 k_purchaseResumed = 1; const u32 k_purchaseRestored = 2; const u32 k_purchaseFailed = 3; switch(in_statusId) { case k_purchaseSucceeded: status = CSNetworking::IAPSystem::Transaction::Status::k_succeeded; break; case k_purchaseResumed: status = CSNetworking::IAPSystem::Transaction::Status::k_resumed; break; case k_purchaseRestored: status = CSNetworking::IAPSystem::Transaction::Status::k_restored; break; case k_purchaseFailed: default: status = CSNetworking::IAPSystem::Transaction::Status::k_failed; break; } CSNetworking::IAPSystem::TransactionSPtr transaction(new CSNetworking::IAPSystem::Transaction()); transaction->m_productId = in_transaction.m_productId; transaction->m_transactionId = in_transaction.m_transactionId; transaction->m_receipt = in_transaction.m_receipt; m_transactionStatusDelegate(status, transaction); } }