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

Подключение VKPay (Android)🔗

VKPay - платежная система, которую можно использовать в магазинах, при условии что там разрешены сторонние способы оплаты.

Внимание!

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

Начало работы🔗

Для того, чтобы начать пользоваться VKPay необходимо по аналогии с другими магазинами:

  • Создать проект на сайте VK platform
  • Завести список товаров, добавить описания и цены на сайте MRGS
  • Подключить зависимости и настроить проект

Создание проекта в VK platform🔗

  1. Если у вас еще нет проекта в VK platform, то его необходимо завести, согласно документации данной платформы.
  2. Далее скопируйте Сервисный ключ доступа из VK platform и добавьте его в MRGS консоль вашего проекта -> Интеграция -> VK access token

Добавление товаров🔗

Завести список товаров, и добавить описания можно на сайте MRGS. Обязательно нужно выставить у товара, что товар будет использовать для VKPay платежей, выставив одноименный флаг у товара, и указать цены в рубля выше 0.

Замечание

На клиент приходят лишь только те товары, у которых выставлен флаг vkpay и цены в рублях выше 0. В противном случае сервер будет игнорировать данные товары.

Подключение зависимостей🔗

  • Добавить модуль MRGSVKPay:
Добавление в Unity проект (общая инструкция)
  • Добавьте VK репозиторий в ваш root gradle фай:
allprojects {
    repositories {
        // others
        maven { url "https://artifactory-external.vkpartner.ru/artifactory/superappkit-maven-public/" }
    }
}

Шаг 1. Добавьте источники

Для того, чтобы добавить MRGS в проект через Unity Package Manager (доступно с Unity 2018+) просто добавьте в файл Packages/manifest.json раздел scopedRegistries, добавив в него следующую запись:

{
    "dependencies": {
        ...
    },
    "scopedRegistries": [
            {
                "name": "MRGS",
                "url": "https://mrgs-nexus.my.games/repository/mrgs-uninty-plugins/",
                "scopes": [
                    "games.my.mrgs"
                ]
            }
    ]
}

Альтернативно, можно нажать Edit -> Project Settings -> Package Manager -> '+' in scoped registry section, и заполнить поля в соответствии с данными выше.

Шаг 2. Добавьте зависимость

  • Нажмите Window -> Package Manager -> select 'Packages: MyRegistries' from dropdown list, выберите пакет MRGSVKPay из списка, затем нажмите "Install"
  • Импортируйте модуль: using MRGS;
  • Загрузите последнюю версию библиотеки. Распакуйте архив.
  • (Для интеграции unitypackage) В Unity нажмите Assets -> Import Package -> Custom Package, и выберите пакет games.my.mrgs.vkpay.unitypackage из скачанного архива.
  • (Для интеграции tgz) В Unity нажмите Window -> Package Manager -> '+' -> Add package from tarball, и выберите пакет games.my.mrgs.vkpay-<version>.tgz из скачанного архива.
  • Импортируйте модуль: using MRGS;
Добавление в Android проект
  • Добавьте VK репозиторий в ваш root gradle фай:
allprojects {
    repositories {
        // others
        maven { url "https://artifactory-external.vkpartner.ru/artifactory/superappkit-maven-public/" }
    }
}
  • Добавьте зависимости в ваши Application gradle file.
dependencies {
    def mrgsVersion = "6.x.x"

    implementation "games.my.mrgs:billing-vkpay:$mrgsVersion"
}

Скопируйте файл MRGSVKPay.aar в директорию libs вашего проекта. Добавьте необходимые зависимости в файл build.gradle

dependencies {
    //...
    implementation(name: 'MRGSVKPay', ext:'aar')

    implementation "com.vk:vksdk-pub:0.110-24426"
    implementation "com.vk:oauth-vk:0.110-24426"
    implementation "com.vk:vkpay-checkout:0.110-24426"
}

VK авторизация

VKPay не совместим с другой библиотекой для авторизации/регистрации в VK. Убедитесь что в сборку не попадают одновременно эти две библиотеки, или добавьте в ваш mainTemplate.gradle файл следующий скрипт, что бы исключить из компиляции старый вариант авторизации:

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        // ... other dependencies
    }
    configurations.implementation {
        exclude group: 'com.vk', module: 'android-sdk-core'
    }

Android sdk-fingerprint is incorrect

Если вы используете новый механизм подписи apk/bundle в GooglePlay, вам следует взять SHA1 из GooglePlay Console вашего проекта.

Настройка проекта🔗

На Андроид платформе нет возможности настроить VK библиотеку через код (выставить ключи в SDK). Потому единственный способ сделать это, настроить проект согласно документации VK platform.

Настройка MRGS🔗

Механизм работает аналогично покупкам в любом мобильном магазине через модуль MRGSBank.

Работа с приемом платежей из мобильного приложения🔗

Используется стандартный подход для мобильных платежей в MRGSBank - загрузка товаров(загружаются с сайта MRGS), отображение(средствами приложения), вызов метода покупки при нажатии, получение callback'а.

Вы можете работать с платежами с помощью нового класса, или выставления типа биллинга на старте приложения:

Работа через класс MRGSVKPay🔗

Для работы с платежами вам необходимо использовать новый класс в MRGSVKPay модуле:

MRGSVKPay.Instance;
MRGSVKPay.getInstance();

Данный класс реализует интерфейс MRGSBilling/MRGSBank а следовательно они работают точно так же, поэтому можно обратиться к документации по работе MRGSBank API.

Указание биллинга на старте приложения🔗

Также, поддерживается выставление типа биллинга при старте:

using MRGS;

public class MasterController : MonoBehaviour
{
    void Awake()
    {
        MRGServiceParams serviceParams = MRGServiceParams.initWithAppId(appId: APP_ID, appSecret: APP_SECRET);
        //Настройка параметров MRGS
        // ...

        //Включение работы с VKPay через класс MRGSBank
        serviceParams.BankSubstitution = BankSubstitution.VkPay;

        //Настройка Внешних SDK и инициализация MRGS
        // ...
    }
}
import games.my.mrgs.MRGService;
import games.my.mrgs.MRGServiceParams;
import games.my.mrgs.billing.vkpay.MRGSVKPay;

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

        final MRGServiceParams serviceParams = MRGServiceParams.init(APP_ID, APP_SECRET, PLATFORM);
        // Setting up MRGS params
        // ...

        // Enabling work with MRGSVKPay via the MRGSBank class
        serviceParams.setBillingSubstitution(MRGSVKPay.BILLING_VKPAY);

        MRGService.service(context, serviceParams, externalSdkParams);
    }
}

В таком случае дальнейшую работу с платежами вы можете осуществлять через класс MRGSBank, как обычно.

Нюансы по работе с платежами🔗

На текущий момент поддерживаются только consumable платежи.

Установка делегата и проверка доступности🔗

Данный пункт ничем не отличается от Установка делегата и проверка доступности.

Получение информации о доступных продуктах🔗

Данный пункт ничем не отличается от Получение информации о доступных продуктах.

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

Проведение платежа🔗

Данный пункт ничем не отличается от Проведение платежа, делегаты поддержаны.

Восстановление покупок🔗

Данный механизм отсутствует в VKPay.

Проведение тестовых платежей🔗

Для тестирования платежей, можно завести пару товаров с маленькой суммой и проводить тестирования на них.


Последнее обновление: 2023-10-25
Дата создания: 2022-10-04