如何在Android客户端获取订阅的到期日期? [英] How to get expiry date for Subscription with client side in Android?

查看:26
本文介绍了如何在Android客户端获取订阅的到期日期?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在使用 android 中的应用内购买实现订阅,我们正在获取如下格式的购买时间戳

We are implementing the subscription using in-app purchase in android, We are getting the purchase timestamp like the below format

'{
   "orderId":"GPA.1234-5678-9012-34567",
   "packageName":"com.example.app",
   "productId":"exampleSku",
   "purchaseTime":1345678900000,
   "purchaseState":0,
   "developerPayload":"bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ",
   "purchaseToken":"opaque-token-up-to-1000-characters"
 }'

但是我们需要在应用程序 UI 中显示到期日期,我们想从 Play 商店获取确切的到期日期.我们假设如果我们手动计算到期日期,那么它可能与 Play 商店的到期日期冲突.谁能解释一下如何在 android 中获取订阅的到期日期?"

But We need to display the expiry date in application UI and we wanna get the exact expiry date from play store. We assume that If we manually calculate the expiry date then it might be the conflict with the play store expiry date. Can anyone explain about "How to get the expiry date for Subscription in android?"

推荐答案

订阅后获取订阅到期日期,需要按照以下步骤操作.

To Get Subscription Expiry date after subscription, need to follow below steps.

第 1 步:首先从以下 api Google Publisher API

Step 1: First Get "mRefreshToken" from following api Google Publisher API

第 2 步:接下来需要使用 params("mRefreshToken", "client_id" 和 "client_secret") 及以下 api 获取access_tokon".

Step 2: Next need to get "access_tokon" using params("mRefreshToken", "client_id" and "client_secret") and below api.

final StringRequest mStringRequest = new StringRequest(Request.Method.POST, "https://accounts.google.com/o/oauth2/token",
    new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            [From response -get access_tokon]
        }
    }, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        error.printStackTrace();
   }}) {
@Override
protected Map<String, String> getParams() {

    Map<String, String> params = new HashMap<>();
    params.put("grant_type", "refresh_token");
    params.put("client_id", "your_client_id");
    params.put("client_secret", "your_client_secret");
    params.put("refresh_token", mRefreshToken);

    return params;
}};

第 3 步:你有来自 api 上面的accessToken",之后使用下面的 api 和 params 获取到期 json

Step 3: You have "accessToken" from above api, after that get expiry json using below api and params

String url = "https://www.googleapis.com/androidpublisher/v2/applications/" + AppController.getInstance().getPackageName() + "/purchases/subscriptions/" + mSubscriptionId + "/" + "tokens/" + mPurchaseToken;

String url = "https://www.googleapis.com/androidpublisher/v2/applications/" + AppController.getInstance().getPackageName() + "/purchases/subscriptions/" + mSubscriptionId + "/" + "tokens/" + mPurchaseToken;

 final StringRequest mStringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {

        @Override
        public void onResponse(String response) {
            [From response -get expiry detail json]
        }
    }, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
    error.printStackTrace();
}}) {

@Override
public Map<String, String> getHeaders() throws AuthFailureError {

    Map<String, String> params = new HashMap<>();
    params.put("Authorization", "Bearer " + accessToken);
    return params;
}};

更多参考:来自 Google 的官方文档网址https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get" 和 "https://developers.google.com/android-publisher/authorization"

For more reference: official document url from Google "https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get" and "https://developers.google.com/android-publisher/authorization"

这篇关于如何在Android客户端获取订阅的到期日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆