Плагин VK Bridge C3 (подключение покупок)

В одной из предыдущих статей мы рассматривали настройку плагина VK Bridge C3.

В следующей статье было описано соединение с сервером и подключение рекламы в игре.

Теперь мы добавим в ту же игру 4 вида покупок:

  • отключение рекламы в игре;
  • пак на 200 алмазов;
  • пак на 500 алмазов;
  • пак на 1500 алмазов.

1. Подготовка

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

Назовём её ads. Если она равна on (по умолчанию), то реклама показывается. Если off, то реклама отключена.

Хранить её состояние лучше в переменных Вконтакте. Но это тема для отдельной статьи. А пока будем класть её в хранилище LocalStorage.

На старте уровня проверять, сохранена ли переменная в хранилище и если сохранена — то будем отключать рекламу. В противном случае — реклама будет показываться игроку.

Теперь удостоверимся, что в игре есть события соединения с сервером Вконтакте и авторизации пользователя.

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

2. Функции для запуска покупок

Далее, создадим отдельные функции для каждого типа покупки (всего 4 штуки).

Первой будет функция покупки отключения рекламы. Здесь мы задаём переменной vKBridgeCurrentPurchaseType имя той покупки (того товара — Item), который будет предложен игроку при запуске данной функции. В данном случае, это может быть что-то вроде offAds.

Следом запускаем покупку с данным значением поля Item.

Аналогично создаём функции для покупки алмазов в паках по 200, 500 и 1500.

Количество паков и плюшек в них — полностью на Ваше усмотрение.

Теперь нужно создать кнопки, которые будут запускать нужные покупки и при их нажатии выполнять соответствующую функцию из созданных выше.

К примеру, это может быть вот такой магазин, где при нажатии кнопок с кристаллами или рекламой запускаются вышеописанные функции.

3. Обработка успешной и неудачной покупок

Следом создаём события для обработки покупки.

Если текущая покупка завершилась успешно — зачисляем игроку то, что он купил.

Чтобы определить, что же именно зачислить — смотрим, что записано в той самой переменной vKBridgeCurrentPurchaseType.

  • для покупки отключения рекламы — задаём переменную ads и записываем это в хранилище;
  • для покупки алмазов увеличиваем их количество в кошельке игрока и также сохраняем в хранилище.

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

4. Заполнение файла vk_callback.php

При покупке плагина, в архиве с ним должен был лежать загадочный файл vk_callback.php. Он нужен как раз для покупок за голоса Вконтакте.

Вы можете скачать этот мой вариант этого файла здесь:

https://dharmagames.ru/source/code/plugins/vkbridge/vk_callback.zip

Как мы увидели выше, в главе 2, при запуске покупки игра передаёт сервису Вконтакте только некую метку Item и ничего более. Всю остальную информацию о товаре сервис берёт из нашего файла vk_callback.php.

То есть, в этом файле нам нужно создать описание для каждого товара и пометить его соответствующей меткой (Item), чтобы появилась связь между этой меткой и соответствующим товаром.

Давайте разберём все блоки в данном файле.

В самом начале php-файла нам нужно вставить наш секретный ключ.

Это тот же самый ключ, который мы брали из сервиса Вконтакте и вставляли в настройки плагина VK Bridge.

Дальше всё оставляем как есть до следующего нужного нам момента. А именно, до описания товаров.

Здесь я приведу мой пример кода с описанием и комментариями. Он немного сложнее, чем в исходном примере, поскольку в данном случае у нас 4 товара, а не 1.

Здесь нужен хотя бы небольшой навык работы с языком php, чтобы корректно заменить нужные параметры.

Следом идёт блок с тестовыми товарами. Они будут показываться при тестовых запусках игры. Именно тестовые товары будут показываться до тех пор, пока модератор Вконтакте не одобрит Вашу игру.

Дальше идёт блок обработки подписок. На момент написания данной статьи он ещё не поддерживается плагином, поэтому всё после вот этой части и ниже оставляем как есть. Оно пока не пригодится.

Когда файл готов — закидываем его в папку с игрой на Вашем хостинге. Я для удобства храню этот файл и иконки товаров в отдельной папке base (название не принципиально).

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

5. Прописываем покупки в настройках приложения Вконтакте

Чтобы сервис Вконтакте знал, где искать наш файл vk_callback.php, прописываем путь к нему в настройках приложения в разделе Платежи.

Здесь нас сразу предупреждают, что платежи пока недоступны. Поэтому тестировать можем только на тестовых товарах.

Версию API можно выставить самую новую.

Тестировщиком пока можно назначить только себя.

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

Оно предназначено для настройки специальных предложений для игоков. Подробнее об этом можно почитать здесь: https://vk.com/dev/payments_offers.

6. Тестирование покупки

Если всё настроено правильно, то при запуске игры и нажатии кнопок покупки должны появляться соответствующие окошки.

Пример, покупка отключения рекламы.

При нажатии кнопки Оплатить мы получим уведомление об успешной оплате тестовой покупки.

Также самое должно работать и для покупки кристаллов.

Когда всё настроено и работает — можно попробовать опубликовать Вашу игру. Как это сделать — читайте в 5 главе статьи о подключении рекламы.