コード例 #1
0
        //---------------------------------------------------------------
        //---------------------------------------------------------------
        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);
        }
コード例 #2
0
        //---------------------------------------------------------------
        //---------------------------------------------------------------
        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);
        	}
        }