Как получить дату окончания подписки со стороны клиента в Android?

Мы осуществляем подписку с помощью покупки в приложении в 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"
 }'

Но нам нужно отобразить дату истечения срока действия в пользовательском интерфейсе приложения, и мы хотим получить точную дату истечения срока действия из игрового магазина. Мы предполагаем, что если мы вручную вычислим дату истечения срока действия, это может привести к конфликту с датой истечения срока действия магазина воспроизведения. Может кто-нибудь объяснить о том, «Как получить срок действия подписки в Android?»

 MurugananthamS06 авг. 2016 г., 07:53
 ram06 авг. 2016 г., 08:01
Это не пользовательское приложение, мы хотим реализовать его так, как каждый пользователь может подтвердить свою подписку с помощью Play Store. Мы хотим реализовать это на стороне клиента.
 ram06 авг. 2016 г., 08:03
Мой вопрос заключается в том, как получить дату истечения срока действия на стороне клиента. Мы сталкиваемся с проблемами аутентификации, чтобы каждый мог объяснить пошаговый процесс на стороне клиента. Возможно в IOS
 Manukumar26 апр. 2018 г., 15:22
Привет, у тебя есть решение?
 MurugananthamS06 авг. 2016 г., 07:50
спросите дату истечения срока действия вашей админской стороны, которую они вам дадут, опубликуйте эту информацию на вашей серверной стороне, они получат срок действия от Google Inapp

Ответы на вопрос(1)

Решение Вопроса

Чтобы получить дату окончания подписки после подписки, необходимо выполнить следующие действия.

Шаг 1: Сначала получите "mRefreshToken" из следующих APIGoogle Publisher API

Шаг 2: Далее необходимо получить «access_tokon» с использованием параметров («mRefreshToken», «client_id» и «client_secret») и ниже 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, после этого получите срок действия json, используя ниже api и params

String url = "https://www.googleapis.com/androidpublisher/v2/applications/"+ AppController.getInstance (). GetPackageName () +" / покупки / подписки / "+ mSubscriptionId +" / "+" токены / "+ 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;
}};

Для получения дополнительной информации: URL официального документа от Google "https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get" а также "https://developers.google.com/android-publisher/authorization"

 Sakthi03 июл. 2018 г., 16:17
Как это возможно?
 Hyndrix04 июл. 2018 г., 06:31
Вы можете извлечь токен + токен обновления из кода, а затем использовать его для доступа ко всем функциям REST с одинаковым уровнем авторизации.
 Sakthi10 июл. 2018 г., 11:35
Храните ваш ключ с безопасным шифрованием и дешифрованием.
 Hyndrix01 июл. 2018 г., 08:42
Я не стал бы включать идентификатор клиента / секретный ключ в приложение для Android, потому что им можно злоупотреблять.

Ваш ответ на вопрос