8 ответов

HARDKOD
19.12.2016 19:40

Если у вас нет опыта программирования на PHP или других ЯП, то самостоятельно решить задачу у вас, к сожалению, не получится. Скорее всего решения (копировать-вставить) вы также не найдете, так как задача уникальна для вашего сайта/формы/данных/бизнеса. Напишите что именно нужно отправлять и куда нам на почту hello@hardkod.ru, желательно с доступами к сайту или ссылкой на копию сайта, чтобы мы могли развернуть копию у себя для тестирования.

Viktor
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
21.01.2018 17:52

Спасибо за такой быстрый ответ, сорри что не уточнил, вопрос касается фиксации цели в яндекс метрике, при оплате яндекс кассой через paymentAviso.php

А по вашему оповещению, если ваша почтовая программа не поддерживает по умолчанию юникод, может быть поправить в настройке отправки письма кодировку charset=utf-8 на ту которая у вас по умолчанию в почтовой программе.

Странно, не могу ответить на Ваш последний комментарий, нет кнопки ответа...
Нет, в Метрику цель не получается передать, т.к. она из "посещения" берет информацию, а в "нашем" случае посещения нет, как такового. Можно настроить передачу в другие сервисы (типа Роистата или CoMagic) через API. У Метрики, если не ошибаюсь, такого API нет.
Что касается Юникода, я пока не разбирался. Данные от Кассы приходят в UTF-8, судя по документации. Следовательно нужно будет перегонять данные в другую кодировку... Пока нет на это времени. Кое как работает, да и ладно. Главное что теперь о платежах вовремя узнаем...

Viktor
21.01.2018 18:41

Спасибо. В метрику сейчас точно можно передать оплаты через функцию офлайн конверсии, например выгрузкой csv с данными оплат и загрузкой вручную или через апи метрики https://yandex.ru/support/metrika/data/offline-params.xml .
Но это сложно, надеюсь все таки найдется простое решение через файл Aviso

Бегло пробежался по документации, пожалуй это то, что нужно. В форму оплаты можно добавить идентификатор клиента (ClientID), о котором написано в документации. А в paymentAwiso нужно написать скрипт передачи данных в Метрику через API.
Проще вряд ли что-то будет. Напильник - главный инструмент вебмастера :)

Azamat Gareev
01.04.2019 20:22

Здравствуйте! Как ваша проблема через год, или все тот же напильник? :)
Столкнулся с этой же проблемой сегодня.