Дополнительные возможности для работы с платежами в 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);
}
}
Дата создания: 2020-01-20