Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.07.2018, 08:05
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

В result приходит значение false
Доброго времени суток!
Необходимо произвести интеграцию сайта с банком для покупки в кредит.
Есть мануал https://api.b2otp.ru/shop/manual/:
1) Перед заполнением заявки на кредит вы можете добавить на ваш сайт предварительный расчет параметров с помощью кредитного калькулятора
var productsList = new Array();
productsList[0] = { id: productArticle[0], name: productName[0], category: productCategory[0], price: productPrice[0], count: productCount[0] };
productsList[1] = { id: productArticle[1], name: productName[1], category: productCategory[1], price: productPrice[1], count: productCount[1] };
...
productsList[i] = { id: productArticle[i], name: productName[i], category: productCategory[i], price: productPrice[i], count: productCount[i] };

Т.к. кнопка "В кредит" добавляется в карточку товара, то необходимо получить информацию об одном товаре. Получаем:
var accessID = "9212";
var ProductList = new Array();
ProductList[0] = {
id:'<?=$arResult['ID']?>',
name:'<?=$arResult['PROPERTIES']['NAZVANIE_DLYA_SAYTA']['VALUE']?>',
category:'<?=$arResult['PROPERTIES']['PROIZVODITEL']['VALUE']?>',
price:'<?=$arResult['PRICES']['Розничная']['DISCOUNT_VALUE']?>'
};

2) После формирования массива данных с товарами можно вызывать функцию инициализации формы расчета параметров по кредиту
poscreditServices('paymentCalculation', accessID, { products: productsList }, function(result){
     if(result.success === false){
          alert('Произошла ошибка запуска калькулятора. Попробуйте позднее...'); //Как возможный пример
     }
});

Делаем:
function want_credit() {
poscreditServices('paymentCalculation', accessID, { products: ProductList }, function(result){
 if(result.success === false){
alert('Произошла ошибка при попытке оформить кредит. Попробуйте позднее...');
}
});
}

Функцию вызываем при клике на кнопку "В кредит":
<div class="form-group">
<button type="submit" onclick="want_credit();return false;" name="submitIdentity" style="background: #0a51ae;">
<span><?=GetMessage("LIKEE_ESTORE_KUPITQ_V_CREDIT")?></span>
</button>
</div>

Но при нажатии на кнопку "В кредит" отображается предупреждение alert('Произошла ошибка при попытке оформить кредит. Попробуйте позднее...').
В консоли браузера в result приходит false (скрин 2).
Подскажите, пожалуйста, с чем может быть связана данная проблема? Спасибо.
Изображения:
Тип файла: jpg 2.jpg (54.8 Кб, 8 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 26.07.2018, 09:21
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Ошибки то есть нет в консоли?
Ответить с цитированием
  #3 (permalink)  
Старый 26.07.2018, 10:24
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

Rise, ошибок связанных с новым кодом нет.
Есть только ошибка "message undefined: COMPARE_LIST" (скрин 5). Но ошибка была и до этого кода.
На всякий случай вкладка "Network" (скрин 4)
Изображения:
Тип файла: jpg 4.jpg (71.8 Кб, 4 просмотров)
Тип файла: jpg 5.jpg (57.9 Кб, 5 просмотров)
Ответить с цитированием
  #4 (permalink)  
Старый 26.07.2018, 10:44
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Прямо в консоли выполните poscreditServices, посмотрите получится нет не alert, аргументы только заполните нужные.
Ответить с цитированием
  #5 (permalink)  
Старый 26.07.2018, 11:02
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

Если выполнить
poscreditServices('paymentCalculation', accessID, {products: ProductList});
, тогда алерт не выскакивает, но форма всё равно не подгружается (скрин 7)
Так выглядит результат в консоли(скрин 6)
Изображения:
Тип файла: jpg 6.jpg (82.4 Кб, 3 просмотров)
Тип файла: jpg 7.jpg (20.8 Кб, 4 просмотров)
Ответить с цитированием
  #6 (permalink)  
Старый 26.07.2018, 11:17
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от _marisha
Если выполнить
Остальная часть в виде функции куда пропала?
Ответить с цитированием
  #7 (permalink)  
Старый 26.07.2018, 11:24
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

Rise, Вы имеете ввиду выполнить
poscreditServices('paymentCalculation', accessID, { products: ProductList }, function(result){
                                                if(result.success === false){
                                                    alert('Произошла ошибка при попытке оформить кредит. Попробуйте позднее...');
                                                }
                                            });
?
Если да, то в таком случае алерт выводится.
Ответить с цитированием
  #8 (permalink)  
Старый 26.07.2018, 11:40
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Доступ верный, ключ, адрес сайта? Не знаю насколько это важно, но по мануалу цена должна быть FLOAT, т.е. число, а у вас строка.

Последний раз редактировалось Rise, 26.07.2018 в 11:45.
Ответить с цитированием
  #9 (permalink)  
Старый 26.07.2018, 11:59
Профессор
Отправить личное сообщение для _marisha Посмотреть профиль Найти все сообщения от _marisha
 
Регистрация: 18.05.2018
Сообщений: 170

Rise, доступ верный, ТП подтвердила данные.
Не знаю насколько это важно, но по мануалу цена должна быть FLOAT - можно убрать кавычки и при проверке через
var_dump($arResult['PRICES']['Розничная']['DISCOUNT_VALUE'])
тип float. После этого ошибка сохраняется.
Если через var_dump сделать:
$arResult['ID'] - тип int
$arResult['PROPERTIES']['NAZVANIE_DLYA_SAYTA']['VALUE'] - string
$arResult['PROPERTIES']['PROIZVODITEL']['VALUE'] - string
$arResult['PRICES']['Розничная']['DISCOUNT_VALUE'] - float
Ответить с цитированием
  #10 (permalink)  
Старый 26.07.2018, 15:27
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от _marisha
доступ верный, ТП подтвердила данные.
Ну может другой адрес сайта у вас сейчас, может тестируете на локальном сервере, я не знаю, вроде всё верно, скажите ТП что у них код из мануала не работает.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос об исправлении ENOENT на локальном соединении c MySQL (с node-mysql) noomnau Node.JS 3 12.04.2017 09:49
Jquery validation если заполнено одно из полей Nikita21 jQuery 6 13.10.2016 13:37
Как передать значение в функцию в переменную с нужным именем? bratkovsky Общие вопросы Javascript 1 12.10.2015 08:18
Получить координаты курсора в текстовом поле в пикселях prike Events/DOM/Window 4 23.05.2013 04:35
Функция не возвращает false, почему? Vitaly jQuery 3 05.07.2009 16:05