-
Notifications
You must be signed in to change notification settings - Fork 178
Description
There appears to be completely undocumented functionality by Google that the Google Play app will post status bar notifications for unconfirmed (all?) CANCELED, REFUNDED and EXPIRED messages. EXPIRED is particularly bad since it will never be autoconfirmed unless the same app instance has somehow stayed running for the subscription period. A notification might also be posted in the PURCHASE case when it's a user managed item or subscription and a different device from the purchase device.
When clicked these Google Play notifications will send a MAIN, LAUNCHER intent to the app with extras of "inapp_signed_data" and "inapp_signature" like a PURCHASE_STATE_CHANGED broadcast intent. In my case, it seems to make since that when the application is launched with these extras to call a method like BillingController.onPurchaseStateChanged(context, data, signature, confirm) and then show the "store" activity. Autoconfirming these by the BroadcastReceiver doesn't seem reasonable except for possibly the PURCHASED case. I'm not sure there's any scenario where a PURCHASED notification shouldn't be autoconfirmed.
At a minimum, the confirmed status of purchases needs to be stored in BillingDB and probably a method in BillingController like:
public static void onPurchaseStateChanged(Context context, String signedData, String signature, boolean confirm)
These issues are somewhat discussed in issues #28 and #49.
Handling of this seems dependent on the type of app, but some library support is needed.
Any thoughts?