Здравствуйте. Подключили к сайту Яндекс.Кассу, все работает отлично, кроме одного: не получается корректно настроить уведомление о совершенном платеже для бухгалтерии и клиента + подключить достижение целей в Метрике и Аналитиксе.
Изначально я все настроил на странице "благодарности", на которую пользователь попадает после того, как совершит оплату и нажмет на кнопку "Вернуться в магазин". Данные о платеже передаются GETом, а затем обрабатываются скриптами... Вот только оказалось, что большинство пользователей не нажимают эту кнопку. Т.е. после оплаты они просто закрывают вкладку/браузер, поэтому никакие данные GETом не передаются.
Техподдержка Яндекса сказала, что обработку платежей нужно настраивать в файле paymentAviso.php, куда данные передаются POSTом непосредственно после оплаты. Я понятия не имею, как их там принять и обработать. Особенно не понятно - как в php-файле настроить срабатывание цели для Метрики и Аналитикса.
Может у кого-нибудь есть опыт реализации подобных задач? Не поделитесь решением?
Ответы (8)
<?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);
?>
А по вашему оповещению, если ваша почтовая программа не поддерживает по умолчанию юникод, может быть поправить в настройке отправки письма кодировку charset=utf-8 на ту которая у вас по умолчанию в почтовой программе.
Нет, в Метрику цель не получается передать, т.к. она из "посещения" берет информацию, а в "нашем" случае посещения нет, как такового. Можно настроить передачу в другие сервисы (типа Роистата или CoMagic) через API. У Метрики, если не ошибаюсь, такого API нет.
Что касается Юникода, я пока не разбирался. Данные от Кассы приходят в UTF-8, судя по документации. Следовательно нужно будет перегонять данные в другую кодировку... Пока нет на это времени. Кое как работает, да и ладно. Главное что теперь о платежах вовремя узнаем...
Но это сложно, надеюсь все таки найдется простое решение через файл Aviso
Проще вряд ли что-то будет. Напильник - главный инструмент вебмастера :)
Столкнулся с этой же проблемой сегодня.