Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   В result приходит значение false (https://javascript.ru/forum/misc/74639-v-result-prikhodit-znachenie-false.html)

_marisha 26.07.2018 08:05

В result приходит значение false
 
Вложений: 1
Доброго времени суток!
Необходимо произвести интеграцию сайта с банком для покупки в кредит.
Есть мануал 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).
Подскажите, пожалуйста, с чем может быть связана данная проблема? Спасибо.

Rise 26.07.2018 09:21

Ошибки то есть нет в консоли?

_marisha 26.07.2018 10:24

Вложений: 2
Rise, ошибок связанных с новым кодом нет.
Есть только ошибка "message undefined: COMPARE_LIST" (скрин 5). Но ошибка была и до этого кода.
На всякий случай вкладка "Network" (скрин 4)

Rise 26.07.2018 10:44

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

_marisha 26.07.2018 11:02

Вложений: 2
Если выполнить
poscreditServices('paymentCalculation', accessID, {products: ProductList});
, тогда алерт не выскакивает, но форма всё равно не подгружается (скрин 7)
Так выглядит результат в консоли(скрин 6)

Rise 26.07.2018 11:17

Цитата:

Сообщение от _marisha
Если выполнить

Остальная часть в виде функции куда пропала?

_marisha 26.07.2018 11:24

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

Rise 26.07.2018 11:40

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

_marisha 26.07.2018 11:59

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

Rise 26.07.2018 15:27

Цитата:

Сообщение от _marisha
доступ верный, ТП подтвердила данные.

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


Часовой пояс GMT +3, время: 12:26.