Помогите разобраться с кодом.

sergey_prusov

Участник
Регистрация
31 Окт 2008
Сообщения
203
Реакции
4
Имею код:
PHP:
<?php
defined('ACCESS') or die();
if ($login) {

    if($_GET['pay'] == "no") {
        print '<p class="er">Не удалось пополнить баланс</p>';
    }

    if($_GET['conf']) {

        print '<p class="erok">Ваша заявка отправлена на проверку</p>';

        $conf        = intval($_GET['conf']);
        $purse        = addslashes(htmlspecialchars($_POST["purse"], ENT_QUOTES, ''));

        mysql_query("UPDATE enter SET status = 1, purse = '".$purse."' WHERE id = ".$conf." LIMIT 1");

    } elseif ($_GET['action'] == 'save') {
        $sum    = sprintf ("%01.2f", str_replace(',', '.', $_POST['sum']));
        $ps        = intval($_POST['ps']);

        if ($sum <= 0) {
            print '<p class="er">Введите корректную сумму (от 1 до 10 000 руб.)!</p>';
        } elseif ($sum < 1 || $sum > 10000) {
            print '<p class="er">За один раз разрешено выводить от 50 до 10 000 руб.!</p>';
        } elseif($ps < 1) {
            print '<p class="er">Укажите платежную систему!</p>';
        } else {

                // Форма пополнения
                    if($ps == 1) {

                    // PM

                    $sql = 'INSERT INTO enter (sum, date, login, paysys, service) VALUES ('.$sum.', '.time().', "'.$login.'", "PerfectMoney", "bal")';
                    mysql_query($sql);
                    $lid = mysql_insert_id();

                    if(cfgSET('cfgSSL') == "on") {
                        $http = "https";
                    } else {
                        $http = "http";
                    }

                    print '<FIELDSET style="padding-top: 15px; margin-bottom: 10px;">
                    <LEGEND><b>Подтверждение платежа</b></LEGEND>
                    <form action="https://perfectmoney.is/api/step1.asp" method="POST">
                    <input type="hidden" name="PAYEE_ACCOUNT" value="'.$cfgPerfect.'">
                    <input type="hidden" name="PAYEE_NAME" value="'.$cfgPAYEE_NAME.'">
                    <input type="hidden" name="PAYMENT_ID" value="'.$lid.'">
                    <input type="hidden" name="PAYMENT_AMOUNT" value="'.$sum.'">
                    <input type="hidden" name="PAYMENT_UNITS" value="USD">
                    <input type="hidden" name="STATUS_URL" value="'.$http.'://'.$cfgURL.'/pmresult.php">
                    <input type="hidden" name="PAYMENT_URL" value="'.$http.'://'.$cfgURL.'/deposit/?pay=yes">
                    <input type="hidden" name="PAYMENT_URL_METHOD" value="POST">
                    <input type="hidden" name="NOPAYMENT_URL" value="'.$http.'://'.$cfgURL.'/enter/?pay=no">
                    <input type="hidden" name="NOPAYMENT_URL_METHOD" value="POST">
                    <input type="hidden" name="BAGGAGE_FIELDS" value="">
                    <input type="hidden" name="SUGGESTED_MEMO" value="'.$cfgURL.'">
                    <center>
                    Вы переводите <strong>'.$sum.'</strong> руб. на счёт <strong>'.$cfgPerfect.'</strong> PerfectMoney<br />Пополнение баланса в проекте '.$cfgURL.'<br />
                    <p align="center"><input style="width: 205px; margin: 15px 0 0 0" class="subm" name="PAYMENT_METHOD" type="submit" value=" Пополнить " /></p>
                    </center>
                    </form>
                    </FIELDSET>';

                    } else {


                    $get_ps    = mysql_query("SELECT * FROM paysystems WHERE id = ".intval($ps)." LIMIT 1");
                    $rowps    = mysql_fetch_array($get_ps);

                    $sum2 = sprintf("%01.2f", $sum * $rowps['percent']);

                    $sql = 'INSERT INTO enter (sum, date, login, paysys, service) VALUES ('.$sum.', '.time().', "'.$login.'", "'.$rowps['name'].'", "bal")';

                        if(mysql_query($sql)) {

                        $m_orderid = mysql_insert_id();

                            if($rowps['name'] == "PAYEER") {

                                $m_desc = base64_encode('Пополнение в системе);

                                $cu = 'USD';

                                $m_shop    = '111111111';
                                $m_key = '123';

                                $arHash = array(
                                    $m_shop,
                                    $m_orderid,
                                    $sum,
                                    $m_curr,
                                    $m_desc,
                                    $m_key
                                );

                                $arHash[] = $m_key;

$sign = strtoupper(hash('sha256', implode(':', $arHash)));

                                print '<FIELDSET style="padding-top: 15px; margin-bottom: 10px;">
                                <LEGEND><b>Подтверждение платежа</b></LEGEND>
                                <form method="GET" action="https://payeer.com/api/merchant/m.php" accept-charset="utf-8">
                                <input type="hidden" name="m_shop" value="'.$cid.'">
                                <input type="hidden" name="m_orderid" value="'.$m_orderid.'">
                                <input type="hidden" name="m_amount" value="'.$sum.'">
                                <input type="hidden" name="m_curr" value="USD">
                                <input type="hidden" name="m_desc" value="'.$desc.'">
                                <input type="hidden" name="m_sign" value="'.$sign.'">

                                <center>
                                Вы переводите <strong>'.$sum.'</strong> руб.<br />Пополнение баланса в проекте '.$cfgURL.'<br /><br />
                                <p align="center"><input class="subm" type="submit" name="m_process" value="Пополнить" /></p>
                                </center>
                                </form>
                                </FIELDSET>';

                            } else {

                                print '<FIELDSET style="padding-top: 15px; margin-bottom: 10px;">
                                <LEGEND><b>Подтверждение платежа</b></LEGEND>
                                <form method="GET" action="https://payeer.com/merchant/" accept-charset="utf-8">
                                <input type="hidden" name="m_shop" value="'.$m_shop.'">
                                <input type="hidden" name="m_orderid" value="'.$m_orderid.'">
                                <input type="hidden" name="m_amount" value="'.$sum.'">
                                <input type="hidden" name="m_curr" value="USD">
                                <input type="hidden" name="m_desc" value="'.$m_desc.'">
                                <input type="hidden" name="m_sign" value="'.$sign.'">

                                <center>
                                Вы переводите <strong>'.$sum.'</strong> руб.<br />Пополнение баланса в проекте '.$cfgURL.'<br /><br />
                                <p align="center"><input class="subm" type="submit" name="m_process" value="Пополнить" /></p>
                                </center>
                                </form>
                                </FIELDSET>';
                            }
                         

                        } else {
                            print '<p class="er">Не удаётся отправить заявку!</p>';
                        }

             
             
                    }
        }
    } else {
    ?>
    <div class="row">
        <div class="col-md-3">
            <div class="panel panel-midnightblue" data-widget='{"draggable": "false"}'>
                <div class="panel-heading">
                    <h2>Пополнение счёта</h2>
                </div>
                <div class="panel-body" style="height: 148px">
                    <form action="?action=save" method="post">
<b>Сумма ввода</b>:<br>
<input style="width: 180px;" type='text' name='sum' value='' size="30" maxlength="7" />
<br>
<b>Платежная система</b>:
    <select style="width: 180px; margin-right: 0px;" name="ps">
        <?php
            if($cfgPerfect) {
                print '<option value="1">PerfectMoney</option>';
            }
            if(cfgSET('cfgPEsid') && cfgSET('cfgPEkey')) {
                print '<option value="2">PAYEER</option>';
            }

            $result    = mysql_query("SELECT * FROM `paysystems` WHERE id > 2 ORDER BY id ASC");
            while($row = mysql_fetch_array($result)) {
                print '<option value="'.$row['id'].'">'.$row['name'].'</option> ';
            }
        ?>
    </select>
    <input class="btn btn-primary-alt" style="width: 180px; margin: 5px 0 0 0" type='submit' name='submit' value=' Пополнить ' />
    </form>
                </div>             
            </div>
        </div>

            <div class="col-md-9">
            <div class="panel panel-midnightblue" data-widget='{"draggable": "false"}'>
                <div class="panel-heading">
                    <h2>История операций</h2>
                    <div class="panel-ctrls" data-actions-container="" data-action-collapse='{"target": ".panel-body"}'></div>
                </div>
                <div class="panel-body">
                 
<?php


    $page    = intval($_GET['page']);
    $query    = "SELECT * FROM `enter` WHERE login = '".$login."'";
    $result    = mysql_query($query);
    $themes = mysql_num_rows($result);
    $total    = intval(($themes - 1) / $num) + 1;

    if(empty($page) or $page < 0) $page = 1;
    if($page > $total) $page = $total;
    $start = $page * $num - $num;
    $result = mysql_query($query." ORDER BY id DESC LIMIT ".$start.", ".$num);

    if(!$themes) {
        print "<p class=\"er\">Вы ещё не пополняли внутренний счёт.</p>";
    } else {

        print "<table class=\"table table-striped\"><tr align=\"center\"><td style=\"padding: 3px;\"><b>№</b></td><td width=\"100\"><b>Дата</b></td><td><b>Сумма</b></td><td><b>Номер счета</b></td><td><b>ЭПС</b></td><td><b>Статус</b></td></tr>";

        $i = 1;
        $s = 0;
        while ($row = mysql_fetch_array($result)) {

        if($i % 2) { $bg = ""; } else { $bg = " bgcolor=\"#e86f39\""; }

        print "<tr".$bg." align=\"center\">
        <td style=\"padding: 3px;\">".$row['id']."</td>
        <td>".date("d.m.Y H:i", $row['date'])."</td>
        <td><a>".$row['sum']." ₽</a></td>
        <td><b>".$row['purse']."</b></td>
        <td>".$row['paysys']."</td>
        <td>";

        if($row['status'] == 0) {
            print '<span class="tool"><img src="/images/proc_ico.png" width="16" height="16" alt="В процессе" /><span class="tip">Подтвердите платёж.</span></span>';
        } elseif($row['status'] == 1) {
            print '<span class="tool"><img src="/images/wait_ico.png" width="16" height="16" alt="Ожидание" /><span class="tip">В обработке.</span></span>';
        } elseif($row['status'] == 2) {
            print '<span class="tool"><img src="/images/yes_ico.png" width="16" height="16" alt="Выполнена" /><span class="tip">Выполнено.</span></span>';
        } else {
            print '<span class="tool"><img src="/images/no_ico.png" width="16" height="16" alt="Отклонена" /><span class="tip">Отклонено.</span></span>';
        }

        print "</td>

        </tr>";

            $i++;
            $s = $s + $row['sum'];
        }

        print "<tr height=\"3\"><td></td><td></td><td></td><td></td><td></td><td></td></tr>
        <tr><td></td><td align=\"right\"><b>Итого:</b></td><td align=\"center\"><a>".$s." руб.</a></td><td></td><td></td><td></td></tr></table>";

    }

    if ($page) {
        if($page != 1) { $pervpage = "<a href=\"?page=". ($page - 1) ."\">««</a>"; }
        if($page != $total) { $nextpage = " <a href=\"?page=". ($page + 1) ."\">»»</a>"; }
        if($page - 2 > 0) { $page2left = " <a href=\"?page=". ($page - 2) ."\">". ($page - 2) ."</a> "; }
        if($page - 1 > 0) { $page1left = " <a href=\"?page=". ($page - 1) ."\">". ($page - 1) ."</a> "; }
        if($page + 2 <= $total) { $page2right = " <a href=\"?page=". ($page + 2) ."\">". ($page + 2) ."</a> "; }
        if($page + 1 <= $total) { $page1right = " <a href=\"?page=". ($page + 1) ."\">". ($page + 1) ."</a> "; }
    }
    print "<td></td><td></td><td></td><td></td><td></td><td></td></tr>
        <tr><td></td><td align=\"right\"><b>Страницы:  </b>".$pervpage.$page2left.$page1left." <b>".$page."</b> ".$page1right.$page2right.$nextpage."</div></td><td></td><td></td><td></td></tr>";

    }

} else {
    print "<p class=\"er\">Вы должны авторизироваться для доступа к этой странице!</p>";
}

?>

                </div>
            </div>
        </div>

косяк в том, что когда выбираю платежку PAYEER значения value такие как $m_shop, $m_desc, $sign просто не передаются. В чем может быть косяк? Уже все перепробывал.
 
так они у тебя в скрипте прописаны или так должно быть?
Код:
                                $m_desc = base64_encode('Пополнение в системе);

                                $cu = 'USD';

                                $m_shop    = '111111111';
 
так они у тебя в скрипте прописаны или так должно быть?
Код:
                                $m_desc = base64_encode('Пополнение в системе);

                                $cu = 'USD';

                                $m_shop    = '111111111';
это все как положено. Заметил одну штуку: если вместо value="'.$sign.'" как советует PAYEER писать
value="<?=$sign?>, то выдает вместо положенного такое: <%3F%3D%24sign%3F>
 
Заметил одну штуку: если вместо value="'.$sign.'" как советует PAYEER писать
value="<?=$sign?>, то выдает вместо положенного такое: <%3F%3D%24sign%3F>
Так у тебя на этом уровне уже PHP. Тебе уже не надо включать код PHP <?=;?>
 
Назад
Сверху