Работа с Payments API.(as3,php)

Только готовые уроки по использованию ВКонтакте API. Flash + PHP + API. НЕ IFrame!

Re: Работа с Payments API.(as3,php)

Сообщение XELAD » 05 янв 2013, 21:24

add0295
app_order_id вносить не нужно, нужно указать в самой БД, что эта графа- автоматический счетчик. А что-либо найти в БД поможет этот пример
  1. mysql_query("SELECT * FROM some_table WHERE ID='$id'");

Графа counter это счетчик количества пришедших уведомлений от ВК типа order_status_change, по совместительству указатель необходимости начисления монет и тп.

Эта история вообще необходима для бОльшего контроля за перечислениями голосов/монет, а если без изысков, то своеобразную БД ведет сам ВК на странице Платежи.
XELAD

 
Сообщения: 205
Зарегистрирован: 17 июл 2012, 05:25
Благодарил (а): 13 раз.
Поблагодарили: 24 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Работа с Payments API.(as3,php)

Сообщение add0295 » 06 янв 2013, 00:34

А вот еще не понял проблему, когда контакт отправляет несколько одинаковых запросов, то есть типа сразу могут монеты по х2, х3 зачислится :)

Внести user_id, item, order_id, а также app_order_id в виде счетчика. ПЛЮС одна графа, где мы укажем, сколько уведомлений пришло от ВК (подробности ниже), сейчас укажем ноль.

Первый раз вносим в той графе вносим 0

И только если он равен нулю, прибавляем монеток в БД №2! И увеличиваем счетчик в той графе.

Но получается если запрос снова тот же, то будет снова в той графе 0, и все по кругу...
Или я что то не понял)
add0295

 
Сообщения: 19
Зарегистрирован: 09 авг 2011, 14:46
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Работа с Payments API.(as3,php)

Сообщение add0295 » 06 янв 2013, 01:31

Вот как я сделал, в связи с тем, что не особо понимаю эту новую схему списывания голосов, хочу услышать ваше мнение:

1. когда у нас case 'get_item':
  1. $query = mysql_query('INSERT INTO `'.$table_name.'` (`user_id`, `order_id`, `item`, `app_order_id`) VALUES ("'.$in_user_id.'","'.$in_order_id.'","'.$input['item'].'","'.'0'.'") ON DUPLICATE KEY UPDATE  `app_order_id` = (`app_order_id`+"'.'1'.'");');

Если повторный запрос будет, то просто плюсанет в app_order_id и следующий раз ничего не произойдет (ниже опишу что дальше у меня)
2. когда у нас уже case 'order_status_change':
  1. $order_data = mysql_fetch_array(mysql_query('SELECT user_id,order_id,item,app_order_id FROM `'.$table_name.'` WHERE order_id="'.$order_id.'"'));

вытягиваем все переменные и сравниваем user_id, order_id с полученным ответом $input, если совпадает сравниваем если
app_order_id = 0, то
  1. $query = mysql_query('INSERT INTO `'.$table_name.'` (`user_id`, `order_id`, `item`) VALUES ("'.$user_id.'","'.$order_id.'","'.$input['item'].'") ON DUPLICATE KEY UPDATE  `app_order_id` =  "'.'1'.'";');

и дальше добавляем монетки в другую таблицу БД.
Так норм будет? Особенно с этими долбаными повторными запросами... вообще не понимаю зачем они)
Так то все вроде работает:) Никакого же бага не должно быть?

З.Ы. сори, что так много сообщений в форум)
add0295

 
Сообщения: 19
Зарегистрирован: 09 авг 2011, 14:46
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Работа с Payments API.(as3,php)

Сообщение Casperovskii » 06 янв 2013, 10:24

add0295
Повторные запросы нужны вот зачем: ты оплатил, и в этот момент слетел инет. В итоге запрос ушел, а игрок ответ не получил. Тут ему врубают инет и идет повторный запрос с тем же номером покупки. Тебе нужно уже не зачислять монетки юзеру, а просто вернуть номер покупки по твоей БД (не совершая повторных действий). Если сам проблему не решишь - скину свой код.
Casperovskii

 
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50
Благодарил (а): 11 раз.
Поблагодарили: 43 раз.

Re: Работа с Payments API.(as3,php)

Сообщение add0295 » 06 янв 2013, 12:26

add0295 писал(а):Вот как я сделал, в связи с тем, что не особо понимаю эту новую схему списывания голосов, хочу услышать ваше мнение:

1. когда у нас case 'get_item':
  1. $query = mysql_query('INSERT INTO `'.$table_name.'` (`user_id`, `order_id`, `item`, `app_order_id`) VALUES ("'.$in_user_id.'","'.$in_order_id.'","'.$input['item'].'","'.'0'.'") ON DUPLICATE KEY UPDATE  `app_order_id` = (`app_order_id`+"'.'1'.'");');

Если повторный запрос будет, то просто плюсанет в app_order_id и следующий раз ничего не произойдет (ниже опишу что дальше у меня)
2. когда у нас уже case 'order_status_change':
  1. $order_data = mysql_fetch_array(mysql_query('SELECT user_id,order_id,item,app_order_id FROM `'.$table_name.'` WHERE order_id="'.$order_id.'"'));

вытягиваем все переменные и сравниваем user_id, order_id с полученным ответом $input, если совпадает сравниваем если
app_order_id = 0, то
  1. $query = mysql_query('INSERT INTO `'.$table_name.'` (`user_id`, `order_id`, `item`) VALUES ("'.$user_id.'","'.$order_id.'","'.$input['item'].'") ON DUPLICATE KEY UPDATE  `app_order_id` =  "'.'1'.'";');

и дальше добавляем монетки в другую таблицу БД.


Сам повторные запросы не могу сделать, что бы проверить, по этому описал как все работает здесь и хочу узнать, будет ли так нормально работать? (это что дополнительно добавил, а так все с примера)
add0295

 
Сообщения: 19
Зарегистрирован: 09 авг 2011, 14:46
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Работа с Payments API.(as3,php)

Сообщение krimzon » 27 янв 2013, 16:18

Здравствуйте, сделал всё как написано. Но всё равно при нажатии на кнопку происходит длительное ожидание, после чего вылетает ошибка: повторите запрос позднее. Перевёл в UTF-8 не помогло. В чём может быть проблема? Помогите пожалуйста...
krimzon

 
Сообщения: 2
Зарегистрирован: 27 янв 2013, 16:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Работа с Payments API.(as3,php)

Сообщение Fedya » 27 янв 2013, 20:17

У меня сегодня весь день было так, в логах ошибка была.
А сейчас смотрю - работает, хотя ничего не менял

P.S. Спроси у тех. поддержки хостинга не попал ли твой IP в бан (У меня такое было)
Fedya

 
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56
Благодарил (а): 22 раз.
Поблагодарили: 6 раз.

Re: Работа с Payments API.(as3,php)

Сообщение krimzon » 28 янв 2013, 04:54

Fedya писал(а):У меня сегодня весь день было так, в логах ошибка
НОМЕРА СТРОК ВКЛ/ВЫКЛ | ПОКАЗАТЬ/СКРЫТЬ | ВЫДЕЛИТЬ ВСЁ
28: connect() timed out!
была.
А сейчас смотрю - работает, хотя ничего не менял

Тоже что то менял, несколько раз выдавалась ошибка 28. В итоге понял, что скорее всего это из-за сервера. Какой лучше полноценный домашний сервер себе поставить на первое время? Как я понял Homserv и Denwer не то что нужно, т.к. VK не может подключиться в режиме отладки. Или я что то не правильно делаю?
krimzon

 
Сообщения: 2
Зарегистрирован: 27 янв 2013, 16:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Работа с Payments API.(as3,php)

Сообщение Александр » 29 янв 2013, 22:11

krimzon писал(а):Как я понял Homserv и Denwer не то что нужно, т.к. VK не может подключиться в режиме отладки.

http://www.denwer.ru/faq/shared.html
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Работа с Payments API.(as3,php)

Сообщение axecutor » 01 фев 2013, 18:19

огромное спасибо!=)
axecutor

 
Сообщения: 11
Зарегистрирован: 29 июл 2012, 12:29
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Пред.След.

Вернуться в Уроки по использованию ВКонтакте API



Кто сейчас на конференции

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