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

查看:180
本文介绍了如何在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商店获得确切的到期日期。我们假设如果我们手动计算到期日,那么它可能与游戏商店到期日冲突。任何人都可以解释如何在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获取mRefreshToken Google发布商API

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

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步:
您从上面有accessToken api,之后使用下面的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 /购买/订阅/获取 https://开发人员。 google.com/android-publisher/authorization

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

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