IAP purchase restoration question (Qt, symbian)
Hi,
I'm calling
current_requestId = iap_client->purchaseProduct(current_productId, IAPClient::ForcedAutomaticRestoration);
and in the completion callback doing this:
void App::purchaseCompleted(int requestId, QString status, QString purchaseTicket)
{
if(QString::compare(status, "OK", Qt::CaseInsensitive)==0
|| QString::compare(status, "RestorableProduct", Qt::CaseInsensitive)==0)
Based on the docs I would have expected that purchaseCompleted will be called with status "RestorableProduct" if it has already been bought. The docs state that purchase will be automatically converted to restoration if possible, which seems logical to me.
However, I got a user report that after firmware upgrade he needed to do another purchase, so either I'm missing something or there is a bug somewhere.
Any advice?
Re: IAP purchase restoration question (Qt, symbian)
Hi Grego
Your understanding is correct for Nokia DRM protection model. For non-DRM protection model Restoration flag does not make sense because in that case restoration policy implementation is up to developer. The both models are recognized on Nokia Store during publishing process : DRM protection model has predefined directory structure for protected resources in the application package like "drm\data\resourceid_588547"; non-DRM protection model does not have such predefined directory structure.
As for firmware upgrade, assuming you are talking about DRM protection model:
DRM protection means license delivering on device. Already bought product is automatically restored on device after device factory reset. That is tested. If device firmware upgrade breaks DRM functionality , definitely you observe a bug. Please let me know your error case details
Re: IAP purchase restoration question (Qt, symbian)
Ok, I didn't have any drm protected assets, I guess this was the problem. Although I don't see why the restoration flag would need to behave differently for drm/non drm case. After all, the developer is free to ignore the restoration flag even in the drm case...
Just to be clear, to get to the Nokia DRM scenario the application package needs to include a file in the drm/data/resourceid_xxxxxx path. Then the DRM restoration policy is applied, even if the file is never used, is that so?
Re: IAP purchase restoration question (Qt, symbian)
[QUOTE]Just to be clear, to get to the Nokia DRM scenario the application package needs to include a file in the drm/data/resourceid_xxxxxx path. Then the DRM restoration policy is applied, even if the file is never used, is that so?[/QUOTE]
yes, that is correct,
Maybe that explanation the difference between the models will help you to select proper one: When your application resources are bundled with the application package it is recommended to protect them with DRM encryption --- otherwise the application resources are supposed to be delivered on device separately from third-party server. And the restoration policy is just derived from the model.