No description, website, or topics provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
engine
sample
README.md

README.md

module-dle-shop

Тестировалось и писалось для DLE 10.1 Shop версия 1.1

  1. Регистрируемся на platron.ru
  2. Заходим templates\ваш шаблон\shop\checkout.tpl и в select вставляем (редактируем файлы в той кодировке, в которой они были изначально) <option value="platron">Platron</option>
  3. Открываем engine/modules/shop.php. После switch($_POST['gateway']) вставляем
case"platron":
{
    $GateWay = "Platron";
    break;
}

после

else if($_POST['gateway']=="robox")
{
    $this->RoboxForm($MessArr);
}

вставляем

else if($_POST['gateway']=="platron")
{
    $this->PlatronForm($MessArr);
}

после метода RoboxForm вставить метод PlatronForm

function PlatronForm($MessArr)
{
    require_once('\engine\modules\platron\PG_Signature.php');
    global $tpl;
    global $config

    $form_fields = array(
        'pg_merchant_id' => $this->VarMod->MyConfig['pl_merchant_id']['value'],
        'pg_order_id' => $MessArr['ordernum'],
//      'pg_encoding' =>$config['charset'],
        'pg_user_ip' => $MessArr['ip'],
        'pg_user_email' => $MessArr['email'],
        'pg_contact_email' => $MessArr['email'],
        'pg_amount' => number_format($MessArr['totalsum'], 2, '.', ''),
        'pg_lifetime' => (!emptyempty($this->VarMod->MyConfig['pl_lifetime']['value']))?$this->VarMod->MyConfig['pl_lifetime']['value']:0,
        'pg_testing_mode' => (!emptyempty($this->VarMod->MyConfig['pl_testmode']['value'])) ? 1 : 0,
        'pg_description' => '#'.$MessArr['ordernum'],
        'pg_check_url' => 'http://'.$_SERVER['SERVER_NAME'].'/engine/platron/callback.php',
        'pg_result_url' => 'http://'.$_SERVER['SERVER_NAME'].'/engine/platron/callback.php',
        'pg_request_method' => 'GET',
        'pg_salt' => rand(21,43433), //Пaраметры беопасности сообщения. Необходима генерация pg_salt и подписи сообщения.
    );

    if(!emptyempty($this->VarMod->MyConfig['pg_success_url']['value']))
        $form_fields['pg_success_url'] = $this->VarMod->MyConfig['pg_success_url']['value'];
    if(!emptyempty($this->VarMod->MyConfig['pg_failure_url']['value']))
        $form_fields['pg_failure_url'] = $this->VarMod->MyConfig['pg_failure_url']['value'];

    preg_match_all("/\d/", $MessArr['telephone'], $array);
    $strPhone = implode('',$array[0]);
    $form_fields['pg_user_phone'] = $strPhone;

    $form_fields['pg_sig'] = PG_Signature::make('payment.php', $form_fields, $this->VarMod->MyConfig['pl_secret_key']['value']);
    $query = http_build_query($form_fields);
    header("Location: https://www.platron.ru/payment.php?$query");
}
  1. В engine\data\shop_config.php в конец вставить
$ShopConfig['pl_merchant_id'] = array(
    "value" => '',
    "type" => "varchar",
    "title" => "Platron. Номер магазина",
    "descr" => "Смотреть в личном кабинете platron"
);

$ShopConfig['pl_secret_key'] = array(
    "value" => '',
    "type" => "varchar",
    "title" => "Platron. Секретный ключ",
    "descr" => "Для подписи запросов"
);

$ShopConfig['pl_lifetime'] = array(
    "value" => '',
    "type" => "varchar",
    "title" => "Platron.Время жизни счета",
    "descr" => "Сколько будет жить счет. 0 - не учитывается. Указывается в минутах"
);

$ShopConfig['pl_testmode'] = array(
    "value" => '1',
    "type" => "yesno",
    "title" => "Platron. Тестовый режим",
    "descr" => "Для тестирования взаимодействия"
);

$ShopConfig['pl_success_url'] = array(
    "value" => '',
    "type" => "varchar",
    "title" => "Platron. Url успешного платежа",
    "descr" => "Для возврата покупателя"
);

$ShopConfig['pl_failure_url'] = array(
    "value" => '',
    "type" => "varchar",
    "title" => "Platron. Url не успешного платежа",
    "descr" => "Для возврата покупателя"
);
  1. Вставьте папку engine из архива в корень сайта
  2. В админке при просмотре товаров добавить вывод статуса. В engine\classes\modulus.class.php после if($_GET["mod"] == "shop" && $_GET["op"] == "showlist" && $_GET["class"]=="orders") вставить
$CurrArr = array(
    "unconf" => "В ожидании",
    "paid" => "Оплачен",
    "canceld" => "Отменен",
);

после $TotalList.=$items[$i]["addinfo"]; вставить

$TotalList .= "</td><td>";
$TotalList .= "Статус: " . $CurrArr[$items[$i]["status"]];
  1. Зайти в список всех разделов->админка->Настройка магазина и заполнить поля, которые относятся к platron

Для того, чтобы не принимать платеж достаточно удалить заказ.