Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Новый API платежей вконтакте (http://www.flasher.ru/forum/showthread.php?t=184594)

caseyryan 07.10.2012 21:25

Цитата:

Пхп может и без апача уже, по-моему в 5.4 это вышло из бета-теста в релиз.
А смысл? Хотя может я просто не особо часто работаю с php, чтобы это понять

Цитата:

В итоге оно работает согласно парадигме "один клиент - один поток"
В джаве даже циклы в отдельных потоках выполняются

Krusty 07.10.2012 21:51

Цитата:

Сообщение от caseyryan (Сообщение 1098929)
А смысл? Хотя может я просто не особо часто работаю с php, чтобы это понять

смысл исключительно в производительности, никаких тайных плюшек нет.

C4Grey 08.10.2012 01:29

Цитата:

Сообщение от caseyryan (Сообщение 1098929)
В джаве даже циклы в отдельных потоках выполняются

То есть, если мне нужно 10К пользователей онлайн держать - нужно расчитывать на сервер с 8 гигами оперативной памяти? У меня при меньшем количестве банально не инциализируется пул потоков - JVM выдает сообщение, что мало памяти. Кроме того, время от времени бывает что сервер падает с ошибкой вроде "The crash happened outside the Java Virtual Machine in native code". Пошарился на формуах - говорят, что либо использую слишком много памяти, либо кончились свободные порты - последнее навряд ли, но так уж мне ответили :) .
А что касается платежей - написал сейчас класс для чтения http запросов на сокетах, и хочу протестировать одну фичу. При помощи iptables можно настроить редирект с одного порта на другой. Может кто-то знает, как при этом указать диапазон IP-адресов, для которых будет выполняться это правило? Чтобы все, кроме ВК, работало нормально с веб-интерфйесом, а запросы от ВК перенаправлялись уже Java-серверу.

P.S. Вроде нашел решение:
-A PREROUTING -s 188.0.64.152/32 -p tcp -m tcp --dport 801 -j DNAT --to-destination :80
-A POSTROUTING -s 188.0.64.152/32 -p tcp -m tcp --dport 801 -j SNAT --to-source :80

В примере данные для 188.0.64.152 с 801 порта перенаправляются на 80 - сделал так для теста, поставил свой IP, при обращении к 801 порту увидел веб-интерфейс. Теперь осталось только узнать, с одного ли IP приходят запросы информации о товаре с ВК. А картинку для товара, как я понимаю, будет запрашивать уже клиент, со своим IP.

Добавлено через 7 часов 32 минуты
Вопрос к тем, кто уже сделал/разобрался. Я верно понял алгоритм(рассмотрим простой случай - перевод голосов):
1. Приходит order_status_change
2. Смотрим статус, если chargeable идем дальше
3. Проверяем, нет ли этого order_id в нашей БД, если нет - добавляем и отправляем подтверждение, если есть - просто отправляем пакет с подтверждением(в документации написано, что оно может приходить несколько раз)?

Интересно, где в такой схеме лучше всего производить покупку товара, то есть модификацию записи о наличии товара/размере счета пользователя в БД. По прибытии пакета chargeable явно не вариант - пользователь может нажать на кнопку "Оплатить", и быстро закрыть окно оплаты - в итоге клиенту придет только onOrderCancel, и все. Скорее всего, нужно после отработки на стороне клиента onOrderSuccess отправлять на сервер подтверждение с order_id и app_order_id(возможно - еще и UID пользователя), опять смотреть в БД - есть ли там такой платеж, и только после этого переводить игровую валюту/выдавать товар. Верно ли я понял, или нужно все делать не так?

mikhailk 07.11.2012 16:28

Вопрос по сабжу.

У кого-нибудь наблюдаются тормоза при работе с новым платежным API?

caseyryan 07.11.2012 17:34

Да. Система жутко тормозная. Иногда секунд по 40 висит окно.

mikhailk 07.11.2012 17:53

Т.е., с нашей стороны ничего не сделать?
У меня странное ощущение что в двух приложениях работает по-разному.
В старом, где нагрузка практически нулевая и которого даже в каталоге нет - открывается быстро.
В новом, где нагрузка пока тоже небольшая, но которое в каталоге присутствует, - как назло открывается медленно.

caseyryan 07.11.2012 17:56

Цитата:

Т.е., с нашей стороны ничего не сделать?
Не знаю. Мое в каталогах присутствует. И до добавления все так же тормозило. Причем в опере и огнелисе нормально открывает почти всегда, в хроме тормозит

maxkar 08.11.2012 02:43

Цитата:

Сообщение от C4Grey (Сообщение 1098964)
Интересно, где в такой схеме лучше всего производить покупку товара, то есть модификацию записи о наличии товара/размере счета пользователя в БД. По прибытии пакета chargeable явно не вариант - пользователь может нажать на кнопку "Оплатить", и быстро закрыть окно оплаты - в итоге клиенту придет только onOrderCancel, и все.

Угу. У клиента отключили электричество. Поэтому деньги вам контакт со счета клиента переведет, а товар клиенту вы не поставите. Потрясающе. Или контакт платеж не проведет (если вы ему на chargeable чем-нибудь приличным не ответите), но тогда и клиент уведомление об успешном платеже вообще не сможет получить. Или сервера контакта протормозят и захолдированные на счету средства придут вам через несколько часов, когда игрок все успел закрыть. Так что тут вариант один - выполнять покупку на уведомление о chargeable. А клиенту полагаться на уведомления от сервера о состоявшемся платеже.

caseyryan 08.11.2012 11:22

Цитата:

Так что тут вариант один - выполнять покупку на уведомление о chargeable. А клиенту полагаться на уведомления от сервера о состоявшемся платеже.
По-моему тоже вариант не лучший. Хотя все сказаное вполне логично.
В общем, контактовцы создали какую-то жутко тормозящую непродуманную систему, которая ни сколько не улучшила положение дел, а только ухудшила.

mikhailk 08.11.2012 15:58

В общем, наша проблема (зависание системы на этапе "Получение информации о товаре"), как оказалось, решается включением кэширования на стороне сервера ВК.

http://vk.com/developers.php?oid=-1&...B0%D1%80%D0%B5

Надо задать необязательный параметр в ответе сервера - expiration.
После этого сервер ВК начинает показывать форму моментально или около того.


Часовой пояс GMT +4, время: 03:30.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.