none
In-App-Purchase on Windows Phone 8 RRS feed

  • Question

  • I developed a Windows Phone 8 App, which is already listed in Store. This app has In-App-Purchase functionality. And it works correct on Windows Phone 8.1. But it doesn't work on Windows Phone 8 (!!!). 

    The included inApp payment product works well with an Windows Phone 8.1 (I can buy the product). But with an Windows Phone 8 an error message "Can't find item in catalog" occurs, if I want to buy the livestream package.

    ListingInformation listings = await CurrentApp.LoadListingInformationByProductIdsAsync(new string[] { "livestreams_7TV" });
    foreach (var item in listings.ProductListings)
    {
    	System.Windows.MessageBox.Show(item.Key + ": " + item.Value);
    }
    // On WP8.1 the product is shown, on WP8 the array is empty.
    Can anybody help?
    Thursday, September 11, 2014 10:15 PM

All replies

  • Not really,

    the problem is, that both methods

    ListingInformation listings = await CurrentApp.LoadListingInformationByProductIdsAsync(new string[] { "livestreams_7TV" });

    and

    ListingInformation listings = await CurrentApp.LoadListingInformationAsync();

    are returning empty ProductListings Dictionary on Windows Phone 8. But it isn't empty on Windows Phone 8.1!!! Very strange. 

    Did I forgot to make some settings, in manifest or in store?


    Friday, September 12, 2014 5:07 PM
  • Hello,

    There are no known code defects for LoadListingInformationByProductIdsAsync. The API you are using should work correctly as long as the "internet client" capability has been set in your app manifest. Typically for durable goods you check to see if a license exists for a particular item before listing the item. Make sure that the item hasn't already been purchased on the device in question. If the item is a consumable make sure that the item in question has been properly fulfilled. If it has not been properly fulfilled it may not show up in the product listing because it is still outstanding. You can call GetUnfulfilledConsumablesAsync to check for any consumables that haven't been fulfilled.

    I hope this helps,

    James


    Windows SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    Friday, September 12, 2014 8:44 PM
    Owner
  • Hello James,

    thank you for the response. A couple days ago I couldn't get any products with GetUnfulfilledConsumablesAsync method. Meanwhile I can get my consumable products, but not durable items. And I did not make any code changes. Strange!!!! GetUnfulfilledConsumablesAsync is not available for Windows Phone 8, as you can see here http://msdn.microsoft.com/en-us/library/windows/apps/jj206950(v=vs.105).aspx If I want to purchase one durable item with RequestProductPurchaseAsync, I'm getting the same message from store "Can't find item in catalog". What is happening here? All products are listed and working on windows phone 8.1 (!!!) but not on windows phone 8. By the way, I'm developing a Windows Phone Silverlight (8.0) app. Does it make a difference to purchase api in Windows Phone 8.1?


    Saturday, September 13, 2014 8:02 PM
  • Hello,

    There is no difference between using LoadListingInformationAsync in an 8.0 Silverlight app running on 8.0 and running on 8.1. The code is virtually identical.

    AFAIK There are no other reports of this issue occurring. There are no open code defects against this or any other product listing APIs.

    The difference might be environmental. How many 8.0 devices have you used to verify this problem? Keep in mind that you need to reproduce the problem on three different makes and models of devices with the exact same version of the OS using three different carriers to be statistically significant.

    If you are able to reproduce the issue on three different devices with the criteria specified above I would recommend that you open a support incident and get one on one assistance. You can do this by going to http://aka.ms/storesupport and following the prompts.

    I hope this helps,

    James


    Windows SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    Tuesday, September 16, 2014 10:06 PM
    Owner
  • Hi,

    I use this method to retrieve durable items 

    await CurrentApp.RequestProductPurchaseAsync(productId, false);

    The only problem is on windows phone 8 i need to wait a bit more after

    submiting an product.

    I think the store cache is slower.

    You can test what products you can retrieve from store:

        
    var listing = await CurrentApp.LoadListingInformationAsync();
        foreach (var product in listing.ProductListings)
        {      Debug.WriteLine(products.Value.Name);    }


    • Edited by Vrany Emil Tuesday, September 16, 2014 10:22 PM
    Tuesday, September 16, 2014 10:20 PM