I noticed strange bug in latest version of SDKBOX IAP:
- open sdkbox-sample-iap app and try to buy something
- close app by pressing “Home” before purchase dialog will appear
- press “Cancel” when purchase dialog will appear
- open multitasking screen and unload app from memory
- relaunch app
After registering IAPListener, onCanceled(const Product& p) will be called. But all fields of Product will be empty, so you will never know which one purchase was cancelled.