Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Не могу подключить ПС ЯндексДеньги

27.05.2019, 15:33
Gvenv_nk
Наталья Комарова
Gvenv_nk

Зарегистрирован:
2011-11-07
Сообщений: 43

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

Итак. сайт https://neurodrama.ru
Редакция corporate, личный кабинет настроен, инет-магазин как бы существует (те в модуле все необходимые настройки прописаны + есть компонент товар, который пока работает просто как набор html страниц).

Пытаемся подключить платежи через Яндекс.Деньги. Делаю это впервые, тк, не будучи программистом, предпочитаю не браться за какие-то заведомо трудно решаемые задачи, как-то магазины и т.п.
Однако же вот пришлось, и разумеется, сразу что-то пошло не так.

Клиент заключил договор с яндексом, получил
shopId = 605324
scid = 941289

Далее специалист яндекса пишет:

Цитата:
Установите в своих скриптах обработчик запросов
<form action="https://money.yandex.ru/eshop.xml" method="post">


Вопрос: в каких скриптах? Лично для меня это совершенно неочевидно.

При этом, заполняя техническую анкету, кот. прислал нам яндекс, я встала в тупик, когда понадобилось заполнить checkUrl, avisoUrl и Result Url. По документации неткэт выходит, что это - один и тот же урл. Так им и написала, ибо других данных не было.

В итоге попыталась реализовать задачу следующим образом:
1) прописала указанные параметры в настройках модуля "Прием платежей".
По поводу shopFailURL и shopSuccessURL яндекс написал, что эти параметры необязательные.
В поле shopPassword пусто, тк соответствующего параметра у меня тоже нет.
testMode поставила 1, тк хотелось бы сначала поработать в режиме тестирования.
2) тк клиент хотел, чтобы оплата осуществлялась непосредственно из личного кабинета, создала в ЛК раздел "Личный счет", прикрепив к нему соответствующий компонент. Компонент отредактировала опять же по инструкции , вписав в form action "https://money.yandex.ru/eshop.xml"

В итоге форма добавления в компоненте выглядит так:
Код:
<? if (!$payment_system_name):?>
<p>Здравствуйте, <?php echo $current_user['ForumName']; ?>! Для оплаты заказа пополните личный счет</p>
<form class='form form-inline' action="https://money.yandex.ru/eshop.xml" method="post">
<input type="hidden" name="order_id" value="<?= time()?>">
<label>с помощью платежной системы
<select class='form-control' name="payment_system_name">
<option value="nc_payment_system_yandexcpp">Яндекс.Деньги</option>
<option value="nc_payment_system_qiwi">QIWI</option>
<option value="nc_payment_system_webmoney">WebMoney</option>

<option value="nc_payment_system_paypal">PayPal</option>
</select></label>

<label>на сумму:
<input class='form-control' name="amount" value="" placeholder="100"> руб.</label>

<input class='btn btn-outline-secondary py-2 px-4 my-4' type="submit" value="Продолжить">
</form>
<? endif; ?>

В итоге, нажимая кнопку "Продолжить", получаю https://money.yandex.ru/payments/fail?reason=invalid-scid
(в данный момент эта кнопка доступна еще из карточки товара, где тоже, естественно, не работает)

Не сомневаюсь, что мой "способ решения" - это полный бред, но пошаговая инструкция для чайников на сайте неткэт, как и на яндексе, увы, отсутствует.
Поэтому параллельно пишу в ТП Яндекса, хотя особой надежды на помощь с их стороны не питаю.

Но главное, непонятно, как, даже в случае успешного подключения модуля платежей, я привяжу данную конкретную транзакцию именно к данному товару.
Процесс "деньги - товар" на сайте должен работать так: пользователь оплачивает товар (учебный курс, книгу или фильм) через свой ЛК, деньги списываются с его счета, после чего ему становятся доступны раздел с материалами курса или ссылка на скачивание книги (фильма). Такой функционал в редакции corporate должен существовать, тезисно я об этом в документации читала, но подробного описания или примера реализации опять-таки не нашла.

Еще раз приношу глубокие извинения за тупые вопросы, но за несколько дней мучений окончательно зашла в тупик. Не кидайтесь тапками, помогите, пожалуйста!!!

Наталья Комарова
05.06.2019, 09:27
Gvenv_nk
Наталья Комарова
Gvenv_nk

Зарегистрирован:
2011-11-07
Сообщений: 43

Отвечаю сама себе - может, кому-то пригодится.
Во-первых, для начала надо было правильно настроить сам ИМ (сделано).
Во-вторых, клиент самозанятый, для такого статуса у Яндекса - особые правила. Пришлось повторить процедуру регистрации, после чего яндекс прислал окончательные настройки. И модуль заработал!

Довольно потирая руки, я стала покупать на сайте клиента книгу за рубль. Но радость оказалась преждевременной: транзакция зависла на этапе оплаты, Яндекс выдал ошибку.
Полезла на страницу с инструкциями и увидела там как минимум 2 причины данной проблемы:
1. доступ к сайту по HTTPS настроен с применением технологии SNI, которую яндекс не поддерживает;
2. поле shopPassword в настройках модуля на сайте не заполнено.
На этом пока все. Пишу в ТП хостинга по поводу SNI, выясняю все насчет пароля и попробую еще раз. Продолжение следует!

Наталья Комарова
05.06.2019, 11:07
Gvenv_nk
Наталья Комарова
Gvenv_nk

Зарегистрирован:
2011-11-07
Сообщений: 43

Как выяснилось, shopPassword = shopId.
Вписала в настройки модуля. И о чудо - платеж выполнен!
(пароль по согласованию с яндексом потом заменили на нормальный)

Наталья Комарова
198 196 2019-06-05 11:07:13 15102
Описание проекта