Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.06.2020, 16:11
Кандидат Javascript-наук
Отправить личное сообщение для Hovik Посмотреть профиль Найти все сообщения от Hovik
 
Регистрация: 15.10.2018
Сообщений: 116

Сделать два запроса одним кликом
Здравствуйте у меня есть форма для платежа на opencart, который должна обрабатыватся на фронте, там много модули поставлении а в модуля форма сделано обфускация и в добавок платежная система не дает возможность сделать debug в php. Так вот чтобы обезопасить форму от ручного изменения я создал форму без полей
<form>
<button type="submit" id="idram" style="cursor: pointer" class="btn btn-success"  >
	 &nbsp; Перейди по ссылке 
   </button>
</form>

и поля этого формы должно добавляться в коде который сделает два запроса. Первый чтобы получить данный из базы второе отправит посетителя по ссылке.
Я сделал первый асинхронно а второй синхронно но второй не работает
function idram() {
	    $(document).ready(function() {
	        let quantity = $('td.quantity input').val();
	        let name = $('#customer_firstname').val();
	        let phone = $('#customer_telephone').val();
	        let email = $('#customer_email').val();
	        let zone_id = $('#shipping_address_zone_id').val();
	        let city = $('#shipping_address_city').val();
	        let addr = $('#shipping_address_address_1').val();
	        let country_id = $('#shipping_address_country_id').val();
	        let address_id = $('#shipping_address_current_address_id').val();
	        let shipping_method = $('#simplecheckout_shipping input:checked').val();
	        let payment = $('#simplecheckout_payment input:checked').val();

	        $.ajax({
	                url: 'http://mamapapa.am/index.php?route=checkout/simplecheckout&group=0',
	                type: 'POST',
	                dataType: 'html',
	                cache: false,
	                data: {
	                    'customer[firstname]': name,
	                    'customer[telephone]': phone,
	                    'customer[email]': email,
	                    'shipping_address[zone_id]': zone_id,
	                    'shipping_address[city]': city,
	                    'shipping_address[address_1]': addr,
	                    'shipping_address[country_id]': country_id,
	                    'shipping_address[postcode]': '',
	                    'shipping_address[current_address_id]': address_id,
	                    'shipping_method': shipping_method,
	                    'shipping_method_current': shipping_method,
	                    'shipping_method_checked': shipping_method,
	                    'payment_method': payment,
	                    'payment_method_current': payment,
	                    'payment_method_checked': payment,
	                    'comment': '',
	                    'quantity[189]': quantity,
	                    'remove': '',
	                    'next_step': 1,
	                    'simple_ajax': 1,
	                },
	            }).done(function(html) {
	                let amou = $(html).find('#total_total span.simplecheckout-cart-total-value').text();
	                let totalres = parseInt(amou) + '.00';
	                $.ajax({
	                    url: 'https://web.paymen.am/payment.aspx',
	                    type: 'POST',
	                    dataType: 'html',
	                    cache: false,
	                    async: false,
	                    data: {
	                        'EDP_LANGUAGE': 'AM',
	                        'EDP_REC_ACCOUNT': '1111111',
	                        'EDP_DESCRIPTION': 'Mmmmmm',
	                        'EDP_AMOUNT': totalres,
	                        'EDP_BILL_NO': 1,
	                    },
	                });
	            })
	            .fail(function() {
	                // console.log("error");
	            });
	    });
	};

	$(document).ready(function() {
	    $('#idram').click(function(e) {
	    	// e.preventDefault();
	        idram();
	    });
	});

Последний раз редактировалось Hovik, 28.06.2020 в 17:25.
Ответить с цитированием
  #2 (permalink)  
Старый 28.06.2020, 16:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Hovik
второй синхронно
Зачем?

Сообщение от Hovik
второй не работает
Чем выражается?
Ответить с цитированием
  #3 (permalink)  
Старый 28.06.2020, 17:24
Кандидат Javascript-наук
Отправить личное сообщение для Hovik Посмотреть профиль Найти все сообщения от Hovik
 
Регистрация: 15.10.2018
Сообщений: 116

первый запрос для получение данный из базу( чтобы пользователь не смог руками поменять значение)
Цитата:
Зачем?
второе чтобы перейти по форме
нажав на кнопку посетитель должна перейти по адресу второго запроса (это адрес платежного средства)
Ответить с цитированием
  #4 (permalink)  
Старый 28.06.2020, 17:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Зачем синхронный? Это подвесить страницу.

Если запрос к чужому домену что-то и возвращает, а вот доступ к этим данным будет запрещен, если домен не дает на это добро, передачей соответствующих заголовков.
Ответить с цитированием
  #5 (permalink)  
Старый 28.06.2020, 17:38
Кандидат Javascript-наук
Отправить личное сообщение для Hovik Посмотреть профиль Найти все сообщения от Hovik
 
Регистрация: 15.10.2018
Сообщений: 116

а как отправит пользователя к страницу платежного система с пост формой,
платежного система ожидает
<form method="post'>
5 input
</form>
Ответить с цитированием
  #6 (permalink)  
Старый 28.06.2020, 17:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Я не знаю о какой форме речь и для кого, вопрос был "почему второй запрос не работает", а чем выражается "не работа" так и осталось неизвестно.
Ответить с цитированием
  #7 (permalink)  
Старый 28.06.2020, 17:55
Кандидат Javascript-наук
Отправить личное сообщение для Hovik Посмотреть профиль Найти все сообщения от Hovik
 
Регистрация: 15.10.2018
Сообщений: 116

второе форма должна отправить пользователя на страницу
url: 'https://web.paymen.am/payment.aspx',

но не отправляет и по этому не работает
Ответить с цитированием
  #8 (permalink)  
Старый 28.06.2020, 18:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

$.ajax({url: 'https://web.paymen.am/payment.aspx' - ни синхронным, ни асинхронным методом пользователя на эту страницу не отравит, это запрос к этой странице методом POST с данными data: ....
Ответить с цитированием
  #9 (permalink)  
Старый 28.06.2020, 18:28
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

У вас сайт к тому же небезопасный протокол использует, а вы хотите передать данные сайту с безопасным протоколом. Любой уважающий себя и своих клиентов сервис связанный с платежами не станет общаться по небезопасному протоколу.
Ответить с цитированием
  #10 (permalink)  
Старый 28.06.2020, 18:37
Кандидат Javascript-наук
Отправить личное сообщение для Hovik Посмотреть профиль Найти все сообщения от Hovik
 
Регистрация: 15.10.2018
Сообщений: 116

получается логика не правильная а у вас есть идея как реализовать все это. Нужно одним нажати на кнопку сначала получить данный из моего базу потом отправит пользователя с заполнении данными по url
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
два запроса одновременно posta Серверные языки и технологии 7 23.02.2012 17:16
Два элемента с одним АйДи Vampir3 Общие вопросы Javascript 20 03.02.2012 20:49
Заполнение формы одним кликом ANDR Ваши сайты и скрипты 5 10.05.2010 21:09
Sortable, два связанных списка. Как один из них сделать неизменяемым? kvecxjo jQuery 1 30.03.2010 03:15
Два accordion на сайт, можно как то сделать? Vitaly jQuery 3 09.11.2009 11:37