Вопрос по настройке платёжной системы на сайте.

12
V
На сайте с 16.01.2012
Offline
32
3273

Ставлю на сайт платёжную систему Payeer для пополнения баланса на моем сайте

Получилось вот так

 <?php
if (isset($_POST['popoln'])){
echo "Пополнить счет на сумму <b>".$_POST['ps']." руб.</b>?";
$m_shop = '0000000';
$m_orderid = $userdata['pk_user'];
$m_amount = number_format($_POST['ps'], 2, '.', '');
$m_curr = 'RUB';
$m_desc = base64_encode('Пополнение счета на Soc-Money.net');
$m_key = '000000000';
$arHash = array(
$m_shop,
$m_orderid,
$m_amount,
$m_curr,
$m_desc,
$m_key
);
$sign = strtoupper(hash('sha256', implode(':', $arHash)));
?>
<form method="GET" action="//payeer.com/merchant/">
<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="<?=$m_amount?>">
<input type="hidden" name="m_curr" value="<?=$m_curr?>">
<input type="hidden" name="m_desc" value="<?=$m_desc?>">
<input type="hidden" name="m_sign" value="<?=$sign?>">
<input type="submit" name="m_process" value="Пополнить" />
</form>

<?php


if (isset($_POST['m_operation_id']) && isset($_POST['m_sign']))
{

$m_key = '0000000000';
$arHash = array($_POST['m_operation_id'],
$_POST['m_operation_ps'],
$_POST['m_operation_date'],
$_POST['m_operation_pay_date'],
$_POST['m_shop'],
$_POST['m_orderid'],
$_POST['m_amount'],
$_POST['m_curr'],
$_POST['m_desc'],
$_POST['m_status'],
$m_key);
$sign_hash = strtoupper(hash('sha256', implode(':', $arHash)));
if ($_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success')
{
echo $_POST['m_orderid'].'|success';
exit;
}
echo $_POST['m_orderid'].'|error';
}

}
else {
?>
<form action="" method="post">
<input name="ps" type="text">
<input name="popoln" type="submit" value="Пополнить">
</form>
<?php
}

Номер кошелька и секретный код заменил на нули.

Так все работает, оплата производится, но мне нужно что бы баланс пользователя на сайте пополнялся на пополняемую сумму.

написал запрос

mysql_query("UPDATE users SET balanse_popolnen=balanse_popolnen+'".$_POST['m_amount']."' WHERE pk_user='$id'");

вставляю его так

if (isset($_POST['m_operation_id']) && isset($_POST['m_sign']))
{

$m_key = '0000000000';
$arHash = array($_POST['m_operation_id'],
$_POST['m_operation_ps'],
$_POST['m_operation_date'],
$_POST['m_operation_pay_date'],
$_POST['m_shop'],
$_POST['m_orderid'],
$_POST['m_amount'],
$_POST['m_curr'],
$_POST['m_desc'],
$_POST['m_status'],
$m_key);
$sign_hash = strtoupper(hash('sha256', implode(':', $arHash)));
if ($_POST['m_sign'] == $sign_hash && $_POST['m_status'] == 'success')
{
mysql_query("UPDATE users SET balanse_popolnen=balanse_popolnen+'".$_POST['m_amount']."' WHERE pk_user='$id'");
echo $_POST['m_orderid'].'|success';
exit;
}
echo $_POST['m_orderid'].'|error';
}

}

Платёжная система работает так же, но на баланс ничего не добавляется, что делаю не правильно, и подскажите как нужно сделать, что бы работало?

t1mkke
На сайте с 06.09.2012
Offline
82
#1

Откуда берете $id? Он вообще есть? Попробуйте так:

mysql_query("UPDATE users SET balanse_popolnen=balanse_popolnen+'".$_POST['m_amount']."' WHERE pk_user=".$id);

V
На сайте с 16.01.2012
Offline
32
#2
t1mkke:
Откуда берете $id? Он вообще есть? Попробуйте так:

mysql_query("UPDATE users SET balanse_popolnen=balanse_popolnen+'".$_POST['m_amount']."' WHERE pk_user=".$id);

Да $id это id пользователя который пополняет счет, это 100% верно, попробовал как в вашем запросе, все-равно не работает.

siv1987
На сайте с 02.04.2009
Offline
427
#3

echo("UPDATE users SET balanse_popolnen=balanse_popolnen+'".$_POST['m_amount']."' WHERE pk_user=".$id);

V
На сайте с 16.01.2012
Offline
32
#4
siv1987:
echo("UPDATE users SET balanse_popolnen=balanse_popolnen+'".$_POST['m_amount']."' WHERE pk_user=".$id);

Так тоже не работает.

infant
На сайте с 15.03.2008
Offline
170
#5

Vdmoze, выполните запрос руками в phpMyadmin и посмотрите как выполнится.

П.С.

SET balanse_popolnen=balanse_popolnen+'".$_POST['m_amount']."'

просто совет, никогда не суйте в базу запросы, аля $_POST, $_GET на прямую. Помните золотое правило, доверять никому нельзя.

дани мапов
На сайте с 06.09.2012
Offline
204
#6
Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
siv1987
На сайте с 02.04.2009
Offline
427
#7
Vdmoze:
Так тоже не работает.

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

V
На сайте с 16.01.2012
Offline
32
#8
дани мапов:
Используйте http://php.net/manual/ru/function.mysql-error.php

Не могли бы вы подсказать по конкретнее, я не особо разбираюсь в php

---------- Добавлено 19.04.2015 в 19:42 ----------

siv1987:
echo не для того чтобы работало, раз вы подключаете платежную систему к сайту должны бы это знать.

Первый раз пытаюсь сделать это, я знаю что такое echo, не выводит ничего, но по сути, платеж проходит, значит условие выполняется, вот и не могу разобраться, возможно кто то работал именно с этой системой и знает конкретный ответ?

infant
На сайте с 15.03.2008
Offline
170
#9

Уважаемый Vdmoze, если вы не знаете PHP, не стоит вам этим заниматься. Накодите так, что у вас на сайте все станут миллионерами и в один день потребуют вернуть свои деньги.

Заплатите программисту и вам все сделают, как нужно.

Занимайтесь тем, что хорошо умеете.

siv1987
На сайте с 02.04.2009
Offline
427
#10
Vdmoze:
не выводит ничего, но по сути, платеж проходит, значит условие выполняется

Платеж обычно проходит когда когда пользователь оплачивает счет и платежный агрегат отправляет запрос на ваш IPN. Соответственно вы в данный момент ничего не увидите, а всю необходимую информацию нужно логировать в файле. И да, откуда там всетаки берется $id?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий