Настройка Яндекс.Кассы

8 ответов

Здравствуйте. Подключили к сайту Яндекс.Кассу, все работает отлично, кроме одного: не получается корректно настроить уведомление о совершенном платеже для бухгалтерии и клиента + подключить достижение целей в Метрике и Аналитиксе.

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

Техподдержка Яндекса сказала, что обработку платежей нужно настраивать в файле paymentAviso.php, куда данные передаются POSTом непосредственно после оплаты. Я понятия не имею, как их там принять и обработать. Особенно не понятно - как в php-файле настроить срабатывание цели для Метрики и Аналитикса.

Может у кого-нибудь есть опыт реализации подобных задач? Не поделитесь решением?

Ответы (8)

HARDKOD +42
19.12.2016 19:40
Если у вас нет опыта программирования на PHP или других ЯП, то самостоятельно решить задачу у вас, к сожалению, не получится. Скорее всего решения (копировать-вставить) вы также не найдете, так как задача уникальна для вашего сайта/формы/данных/бизнеса. Напишите что именно нужно отправлять и куда нам на почту hello@hardkod.ru, желательно с доступами к сайту или ссылкой на копию сайта, чтобы мы могли развернуть копию у себя для тестирования.
Viktor 0
21.01.2018 15:23
Здравствуйте, Владимир, столкнулись с этой же задачей, вам удалось ее решить?
Свернуть ответы
Здравствуйте, Виктор. Да, немного "допилил" paymentAviso.php, теперь при получении данных об оплате этот файл отправляет email с данными о платеже, а также сохраняет все данные в файл (типа логирование). Единственная проблема, не получается настроить кодировку писем, приходится вручную в почтовой программе включать "Юникод". Вот мой код:
<?php
include('config.php');//данные о витрине
// имя файла, в который производиться запись
$sps='--------------------------------------------------'."\n";//разделитель
// проверка существования файла
if(file_exists($filename)){
// если файл существует - открываем его
$file = fopen($filename, "a");
}else{
// если файл не существует - создадим его
$file = fopen($filename, "w+");
}
foreach ($_REQUEST as $key => $val){//форычим запрос
fwrite($file, $key . ' => ' . $val . "\n");//записываем в лог-файл
}
fwrite($file, $sps);//добавляем разделитель
// закрываем файл
fclose($file);
/*
готовим переменные и отправляем письмо
*/
$ordername = $_POST['orderNumber'];
$name = $_POST['customerNumber'];
$phone = $_POST['gsphone'];
$email = $_POST['gsemail'];
$ordersumamount = $_POST['gssum']." руб.";
$to = 'poluchatel@imyasayta.ru';;
$subject = 'Уведомление об оплате';
$message = 'Поступила оплата счета №'.$ordername.' на сумму '.$ordersumamount.' Плательщик: '.$name.' '.$phone.' '.$email;
$headers = 'From: otpravitel@imyasayta.ru'; . "\r\n" . 'X-Mailer: PHP/' . phpversion();
$headers .= "Content-Type: text/html; charset=utf-8";
mail($to, $subject, $message, $headers);
?>
Viktor 0
21.01.2018 17:52
Спасибо за такой быстрый ответ, сорри что не уточнил, вопрос касается фиксации цели в яндекс метрике, при оплате яндекс кассой через paymentAviso.php

А по вашему оповещению, если ваша почтовая программа не поддерживает по умолчанию юникод, может быть поправить в настройке отправки письма кодировку charset=utf-8 на ту которая у вас по умолчанию в почтовой программе.
Странно, не могу ответить на Ваш последний комментарий, нет кнопки ответа...
Нет, в Метрику цель не получается передать, т.к. она из "посещения" берет информацию, а в "нашем" случае посещения нет, как такового. Можно настроить передачу в другие сервисы (типа Роистата или CoMagic) через API. У Метрики, если не ошибаюсь, такого API нет.
Что касается Юникода, я пока не разбирался. Данные от Кассы приходят в UTF-8, судя по документации. Следовательно нужно будет перегонять данные в другую кодировку... Пока нет на это времени. Кое как работает, да и ладно. Главное что теперь о платежах вовремя узнаем...
Viktor 0
21.01.2018 18:41
Спасибо. В метрику сейчас точно можно передать оплаты через функцию офлайн конверсии, например выгрузкой csv с данными оплат и загрузкой вручную или через апи метрики https://yandex.ru/support/metrika/data/offline-params.xml .
Но это сложно, надеюсь все таки найдется простое решение через файл Aviso
Бегло пробежался по документации, пожалуй это то, что нужно. В форму оплаты можно добавить идентификатор клиента (ClientID), о котором написано в документации. А в paymentAwiso нужно написать скрипт передачи данных в Метрику через API.
Проще вряд ли что-то будет. Напильник - главный инструмент вебмастера :)
Azamat Gareev 0
01.04.2019 20:22
Здравствуйте! Как ваша проблема через год, или все тот же напильник? :)
Столкнулся с этой же проблемой сегодня.

Похожие вопросы

Артур
463

Не могу обновиться с версии Joomla 3.9.27 на 3.10.11 и сменить версию PHP 7.4 на 8.0

1 вопрос: Скачал файлы через VPN, пробую через консоль. Выдаёт при загрузке ошибку "500". Никак не могу обновить сайт. Пакеты есть, а сайт не хочет их принять. 2-й вопрос:  Сайт просит сменить версию PHP c 7.4 на 8.0 и выше. Но...
Максим
464

Съезжает картинка, прошу помощи.

Здравствуйте, проблема с сайтом. После редактирования документа PHP, появилась проблема с корректным отображением карты ТЦ.  Проблемный 1й этаж. Но после перехода между разными этажами всё становится номально. <div><img class="image"...

Какой путь у файлов на хостинге?

Залил сайт на хостинг timeweb, но разметка вся исчезла. Дело в путях взаимодействия файлов? Путь на локалхосте у файлов был один, а сейчас на хостинге он другой, так? Нужно ли прописывать в пути файла 'public_html'? Если да, то ставится ли /public_html...
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Войти в Комьюнити
Регистрация в Комьюнити
Восстановление пароля