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.