Check the status of In-App Subscription in Android

。_饼干妹妹 提交于 2019-12-22 04:12:32

问题


I have created an application in which there is in-app purchases which has monthly auto renewal.. on first time successful payment i have called a web-service in which i have made the user to premium class.

Now if the user has cancelled the payment manually from the google server, how could i know that user has cancelled his/her subscription.

Is there is some PHP code query or from android i have to called something in background to check the status??

Thank you in advace


回答1:


You can check the purchased subscriptions inside the app via

Edit: For subscriptions use "subs", for inapp-purchases use "inapp" e.g.:

Inapp-Purchases: mService.getPurchases(3, getPackageName(), "inapp", null);

Subscriptions: mService.getPurchases(3, getPackageName(), "subs", null);

See also Querying for Purchased Items at http://developer.android.com/google/play/billing/billing_integrate.html

So you can implement a task in your app where you check if the user still has a subscription. If not, you can remove the premium status. Moreover this information could be useful for you:

When the user cancels a subscription, Google Play does not offer a refund for the current billing cycle. Instead, it allows the user to have access to the canceled subscription until the end of the current billing cycle, at which time it terminates the subscription. For example, if a user purchases a monthly subscription and cancels it on the 15th day of the cycle, Google Play will consider the subscription valid until the end of the 30th day (or other day, depending on the month).

source: http://developer.android.com/google/play/billing/billing_subscriptions.html under subscription cancelled

Hope this could help you




回答2:


I haven't tested this, but could you use the autoRenewing field in INAPP_PURCHASE_DATA?

If true, the subscription is active, and will automatically renew on the next billing date. If false, indicates that the user has canceled the subscription.

http://developer.android.com/google/play/billing/billing_reference.html#getBuyIntent

Apparently, the autoRenewing field was added or at least documented in the beginning of 2015.




回答3:


Check the getPurchases() method here. Or if you use Android Studio and have the source code downloaded just press Ctrl + Q on IInAppBillingService.getPurchases method



来源:https://stackoverflow.com/questions/31957406/check-the-status-of-in-app-subscription-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!