SDKBOX IAP / Android: onPurchaseHistory only receives first subscription

Hi everybody!
I am struggeling with a huge problem in my opti*Map app for Android: Customers purchased a subscription that renewed after a month and which was billed as expected. So far so good.
BUT: ListenerIAP::onPurchaseHistory() only receives the date of the initial subscription, NOT the date of the renewed subscription. So they payed for a subscription without getting the service they payed for.
I upgraded to SDKBOX V1.4.1.0 today but that did not solve the problem.
Any suggestions or questions are very welcome!
Best regards,
Jens

I debugged the PurchaseHistory. this api willn’t return the renew receipt,
if you want get receipt status, you should use google developer api to check subscription status.

https://developer.android.google.cn/reference/com/android/billingclient/api/BillingClient?hl=zh-cn#queryPurchaseHistoryAsync(java.lang.String,%20com.android.billingclient.api.PurchaseHistoryResponseListener)

Hi,
thanks for your answer!
I would be very grateful if the SDKBOX function onPurchaseHistory() would return the renewed receipt instead of the initial receipt if the purchase item is a subscription.
What I really want to avoid is calling the Google API parallel to using the SDKBOX.
Do you see a chance that the SDKBOX logic will be changed in the near future?
Many thanks and best regards,
Jens

Hi,
I still would like to continue to use SDKBOX for IAPs!
Any chance for a fix?
Otherwise I would have to implement my own code which would not be a good path of solving the problem.
Still grateful for an answer from an SDKBOX developer…
Best regards,
Jens

the billingclient lib have not api to check subscription status. and google sugest use Google API to check subscription status.

Hi,
just for my proper understanding: The billingclient lib you talk about is the billingclient lib within SDKBOX? Correct?
Best regards,
Jens

yes, it is.

Great! :grinning:
So it would be possible to change SDKBOX/IAP functionality (for Android) to return the renewed receipt instead of the initial receipt in a future version? Is that true?
Best regards,
Jens

you can take a look at restore api, maybe it can meet your needs.

Within the listener function onInitialized() I call sdkbox::IAP::restore().

iOS:
onRestored() will be called as expected for each product.

Android:
onRestored() will NOT be called! However onRestoredComplete() will be called. Within onRestoredComplete() I therefore call sdkbox::IAP::getPurchaseHistory(). This returns a JSON string which I parse. The problem: Only the initial purchase date can be found in the JSON string.

==> What do I have to change in my code in order to get onRestored() called for each product - preferrably with the date of the renewal - not the date of the initial purchase?

Thanks for your help! :slightly_smiling_face:

if product type is consumeable, restore will ignore it.

No, product type is subscription!

Are you involved in the development of the SDKBOX concerning In-App Purchases, if I may ask?

Best regards,
Jens

hmmm…, i think the only way is use google api to query the renewed receipt on server side.

This discussion is not helpful at all! :frowning_face:

In my view there is a bug in the SDKBOX IAP and all I am asking for is an indication whether the bug is going to be fixed in the near future. I would be very happy if I could avoid writing my own code to query the Google API for the renewed receipt!

If you are not involved in SDKBOX IAP implementation that please say so because otherwise this discussion is a waste of time for both of us, unfortunately.

  1. yes, i involved in SDKBOX IAP implementation.
  2. as you see, SDKBox IAP use billingclient on android, and i think can’t get the renewed receipt by billingclient.