@@ -18,9 +18,12 @@
1818 * Authored by: Diego Sarmentero <diego.sarmentero@canonical.com>
1919 */
2020
21+#include <QDebug>
2122#include <QLocale>
2223#include <QTimer>
2324
25+#include <libpay/pay-package.h>
26+
2427#include "Payments.h"
2528
2629Payments::Payments(QObject *parent)
@@ -75,10 +78,41 @@ void Payments::setStoreItemId(const QString &store_item_id)
7578 }
7679}
7780
81+void observer(PayPackage* package, const char* /*itemid*/, PayPackageItemStatus status, void* user_data) {
82+ qDebug() << "observer called";
83+ Payments *self = static_cast<Payments*>(user_data);
84+ pay_package_item_observer_uninstall(package, observer, self);
85+ switch (status) {
86+ case PAY_PACKAGE_ITEM_STATUS_VERIFYING:
87+ break;
88+ case PAY_PACKAGE_ITEM_STATUS_PURCHASED:
89+ self->finished();
90+ break;
91+ case PAY_PACKAGE_ITEM_STATUS_PURCHASING:
92+ break;
93+ case PAY_PACKAGE_ITEM_STATUS_NOT_PURCHASED:
94+ self->error("not purchased");
95+ break;
96+ case PAY_PACKAGE_ITEM_STATUS_UNKNOWN:
97+ break;
98+ default:
99+ break;
100+ }
101+
102+}
103+
78104void Payments::start()
79105{
80106 qDebug("starting the purchase");
81− // start the purchase here, raise finished(), error or canceled when done
82− QTimer::singleShot(3000, this, SIGNAL(finished()));
83− // FIXME ^^^^
107+
108+ auto ba = m_store_item_id.toLocal8Bit();
109+ qDebug() << "the item id is" << m_store_item_id;
110+ auto package = pay_package_new("clickscope");
111+ qDebug() << "after new" << ba.data();
112+ pay_package_item_observer_install(package, observer, this);
113+ qDebug() << "after observer install";
114+ //pay_package_item_start_verification(package, ba.data());
115+ qDebug() << "after start verify";
116+ pay_package_item_start_purchase(package, ba.data());
117+ qDebug() << "after start purchase";
84118}