27.09.2016, 07:39
|
Новичок на форуме
|
|
Регистрация: 27.09.2016
Сообщений: 4
|
|
Отправка на страницу оплаты после отправки данных заказ в БД
Приветствую!
Пытаюсь сделать автоматическое перенаправление на страницу оплаты после подтверждения заказа и отправки данных в БД. Делаю так:
<form method="post" id="orderform" action="">
//данные пользователя для оформления заказа
</form>
<form method="POST" id="yaform" action="https://money.yandex.ru/quickpay/confirm.xml">
//данные для оплаты заказа
</form>
<input type="button" id="submiter" value="Подтвердить" onclick="submit_order();"> // кнопка отправки форм
<script>
function submit_order(){
var input = document.getElementById('phone').value;
if (input.length){
var submit_total = calc();
if (submit_total == 0){
alert ('Спасибо, ваша заявка принята.');
$('#order').trigger ('click');
if (submit_total !== 0){
if (confirm("Спасибо за заказ, сейчас вы будете переадресованы на страницу оплаты.")) {
$('#order').trigger ('click');
$('#yasubmit').trigger ('click');
}
else {
}
}
}
else{
alert ('Пожалуйста, укажите номер телефона.');
}
}
</script>
Если оставить какой то один триггер, то срабатывает нормально.
Но если 2 подряд, срабатывает только 2-й. Уже голову сломал. Может я вообще в корне не так пытаюсь реализовать?
|
|
27.09.2016, 10:23
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Вы к чему показываете часть кода форм, которые к коду отношения не имеют: id="orderform" и id="orderform", а в обработчике $('#order'), $('#yasubmit'). Это что попытка поочередной отправки форм с одной страницы или что? И почему форм две?
|
|
27.09.2016, 12:13
|
Новичок на форуме
|
|
Регистрация: 27.09.2016
Сообщений: 4
|
|
Прошу прощения, что ввел в заблуждение. Вот правильный код:
<form method="post" action="">
//данные пользователя для оформления заказа
<input type="submit" id="order" name="order" value=""> //скрыто
</form>
<form method="POST" action="https://money.yandex.ru/quickpay/confirm.xml">
//данные для оплаты заказа
<input type="submit" id="yasubmit" value=""> //скрыто
</form>
<input type="button" id="submiter" value="" onclick="submit_order();"> // кнопка отправки форм
И да, это попытка отправки 2 форм с одной страницы. Сначала данные заказа в базу, следом редирект на страницу оплаты.
Последний раз редактировалось Zzaj, 27.09.2016 в 12:17.
|
|
27.09.2016, 12:35
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Zzaj
|
И да, это попытка отправки 2 форм с одной страницы.
|
Нельзя отправить сразу две формы. Отправить можно сначала одну, обработать ее (а это переход по url), затем можно отправлять другую.
А значит двух форм обслуживающих одну задачу на странице быть не должно. Ну а по большому счету достаточно и одной формы.
|
|
27.09.2016, 12:48
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Сообщение от Zzaj
|
Сначала данные заказа в базу, следом редирект на страницу оплаты.
|
Не надо так делать, это вызывает раздражение. Форма оплаты должна загружаться аяксом на ту же самую страницу, но самая мякотка, это когда оформление заказа делается с любой страницы, то есть еще раз аяксом. Если яндекс раздает свое API, то скорее всего по XMLHttpRequest все будет работать, или надо у них почитать, как оно должно работать.
|
|
27.09.2016, 12:50
|
Новичок на форуме
|
|
Регистрация: 27.09.2016
Сообщений: 4
|
|
Ну почему же одну задачу, когда их (задач) две? Сначала данные заказа улетают в базу, а потом идет обработка формы оплаты, в которой указана сумма с учетом доставки и, собственно, оплата.
Другого способа к сожалению придумать не смог и в сети не нашел. К тому же, на сколько я знаю, объеденить эти формы не получится, да и не надо.
|
|
27.09.2016, 12:50
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
С редиректом туда же - в ответ кассы. То есть в БД следует заносить то, что оформлено. Яндекс должен ответить - по этому ответу заносите данные в свою базу. Иначе в БД будут ни разу не оплаченные заказы. Юзер просто закроет страницу оплаты, а ты уже посчитал его.
|
|
27.09.2016, 12:52
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Сообщение от Zzaj
|
Сначала данные заказа улетают в базу, а потом идет обработка формы оплаты
|
С какого перепуга? Ну открылась страница оплаты, юзер взял и закрыл ее, досвидос.
Все наоборот. Читай документацию на яндекс-кассу. Я на 146% уверен, они формируют ответ, который можно запрограммировать, то есть калбек.
|
|
27.09.2016, 12:57
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Кстати, это по-нашему. Верить, что человек не человек вовсе, а персонаж твоего собственного сценария. Лол. Да я сколько раз закрывал эти страницы, тупо пройти до конца, посмотреть как народ говнокодит.
Заносить в бд юзера до оплаты - это тоже интересно посчитать сколько было ваннаби. )))
Кроме того карта не проканала, денег не хватило, выбранный канал оплаты кукует и вообще забыл прикупить еще пару вилок, надо вернуться, добить в заказ. Понял? Выписанная счет-фактура - это бумажка, а не деньги.
|
|
27.09.2016, 13:01
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
А еще такой прикол может быть. Тебе пришло из банка смс с паролем, а у тебя труба села, батарейка разрядилась внезапно. Ку-ку.
|
|
|
|