Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопрос по подключению платежной системы к сайту / 20 сообщений из 20, страница 1 из 1
28.02.2014, 01:45
    #38574862
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
Здравствуйте товарищи, такой вопрос.

Я на сайте подключил платежную систему Единый кошелек, сделал как описано в документации, создал скрипт который принимает ответ от сервера. привожу его

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
   
  if ($_SERVER['REQUEST_METHOD'] == 'POST') {    
      define('VALID_ALT', 1);  
      session_start();
      include_once("../include/db_connect.php");
      include_once("../include/function.php");
      
      $id_order = clear($_POST['WMI_PAYMENT_NO']);
      $id_currency = clear($_POST['WMI_CURRENCY_ID']);
      $order_descrip = clear($_POST['WMI_DESCRIPTION']);
      $id_user_wm = clear($_POST['WMI_TO_USER_ID']);
      $id_order_wmi = clear($_POST['WMI_ORDER_ID']);
      $order_type_pay = clear($_POST['WMI_ORDER_TYPE']);
      $status_pay = strtolower(clear($_POST['WMI_ORDER_STATE']));
      $payment_amount = clear($_POST['WMI_PAYMENT_AMOUNT']);
      
      $query_str = "UPDATE tb_orders SET ORDER_CURR_ID = ".$id_currency.", ORDER_DESCRIPTION = '".$order_descrip."', WMI_TO_USER_ID = '".$id_user_wm."', WM_ORDER_ID = '".$id_order_wmi."', WMI_ORDER_TYPE = '".$order_type_pay."', WM_ORDER_STATE = '".$status_pay."' WHERE ORDER_ID = ".$id_order;      
      $result = mysql_query($query_str, $link);

      $query_str="UPDATE tb_account SET ACCOUNT_BALANCE = ".$payment_amount." WHERE ID_ACCOUNT = ".$_SESSION['auth_id_acc'];      
      $result = mysql_query($query_str, $link);

      echo "WMI_RESULT=OK&WMI_DESCRIPTION=Депозит успешно проведен!";
      
      
  }



Здесь первый запрос проходит нормально, обновляется соответствующее поле в таблице, а вот второй запрос, не хочет работать так как, переменная $_SESSION['auth_id_acc'] пустая почему то, хотя я загнал туда данные...

Такое ощущение он вообще не видит сессию...

Подскажите в чем может быть ошибка...
...
Рейтинг: 0 / 0
28.02.2014, 01:49
    #38574864
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
Чудес не бывает. Либо сессию не стартовали при записи данных, либо данные затираются. Отладка, и еще раз отладка.
...
Рейтинг: 0 / 0
28.02.2014, 01:50
    #38574866
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
У меня не получается отладить так как я выставил на хостинг сайт, там как проверить нее знаю...
...
Рейтинг: 0 / 0
28.02.2014, 01:54
    #38574872
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
echo, var_dump, запись в файл...
...
Рейтинг: 0 / 0
28.02.2014, 01:56
    #38574875
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
Сессии то на хостинге включены?
...
Рейтинг: 0 / 0
28.02.2014, 11:18
    #38575045
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
Да включенгы, потому как на других страницах работает, а здесь ни как не пойму почему не работают..., помогите плиз...
...
Рейтинг: 0 / 0
28.02.2014, 11:40
    #38575078
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
а так
Код: php
1.
$query_str = "UPDATE tb_account SET ACCOUNT_BALANCE = '".mysql_real_escape_string($payment_amount)."' WHERE ID_ACCOUNT= '".mysql_real_escape_string($_SESSION['auth_id_acc'])."' ";
...
Рейтинг: 0 / 0
28.02.2014, 12:41
    #38575157
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
А чем может помочь, мне как говорится mysql_real_escape_string?
...
Рейтинг: 0 / 0
28.02.2014, 12:54
    #38575183
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
Aina2008А чем может помочь, мне как говорится mysql_real_escape_string?
Очень помогает от SQL-injection .
...
Рейтинг: 0 / 0
28.02.2014, 13:00
    #38575197
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
Я понимаю, что оно защищает от sql - injection, но вот в запросе от этого появится у меня значение вот здесь
mysql_real_escape_string($_SESSION['auth_id_acc'])
...
Рейтинг: 0 / 0
28.02.2014, 19:05
    #38575633
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
Товарищи программеры почему я не могу получить значение
$_SESSION['auth_id_acc'], в запросе.

Этот скрипт принимает ответ и отсылает что все нормально, платежной системе.

Такое чувство как будто от сессию не видит вообще...
...
Рейтинг: 0 / 0
28.02.2014, 20:21
    #38575664
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
Aina2008Такое чувство как будто от сессию не видит вообще...
Код: php
1.
var_dump($_SESSION);

?

Докучи в тестовых целях можете записать туда еще какое-то свое значение.
...
Рейтинг: 0 / 0
01.03.2014, 09:47
    #38575919
sxq
sxq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
Судя по всему ваш скрипт вызывает уже сервер процессинга, т.е. он является инициатором соединения, а не ваш браузер, в котором вы смотрите свой сайт. Разумеется новое соединение - новая сессия, которая никаким образом не пересекается с вашей текущей.
Вероятно в документации не используются сессии, это вы придумали.
Логика работы платежей проста:
1 вы отправляете в процессинг ID заказа, и другие ID, которые требуются, и сумму (либо перенаправляете через форму)
2 процессинг делает транзакцию
3 после он соединяется с вашим сайтом (POST) (здесь уже новое соединение и новые сессии) и передает опять же ID какие нужно, в частности заказа, и другую информацию, например, статус операции, все это асинхронно. И скорей всего механизм сессий здесь вообще не предусмотрен, т.к. в заголовках от процессинга не предусмотрена передача ID сессии, ведь там же не обычный браузер работает, да и не нужно ему все это.
4 ваш сайт получает этот запрос и уже делает с заказом что вам нужно.

получается что этот скрипт выполняется сам по себе, а не в контексте браузера с текущей страницей и текущей сессией.
...
Рейтинг: 0 / 0
01.03.2014, 10:04
    #38575924
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
Теперь понятно, а какое решение можно предложить, если не сложно, объясните?
...
Рейтинг: 0 / 0
01.03.2014, 10:18
    #38575928
sxq
sxq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
в документации написано что вы можете передать, если ID заказа, то у вас по определению в созданном заказе есть и кто заказал и что заказали, вот и меняйте статусы в таблицах.
Если это юзер, то разумеется по нему вы сможете получить у себя что требуется.
В общем нужно активнее использовать логические связи в своих таблицах
...
Рейтинг: 0 / 0
02.03.2014, 08:33
    #38576256
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
Кстати, товарищи, а как можно получить id последней записи по которому произошла операция update. Когда добавляешь, айди получить как понятно с помощью mysql_insert_id , а вот при обновлении?
...
Рейтинг: 0 / 0
02.03.2014, 09:37
    #38576258
sxq
sxq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
не понятна ваша логика
1 Перед формированием платежа вы формируете заказ (вероятно это таблица заказов), получаете его ID, устанавливаете статус заказа "введен"
2 в таблицу содержимого заказа вносите товар из корзины, и связываете таблицу заказов с его содержимым ( в таблице содержимого должно быть поле с ID заказа)
3 в таблицу заказов вносите все данные покупателя, его ID из таблицы покупателей
4 отправляете покупателя в процессинг с передачей ID заказа
5 просессинг информирует ваш сайт о успешности или не успешности платежа и возвращает разные параметры платежа
6 вы меняете статус заказа на исполнен (или не меняете)

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

я не пойму в чем проблема у вас?
Опишите ваш алгоритм, как вы делаете.

и еще, mysql_query (и все из этой серии) - нужно забыть, для этого есть продвинутые средства работы с базами данных, тем более эти функции поддерживаются до версии PHP 5.5, после будут удалены.
...
Рейтинг: 0 / 0
02.03.2014, 10:10
    #38576266
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
Aina2008а как можно получить id последней записи по которому произошла операция update. Когда добавляешь, айди получить как понятно с помощью mysql_insert_id , а вот при обновлении?А при обновлении оно вроде как и не надо. Суть необходимости получения ID последней вставляемой записи - непредсказуемость этого самого ID до вставки. Список же обновляемых записей явно задан в условии WHERE и вполне поддается определению как до, так и после обновления (по крайней мере, при транзакции).
...
Рейтинг: 0 / 0
02.03.2014, 11:14
    #38576274
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
но если отвлечся от целесообразности для ТС, то вот это у меня не хочет работать - SELECT @update_id возвращает пустое поле
Код: sql
1.
2.
3.
4.
5.
START TRANSACTION;
SET @update_id := 0;
UPDATE `my_table` SET `name` = 'new_name', `id` = (SELECT @update_id := id) WHERE `id` = 4 LIMIT 1; 
SELECT @update_id;
COMMIT;


или это потому что у меня таблица myISAM ?
...
Рейтинг: 0 / 0
02.03.2014, 11:33
    #38576279
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по подключению платежной системы к сайту
извиняюсь если это офф. еще вопрос
update Table set `field`=`field` - число аффектед рекордов == 0
т.е. апдейт не выполяется если обновление не требуется ?
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопрос по подключению платежной системы к сайту / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]