00001 #ifndef QIAP_P_H 00002 #define QIAP_P_H 00003 00004 #define INVALID_VALUE -1 00005 #include <iapclient.h> 00006 00007 #include <QStringList> 00008 00009 class QIap; 00010 00018 class QIapPrivate : public QObject 00019 { 00020 Q_OBJECT 00021 00022 public: 00027 explicit QIapPrivate(QIap* aPublicAPI = 0); 00028 00033 virtual ~QIapPrivate(); 00034 00035 void getProducts(); 00036 int purchaseProductByID(QString productId, IAPClient::ForceRestorationFlag restoration); 00037 00038 public: 00039 00043 QStringList products; 00044 00049 int productsRequested; 00050 00054 int current_requestId; 00055 00056 QString current_productId; 00057 QString productId; 00058 00062 IAPClient *iap_client; 00063 00067 QList<IAPClient::ProductDataHash> available_products; 00068 00069 IAPClient::ProductDataList restorableProductItems; 00070 00071 private: 00072 bool isPurchased(int drmErrCode, QString& fileName); 00073 QString getProductId(const QString& path); 00074 void requestNextProduct(); 00075 bool isProductActivated(QString product); 00076 00077 static bool readTicket(const QString&); 00078 static void saveTicket(const QString& purchaseTicket, QString& productID); 00079 static QString getTicketDir(); 00080 static QString getTicketUri(const QString& productID); 00081 static void resetPurchases(); 00082 00083 private slots: 00084 00091 void productDataReceived( int requestId, QString status, IAPClient::ProductDataHash productData ); 00092 void purchaseCompleted( int requestId, QString status, QString purchaseTicket ); 00093 void purchaseFlowFinished( int requestId ); 00094 void userAndDeviceDataReceived( int requestId, QString status, IAPClient::UserAndDeviceDataHash userdata ); 00095 void restorableProductsReceived( int requestId, QString status,IAPClient::ProductDataList items ); 00096 void restorationFlowFinished( int requestId ); 00097 void restorationCompleted( int requestId, QString status, QString purchaseTicket ); 00101 void restoreProducts(); 00102 00103 private: 00104 QIap* d; 00105 friend class QIap; 00106 }; 00107 00108 #endif // QIAP_P_H