gpt4 book ai didi

android - 如何在 Android 中获取客户端订阅的到期日期?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:35:06 25 4
gpt4 key购买 nike

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

'{
"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 中获取订阅的到期日期?”

最佳答案

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

第 1 步:首先从以下 api 获取“mRefreshToken”Google Publisher API

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

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 和参数获取过期 json

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;
}};

更多引用: 来自谷歌的官方文档网址“https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get”和“https://developers.google.com/android-publisher/authorization

关于android - 如何在 Android 中获取客户端订阅的到期日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38800937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com