Развитие игровой вспышки
Flash Game Ratings
Текущее время: Вс мар 26, 2017 7:28 am

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: In-app в онлайновых играх на Google Play
СообщениеДобавлено: Вт июн 14, 2016 1:39 pm 
Не в сети

Зарегистрирован: Ср сен 21, 2011 1:18 pm
Сообщений: 80
Решил попробовать своим пользователям мобильного приложения дать возможность покупать внутриигровую валюту не на сайте, а прямо в приложении, что удобно.
Поскольку игра - клиент-серверная, то, прислушиваясь к здравому смыслу и советам Гугла, покупки следует как-то верифицировать на своем сервере. Перед тем, как непосредственно выдавать игроку.

Кто-нибудь делал подобное? Какие схемы применялись?

Сам пока придумал то-то вроде:
1. Игрок нажимает самописную кнопку "Хочу монету", отправляя запрос на сервер.
2. На сервере запоминается: кто и что хочет купить, с меткой. Есть в in-app запросах Гугла поле для таких целей "developerPayload".
3. Метка отправляется обратно клиенту и используется при реальном запросе на покупку в магазин Гугла.
4. После успешной покупки на сервер отправляется сообщение со всеми нужными идентификаторами, по которым находится запись из п. 2, после чего валюта, собственно, и зачисляется.

Смущает теоретическая возможность в пункте №4 платеж отменить, а серверу "ручками" отправить сообщение о том, что платеж состоялся.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: In-app в онлайновых играх на Google Play
СообщениеДобавлено: Ср июн 15, 2016 8:44 pm 
Не в сети

Зарегистрирован: Пн май 30, 2011 2:40 pm
Сообщений: 222
Откуда: Днепропетровск
ну от мошенников на 100% никогда не можешь защититься. не думаю что будет хотя бы 1% пользователей кто захочет что то там взламывать. так что делай как можно проще и быстрей и делов то :)


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: In-app в онлайновых играх на Google Play
СообщениеДобавлено: Чт июн 16, 2016 12:30 am 
Не в сети
Аватар пользователя

Зарегистрирован: Вс дек 19, 2010 5:31 pm
Сообщений: 4549
Откуда: Пока не знаю
Сайт: http://gamespoweredby.com/blog/
инапы это больше аппстоор, чем гугл плей ) потому, что гугл плей это больше бедные китайцы, которые воруют все еще до релиза :D поэтому там больше рекламы, чем в иос


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: In-app в онлайновых играх на Google Play
СообщениеДобавлено: Чт июн 16, 2016 8:43 am 
Не в сети

Зарегистрирован: Ср сен 21, 2011 1:18 pm
Сообщений: 80
flash2you писал(а):
ну от мошенников на 100% никогда не можешь защититься.
Это понятно, но пробовать-то надо. Не хотелось бы, знаешь ли, появления в игре кучи не купленной валюты :о)
Со своей проблемой разобрался: Гугл после успешной покупки присылает в ответе подпись к данным. Комплекта "данные + подпись + твой открытый ключ" на сервере хватает для того, чтобы удостовериться в подлинности данных. Стандартными методами SSL.
Вдруг кому пригодится.

TheRabbit писал(а):
инапы это больше аппстоор, чем гугл плей ) потому, что гугл плей это больше бедные китайцы, которые воруют все еще до релиза :D
Точно :о)
Но и в аррсторе ровно та же проблема: для онлайновых проектов нужно после покупки на клиенте грамотно известить игровой сервер об этой покупке.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: In-app в онлайновых играх на Google Play
СообщениеДобавлено: Чт июн 16, 2016 11:33 am 
Не в сети

Зарегистрирован: Ср сен 21, 2011 1:18 pm
Сообщений: 80
Что-то вроде:
Код:
<?php
$publicKey = <публичный ключ приложения в Google Play>;
$signedData = <поле из ответа Гугла при успешной покупке>;
$signature = <второе поле оттуда же>";
   
$key = "-----BEGIN PUBLIC KEY-----\n" . chunk_split( $publicKey , 64 , "\n" ) . "-----END PUBLIC KEY-----\n";

$result = openssl_verify( $signedData , base64_decode( $signature ) , $key , OPENSSL_ALGO_SHA1 );
?>
Если $result === 1, то данные подлинные. Любая модификация $signedData даёт $result = 0.

Из $signedData (а это строка в формате JSON) вытаскиваем productId, чтобы понять, что именно купили, и сколько чего нужно зачислить пользователю. Вуаля.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: In-app в онлайновых играх на Google Play
СообщениеДобавлено: Пн июн 20, 2016 4:12 pm 
Не в сети

Зарегистрирован: Ср сен 21, 2011 1:18 pm
Сообщений: 80
flash2you писал(а):
ну от мошенников на 100% никогда не можешь защититься. не думаю что будет хотя бы 1% пользователей кто захочет что то там взламывать. так что делай как можно проще и быстрей и делов то :)
К вопросу о.
После публикации приложения с платежами, первый же запрос на сервер о совершенной покупке был фэйковый :о)


Вернуться наверх
 Профиль Отправить e-mail  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB