2017-11-30 13:27:33 +00:00
|
|
|
// Copyright (c) 2017 Amaplex Software, Inc.
|
|
|
|
// Use of this source code is governed by the MIT license that can be
|
|
|
|
// found in the LICENSE file.
|
|
|
|
|
2018-01-10 05:45:42 +00:00
|
|
|
#ifndef ATOM_BROWSER_MAC_IN_APP_PURCHASE_OBSERVER_H_
|
|
|
|
#define ATOM_BROWSER_MAC_IN_APP_PURCHASE_OBSERVER_H_
|
2017-11-30 13:27:33 +00:00
|
|
|
|
|
|
|
#include <string>
|
2018-01-10 08:18:23 +00:00
|
|
|
#include <vector>
|
2017-11-30 13:27:33 +00:00
|
|
|
|
|
|
|
#include "base/callback.h"
|
2018-01-10 07:55:49 +00:00
|
|
|
#include "base/memory/weak_ptr.h"
|
|
|
|
|
|
|
|
#if defined(__OBJC__)
|
|
|
|
@class InAppTransactionObserver;
|
2018-04-18 01:44:10 +00:00
|
|
|
#else // __OBJC__
|
2018-01-10 07:55:49 +00:00
|
|
|
class InAppTransactionObserver;
|
2018-01-10 08:18:23 +00:00
|
|
|
#endif // __OBJC__
|
2017-11-30 13:27:33 +00:00
|
|
|
|
|
|
|
namespace in_app_purchase {
|
|
|
|
|
|
|
|
// --------------------------- Structures ---------------------------
|
|
|
|
|
|
|
|
struct Payment {
|
|
|
|
std::string productIdentifier = "";
|
|
|
|
int quantity = 1;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Transaction {
|
|
|
|
std::string transactionIdentifier = "";
|
|
|
|
std::string transactionDate = "";
|
|
|
|
std::string originalTransactionIdentifier = "";
|
|
|
|
int errorCode = 0;
|
|
|
|
std::string errorMessage = "";
|
|
|
|
std::string transactionState = "";
|
2018-01-10 08:06:27 +00:00
|
|
|
Payment payment;
|
2018-04-17 23:37:22 +00:00
|
|
|
|
|
|
|
Transaction();
|
|
|
|
Transaction(const Transaction&);
|
|
|
|
~Transaction();
|
2017-11-30 13:27:33 +00:00
|
|
|
};
|
|
|
|
|
2018-01-10 07:55:49 +00:00
|
|
|
// --------------------------- Classes ---------------------------
|
|
|
|
|
|
|
|
class TransactionObserver {
|
|
|
|
public:
|
|
|
|
TransactionObserver();
|
|
|
|
virtual ~TransactionObserver();
|
2017-11-30 13:27:33 +00:00
|
|
|
|
2018-01-10 08:18:23 +00:00
|
|
|
virtual void OnTransactionsUpdated(
|
|
|
|
const std::vector<Transaction>& transactions) = 0;
|
2017-11-30 13:27:33 +00:00
|
|
|
|
2018-01-10 07:55:49 +00:00
|
|
|
private:
|
|
|
|
InAppTransactionObserver* obeserver_;
|
2017-11-30 13:27:33 +00:00
|
|
|
|
2018-01-10 07:55:49 +00:00
|
|
|
base::WeakPtrFactory<TransactionObserver> weak_ptr_factory_;
|
|
|
|
|
|
|
|
DISALLOW_COPY_AND_ASSIGN(TransactionObserver);
|
|
|
|
};
|
2017-11-30 13:27:33 +00:00
|
|
|
|
|
|
|
} // namespace in_app_purchase
|
|
|
|
|
2018-01-10 05:45:42 +00:00
|
|
|
#endif // ATOM_BROWSER_MAC_IN_APP_PURCHASE_OBSERVER_H_
|