Skip to content

How to handle manual confirmations and Google Play status bar notifications? #97

@thisisnottheaccountyourelookingfor

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions