Проекты(3980)

  • 09 июня 2018 г.
    Необходимы доработки по сайту (верстка, программирование)
  • Здравствуйте, уважаемые разработчики,необходимо написания платежного модуля megakassa.ru для Diafan. Megakassa предоставляет API.

    По данной ссылки можно найти API, но если вы не зарегистрированы в системе вас попросит зарегистрироваться:

    https://megakassa.ru/panel/api/#tab1

    Мои пожелания:
    1. Модуль нужно сделать чтобы оплата была через форму Мегакассы (1 вариант интеграции, см. API)
    2. Должна быть возможность установить модуль не только на мой данный сайт, но и на любой сайт.
    3. Активны все способы оплаты
    4. По срокам ограничений нет, спешки нет, можете за 2 дня хорошо, за неделю тоже хорошо, не к спеху.

    Укажите в обратной связи ваши сроки и цену.
    Заранее благодарю)


    Направлю вам также API тут:

    Для начала приема платежей необходимо:

    Зарегистрировать магазин в личном кабинете.
    Подтвердить право владения доменом через размещение TXT-файла в корне вашего магазина.
    Успешно пройти ручную проверку сайта на соответствие требованиям Мегакассы (1-3 дня).
    После успешной активации вашего магазина, вы сможете разместить кнопку на сайте для оплаты через Мегакассу.
    Внешний вид кнопки вы формируете самостоятельно, исходя из дизайна вашего магазина.

    Варианты интеграции с Мегакассой

    В Мегакассе предусмотрено 2 варианта интеграции:

    Оплата через платежную форму Мегакассы.
    В этом случае, параметры method_id и client_email должны быть переданы как пустые строки "".
    Моментальный редирект на форму оплаты выбранной платежной системы, минуя платежную форму Мегакассы.
    Для этого варианта параметры method_id и client_email должны быть указаны.
    Для оплаты через Qiwi Wallet (method_id = 22), также требуется передать параметр client_phone.
    Нужно иметь ввиду, Мегакасса не допускает указания, например, поля client_email и пустое поле method_id.
    Либо оба поля пустые, либо оба корректно заполнены.

    Приём платежей на сайте вашего магазина

    Вы можете сформировать прямую ссылку или HTML-форму методом GET или POST на URL https://megakassa.ru/merchant/, на который необходимо передать несколько параметров:
    Все текстовые параметры должны быть переданы в кодировке UTF-8.

    shop_id Уникальный идентификатор магазина.
    amount Сумма платежа. Например: 83 или 15.76 (в формате int или float)
    currency Валюта по ISO 4217. Например: RUB.
    В настроящее время доступны следующие валюты: RUB, USD, EUR.
    description Короткое текстовое описание платежа. Например: iPhone 6 plus 32 Gb.
    Максимальная длина 50 символов.
    order_id Уникальный ID покупки в вашем магазине.
    Максимальная длина 8 символов.
    method_id ID метода оплаты в Мегакассе.
    Если параметр method_id не передан, то при формировании сигнатуры он будет считаться равным пустой строке "".
    Посмотреть список соответствий ID для доступных методов оплаты.
    Указывать обязательно при использовании client_email
    client_email E-mail адрес клиента вашего магазина.
    Если параметр client_email не передан, то при формировании сигнатуры он будет считаться равным пустой строке "".
    Указывать обязательно при использовании method_id
    client_phone Номер сотового телефона клиента вашего магазина.
    Это параметр обязателен только в случае использования 2-ого варианта интеграции, и только для Qiwi Wallet.
    Указывать обязательно при использовании method_id, client_email для QIWI.
    debug Включает тестовый режим для разработчиков. Деньги с клиента не списываются и в магазин не зачисляются. Чтобы включить текстовый режим, нужно передать значение 1.
    signature Результат функции md5($secret_key.md5($shop_id.':'.$amount.':'.$currency.':'.$description.':'.$order_id.':'.$method_id.':'.$client_email.':'.$debug.':'.$secret_key))
    где $secret_key - секретный ключ, ранее полученный вами при добавлении вашего магазина. Вы всегда сможете увидеть его в настойках вашего магазина, там же, в случае необходимости, сможете и изменить его. Если параметр debug не передан, он будет считаться равным пустой строке "".
    language Язык платежной страницы Мегакассы.
    Возможные значения: ru, en. По-умолчанию: ru.
    * Любые другие параметры, которые не пересекаются с вышеперечисленными.
    Могут использоваться по своему усмотрению. Вернется в уведомлении об успешной оплате.
    Внимание! доп. параметры не защищены сигнатурой, поэтому крайне не рекомендуем использовать их в критичных участах ваших скриптов, они могут быть подделаны злоумышленниками.
    Пример подключения Мегакассы на PHP

    <?php
    $shop_id = '1';
    $amount = number_format(100.5, 2, '.', ''); // -> "100.50"
    $currency = 'RUB'; // или "USD", "EUR"
    $description = 'iPhone 8 plus 32 Gb';
    $order_id = 123456;
    $method_id = '';
    $client_email = '';
    $debug = ''; // или "1"
    $secret_key = '0123456789abcdef'; // из настроек сайта в личном кабинете
    $signature = md5($secret_key.md5(join(':', array($shop_id, $amount, $currency, $description, $order_id, $method_id, $client_email, $debug, $secret_key))));
    $language = 'ru'; // или 'en'
    ?>
    <form method="post" action="https://megakassa.ru/merchant/" accept-charset="UTF-8">
    <input type="hidden" name="shop_id" value="<?=$shop_id;?>" />
    <input type="hidden" name="amount" value="<?=$amount;?>" />
    <input type="hidden" name="currency" value="<?=$currency;?>" />
    <input type="hidden" name="description" value="<?=htmlentities($description, ENT_QUOTES, 'UTF-8');?>" />
    <input type="hidden" name="order_id" value="<?=$order_id;?>" />
    <input type="hidden" name="method_id" value="<?=$method_id;?>" />
    <input type="hidden" name="client_email" value="<?=$client_email;?>" />
    <input type="hidden" name="debug" value="<?=$debug;?>" />
    <input type="hidden" name="signature" value="<?=$signature;?>" />
    <input type="hidden" name="language" value="<?=$language;?>" />
    <input type="submit" value="Купить" />
    </form>
    Список ID методов оплаты Мегакассы

    2 PerfectMoney USD
    3 PerfectMoney EUR
    22 Qiwi Wallet RUB
    1 Яндекс.Деньги RUB
    39 Альфа-Клик RUB
    16 WebMoney RUB
    17 WebMoney USD
    18 WebMoney EUR
    8 Visa, MasterCard, Maestro, МИР RUB
    40 Промсвязьбанк RUB
    32 Евросеть RUB
    64 Билайн RUB
    28 Лидер RUB
    33 Связной RUB
    37 Платежные терминалы России RUB
    57 Банковский перевод RUB
    59 Элекснет RUB
    60 МосОблБанк RUB
    62 Payeer RUB
    63 Tele2 RUB
    Получение уведомлений об успешной оплате

    Сразу после того как пользователь вашего магазина произведет успешную оплату, на URL обработчика вашего магазина придет HTTP-уведомление методом POST.
    Причем запрос будет производиться между сервером Мегакассы и вашим магазином, то есть без участия пользователя.
    POST состоит из:

    uid Уникальный идентификатор платежа в Мегакассе.
    integer
    amount Первоначальная сумма, выставленная в платеже.
    double
    amount_shop Сумма, зачисленная на счет вашего магазина.
    double
    amount_client Сумма, ранее оплаченная клиентом вашего магазина.
    double
    currency Валюта по ISO 4217. Например: RUB.
    В настроящее время доступны следующие валюты: RUB, USD, EUR.
    string
    order_id Уникальный ID покупки в вашем магазине.
    Максимальная длина 20 символов. Обязательный параметр.
    string
    payment_method_id ID системы оплаты в Мегакассе.
    integer
    payment_method_title Наименование системы оплаты в Мегакассе.
    string
    creation_time Время создания платежа в Мегакассе.
    В формате ISO 8601, например: 2016-08-13T14:17:25+03:00.
    string
    payment_time Время оплаты платежа в Мегакассе.
    В формате ISO 8601, например: 2016-08-13T14:17:25+03:00.
    Если платеж не имеет статус success, то поле передаётся в виде пустой строки "".
    string
    client_email E-mail адрес клиента.
    string
    status Статус платежа в Мегакассе.
    Возможные значения: success, fail.
    string
    debug Флаг тестового режима.
    Возможные значения: 0 - рабочий режим, 1 - тестовый режим.
    string
    signature Результат функции md5($uid.':'.$amount.':'.$amount_shop.':'.$amount_client.':'.$currency.':'.$order_id.':'.$payment_method_id.':'.$payment_method_title.':'.$creation_time.':'.$payment_time.':'.$client_email.':'.$status.':'.$debug.':'.$secret_key)где $secret_key - секретный ключ, ранее полученный вами при добавлении вашего магазина. Вы всегда сможете увидеть его в настойках вашего магазина, там же, в случае необходимости, сможете и изменить его.
    string
    * Любой другой параметр, если ранее он был передан в метод формирования платежа.
    string
    Уведомление будет считаться успешно обработанным, если Мегакасса со стороны магазина в течение 30 сек. получит ответ с содержанием "ok" в любом регистре. Если содержание ответа будет отличаться от "ok" или же ответ не может быть получен вовремя, то через каждые 10 мин Мегакасса будет отправлять уведомление повторно 6 раз, потом каждые 60 мин в течении 24 часа.

    Следует проверять правильность подписи (signature), соответствие суммы платежа (amount) и стоимости заказа в вашей базе данных, IP нашего сервера отправляющего Вам информацию: 5.196.121.217

    Возврат пользователя в ваш магазин

    После того как оплата будет успешно совершена (или отменена) пользователь вашего магазина окажется на странице Мегакассы, на которой отражен результат выполнения платежа. Далее, пользователь будет перенаправлен на страницу URL успешной оплаты, в случае выполнения платежа, или на URL неуспешной оплаты, в случае, например, отмены платежа пользователем или нехватки денежных средств на его кошельке.

    Нужно иметь ввиду, что Мегакасса передает для обоих URL-адресов order_id(если вам надо, требует включения в настройках магазина). Однозначным критерием успешного или неуспешного платежа может являться только вызов URL обработчика со стороны Мегакассы. Связано это с тем, что некоторые платежные системы не могут моментально произвести оплату, и, соответственно, оповестить об этом Мегакассу. Или же сообщают о предварительном успехе, а позже, по различным причинам, оплата может быть отменена.

    Пример обработки ответа Мегакассы

    <?php
    // проверка IP-адреса
    $ip_checked = false;

    foreach(array(
    'HTTP_X_CLUSTER_CLIENT_IP',
    'HTTP_X_FORWARDED_FOR',
    'HTTP_X_FORWARDED',
    'HTTP_FORWARDED_FOR',
    'HTTP_FORWARDED',
    'HTTP_CLIENT_IP',
    'REMOTE_ADDR'
    ) as $param) {
    if(!empty($_SERVER[$param]) && $_SERVER[$param] === '5.196.121.217') {
    $ip_checked = true;
    break;
    }
    }
    if(!$ip_checked) {
    die('error');
    }

    // проверка на наличие обязательных полей
    // поля $payment_time и $debug могут дать true для empty() поэтому их нет в проверке
    foreach(array(
    'uid',
    'amount',
    'amount_shop',
    'amount_client',
    'currency',
    'order_id',
    'payment_method_title',
    'creation_time',
    'client_email',
    'status',
    'signature'
    ) as $field) {
    if(empty($_REQUEST[$field])) {
    die('error');
    }
    }

    // ваш секретный ключ
    $secret_key = '0123456789abcdef';

    // нормализация данных
    $uid = (int)$_REQUEST["uid"];
    $amount = (double)$_REQUEST["amount"];
    $amount_shop = (double)$_REQUEST["amount_shop"];
    $amount_client = (double)$_REQUEST["amount_client"];
    $currency = $_REQUEST["currency"];
    $order_id = $_REQUEST["order_id"];
    $payment_method_id = (int)$_REQUEST["payment_method_id"];
    $payment_method_title = $_REQUEST["payment_method_title"];
    $creation_time = $_REQUEST["creation_time"];
    $payment_time = $_REQUEST["payment_time"];
    $client_email = $_REQUEST["client_email"];
    $status = $_REQUEST["status"];
    $debug = (!empty($_REQUEST["debug"])) ? '1' : '0';
    $signature = $_REQUEST["signature"];

    // проверка валюты
    if(!in_array($currency, array('RUB', 'USD', 'EUR'), true)) {
    die('error');
    }

    // проверка статуса платежа
    if(!in_array($status, array('success', 'fail'), true)) {
    die('error');
    }

    // проверка формата сигнатуры
    if(!preg_match('/^[0-9a-f]{32}$/', $signature)) {
    die('error');
    }

    // проверка значения сигнатуры
    $signature_calc = md5(join(':', array(
    $uid, $amount, $amount_shop, $amount_client, $currency, $order_id,
    $payment_method_id, $payment_method_title, $creation_time, $payment_time,
    $client_email, $status, $debug, $secret_key
    )));
    if($signature_calc !== $signature) {
    die('error');
    }

    // далее ваши проверки:
    // - на наличие платежа в вашей БД по $order_id
    // - на соответствии суммы и валюты платежа в вашей БД
    // ...

    // обработка платежа
    switch($status) {
    case 'success':

    // время соверешния платежа в Unix timestamp (если нужно)
    $payment_time_ts = strtotime($payment_time);

    // ваш код при успешной оплате
    // ...
    break;
    case 'fail':
    // ваш код при отмене или истечении платежа
    // ...
    break;
    }

    // успешный ответ для Мегакассы и завершение скрипта
    die('ok');
    ?>
  • 08 июня 2018 г.
    Нужен программист для полного редизайна сайта, с использованием дизайнеров сайтов, также создание файла загрузки импорта/экспорта товаров.
  • 08 июня 2018 г.
    Нужен программист для полного редизайна сайта, с использованием дизайнеров сайтов, также создание файла загрузки импорта/экспорта товаров.
  • Нужно сделать кнопку в карточке товаров "КУПИТЬ В КРЕДИТ", Есть инструкция от сервиса кнопки.

    Инструкция - https://agents.kreditmarket.ua/partners/_general/_options/?uid=jyn0528369864679
  • Создали счетчик в метрике, добавили модуль метрики, внесли все данные, но она не работает.
  • Нужно произвести оптимизацию запроса.
  • Есть группа товаров в МС, которые загружаются туда импортом. должно выгружаться все в диафан вместе с типами характеристик - выпадающий список должен должен быть, для создания фильтров.

    Там нет настроек никаких для выгрузки, по этому просто должны просто совпадать хар-теки номенклатурные созданные в диафане и МС, как я понял, но что-то не ладится.

    МС и Диафан еще пустые, есть тестовые файл на 200 позиций, на котором все можно настроить.
  • Шаблон сайта
    http://cars.superman0509.ru/uslugi/gruzoperevozki/

    Установить сайт на хостинг.

    + ТЗ по корректировкам

    https://yadi.sk/i/efe3lYOJ3WxTn6
  • Здравствуйте, есть ошибки на сайте http://amk-russia.ru, которые нужно исправить.

    1. Если включить режим для слабовидящих, потом вернуться в обычный режим - сайт вообще не реагирует. Не нажимаются кнопки. Это в основном происходит не на главной странице, а на внутренних.

    2. На страницах пагинации в h1, title, description не дописано - страница 2 и т.д. Нужно дописать. Т.е. переходим на страницу 2...5 и к заголовку, title и description дописывается - страница 2, страница 5 и т.д.

    Напишите пожалуйста сроки работы и стоимость.