19ответ(ов) в теме
виталий
не в сети 5 лет
На сайте с 06.10.2016
Участник
Тем 3
Сообщения 20
1
17:42

В настройках есть "время жизни заказа" но при использовании его с мерчатом получаются нестыковки, пример:
Я оформил заказ, перешел на страницу оплаты агрегатора и не оплачиваю к примеру больше часа (который установлены в настройках),
на сайте удаляется заказ, но я могу оплатить его т.к. не прописан в мерчанте параметр WMI_EXPIRED_DATE, и таким образом одни и те же места будут куплены несколькими клиентами.
Прошу подсказать как прописать его правильно?
Я так понимаю тут надо вписать
$fields = array(
'WMI_EXPIRED_DATE'=> Срок истечения оплаты. Дата указывается в западно-европейском часовом поясе (UTC+0) и должна быть больше текущей (ISO 8601), например: 2013-10-29T11:39:26.(ЭТО С САЙТА ИНФА

Вы не можете просматривать опубликованные ссылки

)
'WMI_MERCHANT_ID'=>$merchant_id,
....
Очень надо эту проверку так как переписал код под свои нужды чтоб проверка не в часах а в минутах была.
Еще вопрос есть ли ченджлог по версиям плагина где-то?
Могу я скачать последнюю версию плагина не обновляя его на сайте?
Просто не ставил еще плагин "codeseller-updater" не знаю как он работает с обновлениями, дает ссылку на файл последней версии или обновляет сразу.

0
Вова (Otshelnik-Fm)
не в сети 2 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
17:54

Про все тех вопросы не отвечу, а по codeseller-updater - обновит сразу. Поэтому проще лично для вас завести поддомен. Обновить его там, а потом по ftp скачать к себе и посмотреть изменения.
Увы change log-а нет, и как вы будете его в дальнейшем обновлять - ума не приложу. В ядро лезть нельзя. Вся дальнейшая работоспособность на вашей совести.
Решать возникающие проблемы при вашем вмешательстве - только если вы вчистую установите оригинальный и последней версии Wp Reservation Place

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
3
18:15

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

0
виталий
не в сети 5 лет
На сайте с 06.10.2016
Участник
Тем 3
Сообщения 20
4
18:20

Спасибо, а когда ждать?
Может подскажите как через WMI_EXPIRED_DATE реализовать, утром надо проект запускать, мероприятие разовое сроки горят 🙁
Да и в коде уже многое под себя переписали, проще будет дописать эту проверку чем обновиться.
Надеюсь выручите.

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
5
18:30

А зачем именно через WMI_EXPIRED_DATE? Такой вариант тоже может не подойти, тк заказ может быть оплачен несколькими пользователями. Лучше проверяйте наличие или оплату заказа в момент оплаты:
сразу после

$data->pay_summ = $_REQUEST['LMI_PAYMENT_AMOUNT'];
$data->pay_id = $_REQUEST['LMI_PAYMENT_NO'];
$data->email_user = $_REQUEST['FIELD_1'];
$data->pay_type = $_REQUEST['FIELD_2'];

добавить

$order = wpr_get_order($data->pay_id);
if(!$order||$order[0]->res_status!=0){
	//заказа не существует или уже оплачен
	exit;
}

0
виталий
не в сети 5 лет
На сайте с 06.10.2016
Участник
Тем 3
Сообщения 20
6
18:34

Это код из вебмани.
$data->pay_summ = $_REQUEST['LMI_PAYMENT_AMOUNT'];
$data->pay_id = $_REQUEST['LMI_PAYMENT_NO'];
$data->email_user = $_REQUEST['FIELD_1'];
$data->pay_type = $_REQUEST['FIELD_2'];

Мне для Единой Кассы надо.
ПС: ну еслиб я силен так как вы был, я б не покупал плагин, сам бы написал )))

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
7
18:40

сорри, вот код для ЕК:
сразу после:

$data->pay_summ = $_REQUEST["WMI_PAYMENT_AMOUNT"];
$data->pay_id = $_REQUEST["WMI_PAYMENT_NO"];
$data->email_user = $_REQUEST["USER_ID"];
$data->pay_type = $_REQUEST["TYPE_PAY"];

добавить

$order = wpr_get_order($data->pay_id);
if(!$order||$order[0]->res_status!=0){
	//заказа не существует или уже оплачен
	$this->print_answer("Retry", "Заказа не существует или уже оплачен");
}

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
8
18:41

Проверьте работу оплаты и отпишите плиз по результату, я просто не тестировал

0
виталий
не в сети 5 лет
На сайте с 06.10.2016
Участник
Тем 3
Сообщения 20
9
18:42

Спасибо, так и вставил,пошел тестить.
Добра вам 🙂

0
виталий
не в сети 5 лет
На сайте с 06.10.2016
Участник
Тем 3
Сообщения 20
10
18:42

Ок

0
виталий
не в сети 5 лет
На сайте с 06.10.2016
Участник
Тем 3
Сообщения 20
11
18:58

Результат: Спасибо! Оплата прошла успешно.
Еще раз объясню последовательность:
я заказываю билет, заполняю форму, перехожу в агрегатор по ссылке оплатить, жду когда заказ удалится на странице "заказы" в админке и продолжаю оформление и он пропускает оплатить.
Этот код на каком этапе проверку делает, уже в агрегаторе или еще на сайте?
$order = wpr_get_order($data->pay_id);
if(!$order||$order[0]->res_status!=0){
//заказа не существует или уже оплачен
$this->print_answer("Retry", "Заказа не существует или уже оплачен");
}

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
12
19:19

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

0
виталий
не в сети 5 лет
На сайте с 06.10.2016
Участник
Тем 3
Сообщения 20
13
19:36

Не срабатывет ваш код.
Если прописать

$fields = array(
'WMI_MERCHANT_ID'=>$merchant_id,
'WMI_PAYMENT_AMOUNT'=>$data->pay_summ.'.00',
'WMI_CURRENCY_ID'=>$code_cur,
'WMI_PAYMENT_NO'=>$data->pay_id,
'WMI_DESCRIPTION'=>$desc,
'WMI_EXPIRED_DATE'=>'2016-10-19 16:31:00',
'WMI_SUCCESS_URL'=>get_permalink($wrp_options['page_successfully_pay']),
'WMI_FAIL_URL'=>get_permalink($wrp_options['page_fail_pay']),
'USER_ID'=>$data->email_user,
'TYPE_PAY'=>$data->pay_type,
'CMS'=>30
);

тогда при переходе в агрегатор не пропускает уже вот скрин предупреждения об ошибке

Вы не можете просматривать опубликованные ссылки
0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
14
19:48

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

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

Вы не можете просматривать опубликованные ссылки

посмотрю

0
виталий
не в сети 5 лет
На сайте с 06.10.2016
Участник
Тем 3
Сообщения 20
15
19:56

Вы не можете просматривать опубликованные ссылки

Закомментировал что я вписывал: //	'WMI_EXPIRED_DATE'=>'2016-10-19 16:31:00', // pay_id);
		if(!$order||$order[0]->res_status!=0){
			//заказа не существует или уже оплачен
			$this->print_answer("Retry", "Заказа не существует или уже оплачен");
		}

0
виталий
не в сети 5 лет
На сайте с 06.10.2016
Участник
Тем 3
Сообщения 20
16
20:01

Че-то коверкает кода текст и код пишу, думаю увидите где я вписал ваш и свой кусок кода 76 строка (WMI_EXPIRED_DATE) и ваш 143 строка

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
17
20:02

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

$order = wpr_get_order($data->pay_id);
$hours = (get_option('wprp_order_live_hours'))? get_option('wprp_order_live_hours'): 2;
$expired = date("Y-m-D H:i:s", strtotime($order[0]->timeaction) + ($hours*3600));

правильность формирования даты можно проверить в коде формы платежа

0
виталий
не в сети 5 лет
На сайте с 06.10.2016
Участник
Тем 3
Сообщения 20
18
20:10

Ок, спасибо. Утром буду пробовать все уже, отпишу сюда что в конечном итоге вышло )))
Хорошего вечера.

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
19
20:19

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

0
Тема закрыта. Публикация новых сообщений запрещена.