语言

Menu
Sites
Language
About IAP functional specifications

Hello,

I have some questions about the behavior of IAP.

 

1. IAP allows nothing but 1 on the param _startNumber:

When calling get_purchased_item_list or get_item_list, 
IAP returns right answers with the items list only when the calling param _startNumber is just 1 but it returns empty list when _startNumber is not 1. 
(but it does not occur errors)

Is any way to get item list with other range not starting from 1?

 

2. IAP processes only one request at once

I want to know 1. current item list and 2. purchased list as soon as possible.

To make this, I send their requests consequently without waiting response of first one.
However the result of them is not as I expected.  
I confirmed the requests are sent successfully but the second request seems to be ignored by the store
and only the response of the first request is returned to the client.
That means I have to wait until getting the first response to send the second request.

Is any way to make IAP processes one more requests at once? 

 

3. Output of get_*_item_list

On P19 of IAP Programming Guide, one of the return value, _totalCount should be the count of items based on _startNumber and _endNumber.
However, It always returns the total number of the item group that is not based on _startNumber and _endNumber.
That make me confused on making my application with IAP. 

Could you let me know which is the right behavior on IAP?

 

Thanks,

 

编辑者为: Unseon Ryu 17 10月, 2013

响应

7 回复
Lakshmi Grandhi

Forwarded your queries to concerened people, will get back to you

Mallikarjun Hunalli

1. Yeah IAP support the startNumber as "1".

Due to bug in server, IAP client is returning one item less or no item if total itemlist=2 or less, when you call with startNumber=2 or more.

Fix is available from Oct 31 for startNumber=2 or more.

2. As IAPClient works on AppControl mechanisam. you can send multipul requests and response is async and based on, If the calling application needs to get some result for application control, it must be valid till AppControlResponseListener::OnAppControlCompleteResponseReceived() is invoked. For example, a form object listener must not be deleted before the system invokes  IAppControlResponseListener::OnAppControlCompleteResponseReceived(). 

3. If you are checking the totalCount with startNum=2, then you will get one less item. if you check with startNum=1, then you should get the exact count. Please let me know what you tested with example.

 

 

 

Unseon Ryu

Thank your for your clarification.

Let me explain more detail on the Question 2.

I found out the second request is succeeded when sending multi requests, but its second response ( It may be OnAppControlCompleteResponseReceived on native and ApplicationControlIDataArrayReplyCallback on web app ) is always returned with "onfailure" callback )

AppControl itself supports multi requests and multi async responses as you explained.  but I think it is a matter of IAP not AppControl. 

In my case the sample IAP app always receive the secon response with "onfailure".  

Could you confirm one more time whether IAP supports multi request without any problem?

 

Thanks,

Mallikarjun Hunalli

User can send any number of requests to IAP. However IAP is designed in such a way that, after each appControl request, IAP application get invokes and after each operation completion (getItemList, get purchased item list, purchase) it terminates.

In your case, your first request is invoking IAP operation, and your second request is taken by already running application. After completing the first request(OnAppControlCompleteResponseReceived) IAP Application terminates. Hence IAP is not active to send a response to second request.

Let me know importance of your use case. If it’s really important and good to keep application active until it serves all the requests, then I’ll check if we can change our logic.

Unseon Ryu

I hope the two kind of the information (item list and purchased item list) to be taken simultaneously and I think many developers want that.

 Or I have to find another way to send request with guarranty.  blocking or pooling.

Futherrmore, Since sending IAP request is async method, I have to make a logic to block the user interaction so that the app stop the user sending other IAP request while IAP is not ready.  I think this kind of UX influences our IAP revenue.

Thanks,

Mallikarjun Hunalli

I think, you can easily make both requests blocking just by adding a busy loop until you get a response.

Add a pop-up with busy animation. 

Unseon Ryu

I understand.  Thank you for your help.