Перейти к содержанию

Дополнительные возможности для работы с платежами в SDK на Android (Google Play)🔗

Открытие Менеджера по управлению подписками.🔗

Некоторые магазины позволяют пользователю управлять своими подписками (Google, Amazon, Huawei), а некоторые магазины требуют добавить данную возможность в ваше приложение (Google). Для открытия менеджера по управлению подписками, то есть перенаправить пользователя в магазин в нужный раздел, достаточно воспользоваться следующей функцией:

import games.my.mrgs.billing.MRGSBilling;

MRGSBilling.getInstance().openSubscriptionManager(Activity);

Поддержка промокодов🔗

MRGS поддерживает работу с промокодами создателей контента - при его использовании создатель получает бонус. Системы добавляются по запросу.

Для проверки наличия промокода, введенного пользователем, можно воспользоваться методом:

import games.my.mrgs.billing.MRGSBilling;

MRGSBilling.getInstance().checkPromoCode("PromoTest", (valid, error) ->
{
    if (valid) {
        // Apply for later purchases
    }
});

Затем, при начале платежа, необходимо добавить промокод в параметры платежа:

import games.my.mrgs.billing.MRGSBilling;

final MRGSBillingEntities.MRGSBankPurchaseRequest request = new MRGSBillingEntities.MRGSBankPurchaseRequest("test.product.id");
request.setPromoCode("PromoTest");

После успешной покупки и проверки платежа, MRGS сообщит об использовании промокода сервису (тогда создатель контента, выпустивший промокод, получает бонус).

Смена подписки🔗

Пользователь может сменить одну подписку на другую. Например - с помесячной оплатой на годовую. Для этого необходимо воспользоваться методом changeItem. Первым параметром необходимо указать новую подписку, вторым параметром - старую

import games.my.mrgs.billing.MRGSBilling;
import games.my.mrgs.billing.MRGSBillingEntities.MRGSBankPurchaseRequest;

// Подписка на которую хочет перейти пользователь
final String newSubscription = "games.my.mrgs.newsubs";
// Подписка с которой хочет перейти пользователь
final String oldSubscription = "games.my.mrgs.oldsubs";

final MRGSBankPurchaseRequest request = new MRGSBankPurchaseRequest(newSubscription);
request.setOldSubscriptionIdentifier(oldSubscription);

MRGSBilling.getInstance().buyItem(request);

Подробнее о смене подписки читайте на сайте Google Billing

Скидки на подписки🔗

В консоли Google Play вы можете указать скидку на первую покупку подписки и период, в течении которого будет списываться именно эта, начальная цена. Например подписка стоит 100р в месяц, а вы можете для первых трех месяцев указать цену 50р в месяц. Для того чтобы узнать на клиенте доступна ли пользователю скидка на подписку, необходимо проверить цену в поле introductoryPrice класса MRGSPurchaseItem

import android.text.TextUtils;

import androidx.annotation.NonNull;

import games.my.mrgs.MRGSLog;
import games.my.mrgs.billing.MRGSBillingDelegate;
import games.my.mrgs.billing.MRGSBillingEntities.MRGSBankProductsResponse;
import games.my.mrgs.billing.MRGSBillingProduct;

final MRGSBillingDelegate listener = new MRGSBillingDelegate() {
    @Override
    public void onReceiveProductsResponse(@NonNull MRGSBankProductsResponse response) {
        for (MRGSBillingProduct product : response.getValidItems()) {
            if (!TextUtils.isEmpty(product.getIntroductoryPrice())) {
                MRGSLog.d("Has introductory price: " + product.getIntroductoryPrice());
                MRGSLog.d("Introductory period: " + product.getIntroductoryPeriod());
            }
        }
    }
};

Активация промо-кодов🔗

Вы можете выдать определенный товар в игре с помощью активации промо-кода. Промокоды можно завести в консоли Google Play, подробнее читайте в документации Google Billing

Для активации промо-кода внутри приложения воспользуйтесь методом redeemPromoCode

import games.my.mrgs.billing.MRGSBilling;

MRGSBilling.getInstance().redeemPromoCode("XXXXXXXXXXXX");

Обнаружение мошенничества (Karaganda Fraud Prevention API)🔗

Для того чтобы помочь Google обнаружить мошенничество до того, как это произойдет вы можете воспользоваться следующими методами: setObfuscatedAccountId и setObfuscatedProfileId

import games.my.mrgs.billing.MRGSBilling;
import games.my.mrgs.billing.MRGSBillingEntities.MRGSBankPurchaseRequest;

final MRGSBankPurchaseRequest purchaseRequest = new MRGSBankPurchaseRequest(<sku>, <developerPayload>);
purchaseRequest.setObfuscatedAccountId(<obfuscatedAccountId>);
purchaseRequest.setObfuscatedProfileId(<ObfuscatedProfileId>);

MRGSBilling.getInstance().buyItem(purchaseRequest);

В случае, если вы не установите данный идентификатор, MRGS автоматически установит его значение как хеш от пользователя, выставленного нам при старте

В данный момент подписки не поддерживаются

Поддержка платежей в сторонних магазинах приложений🔗

Помимо биллинга Google, MRGS поддерживает работу с магазинами Samsung и Amazon, Huawei/AppTouch

Подключение платежей Samsung🔗

  • Загрузите последнюю версию библиотеки с сайта Android
  • Извлеките из архива файлы
  • Добавьте библиотеку IAP5Helper.aar в свой проект
  • При инициализации MRGS укажите тип биллинга "samsung"
import games.my.mrgs.MRGSExternalSDKParams;
import games.my.mrgs.MRGSExternalSDKParams.SamsungBillingParams;
import games.my.mrgs.MRGSExternalSDKParams.SamsungBillingParams.OperationMode;
import games.my.mrgs.MRGSPlatform;
import games.my.mrgs.MRGService;
import games.my.mrgs.MRGServiceParams;

public class YourApplicationClass extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        // Available MRGSPlatform: AMAZON, ANDROID, HUAWEI, SAMSUNG and FACEBOOK_CLOUD
        final MRGServiceParams params = MRGServiceParams.init(<MRGS_APP_ID>, <CLIENT_SECRET>, MRGSPlatform.AMAZON);

        // Setting Samsung SDK
        final MRGSExternalSDKParams externalSDKParams = MRGSExternalSDKParams.newInstance();

        // Available OperationMode: TEST_FAILURE, PRODUCTION, TEST
        externalSDKParams.samsungBillingParams = SamsungBillingParams.init(OperationMode.PRODUCTION);

        MRGService.service(context, params, externalSDKParams);
    }
}

Подключение платежей Amazon🔗

  • Загрузите последнюю версию библиотеки с сайта Android
  • Извлеките из архива файлы
  • Добавьте библиотеку in-app-purchasing-2.0.61.jar в свой проект
  • При инициализации MRGS укажите тип биллинга "amazon"
import games.my.mrgs.MRGSPlatform;
import games.my.mrgs.MRGService;
import games.my.mrgs.MRGServiceParams;

public class YourApplicationClass extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        // Available MRGSPlatform: AMAZON, ANDROID, HUAWEI, SAMSUNG and FACEBOOK_CLOUD
        final MRGServiceParams params = MRGServiceParams.init(<MRGS_APP_ID>, <CLIENT_SECRET>, MRGSPlatform.AMAZON);
        MRGService.service(context, params);
    }
}

Подключение платежей Huawei/AppTouch🔗

  • Добавьте библиотеку согласно документации
  • При инициализации MRGS укажите тип биллинга "huawei"
import games.my.mrgs.MRGSPlatform;
import games.my.mrgs.MRGService;
import games.my.mrgs.MRGServiceParams;

public class YourApplicationClass extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        // Available MRGSPlatform: AMAZON, ANDROID, HUAWEI, SAMSUNG and FACEBOOK_CLOUD
        final MRGServiceParams params = MRGServiceParams.init(<MRGS_APP_ID>, <CLIENT_SECRET>, MRGSPlatform.HUAWEI);
        MRGService.service(context, params);
    }
}

Последнее обновление: 2025-01-21
Дата создания: 2020-01-20