Выплаты payeer не решенная.

  • Автор темы Blanc
  • Дата начала
Blanc
Местный
Сообщения
63
Реакции
1
Читал все все темы, все советы испробовал. Не подходяд...!!!
Проблема такая, что восновном с проблемой выплат c payeer все говорят заменить эту строчку
if( !ereg("^[0-9]{7,8}$", substr($purse,1)) ) return false;
она уже заменена как нужно...! Советуют что в pages_accaunt_payment

Но у меня например есть и файл payment.php его содержание
<div class="acc-title"><img src="/img/withdraw.jpg"></div>

<div class="descr">
Для вывода средств используются <b>сестерции</b>. <?=$sonfig_site["ser_per_wmr"]; ?> сестерциев = 1 рубль.<br><br>
Выплаты осуществляются <b>автоматически</b> сразу на твой кошелёк!<br><br>
Для безопасности на кошельках игры содержится сумма эквивалентная средней суточной сумме на выплаты. Если ты заказал выплату и она получила статус "В ожидании", значит суточный лимит закончился и твоя выплата будет обработана в ручную в ближайшее время.
<br><br>
Минимальная сумма для вывода - <b>100</b> сестерциев.<br>
Максимальная сумма для вывода - <b>10 000</b> сестерциев.
</div>
<div class="decor"></div>
<div class="descr2">

<center><b>Выберите платёжную систему:</b></center><br>
<table width="100%"><tbody><tr><td style="text-align:center;">
<a href="/account/payment_payeer"><img src="/img/payeerch.png"></a>
</td><td style="text-align:center;">
<a href="/account/payment_pm"><img src="/img/pmch.png"></a>
</td></tr></tbody></table>

</div>

В тойже директории payment_payeer.php с содержанием

<div class="acc-title"><img src="/img/withdraw.jpg"></div>
<BR />
<?PHP
$_OPTIMIZATION["title"] = "Аккаунт - Заказ выплаты";
$usid = $_SESSION["user_id"];
$usname = $_SESSION["user"];

$db->Query("SELECT * FROM db_users_b WHERE id = '$usid' LIMIT 1");
$user_data = $db->FetchArray();

$db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
$sonfig_site = $db->FetchArray();

$status_array = array( 0 => "Проверяется", 1 => "Выплачивается", 2 => "Отменена", 3 => "Выплачено");

# Минималка серебром!
$minPay = 100;

?>
<div class="descr">
Для вывода средств используются <b>сестерции</b>.<br><br>
Выплаты осуществляются <b>автоматически</b> сразу на твой кошелёк!
<br><br>
Минимальная сумма для вывода - <b>100</b> сестерциев.<br>
Максимальная сумма для вывода - <b>10 000</b> сестерциев.
</div>
<div class="decor"></div>
<div class="descr2">
<center><b>Заказ выплаты:</b></center><BR />

<?PHP

function ViewPurse($purse){

if( substr($purse,0,1) != "P" ) return false;
if( !ereg("^[0-9]{7,8}$", substr($purse,1)) ) return false;
return $purse;
}

# Заносим выплату
if(isset($_POST["purse"])){

$purse = ViewPurse($_POST["purse"]);
$sum = intval($_POST["sum"]);
$val = "RUB";

if($purse !== false){

if($sum >= $minPay){

if($sum <= $user_data["money_p"]){

# Проверяем на существующие заявки
$db->Query("SELECT COUNT(*) FROM db_payment WHERE user_id = '$usid' AND (status = '0' OR status = '1')");
if($db->FetchRow() == 0){


### Делаем выплату ###
$payeer = new rfs_payeer($config->AccountNumber, $config->apiId, $config->apiKey);
if ($payeer->isAuth())
{

$arBalance = $payeer->getBalance();
if($arBalance["auth_error"] == 0)
{

$sum_pay = round( ($sum / $sonfig_site["ser_per_wmr"]), 2);

$balance = $arBalance["balance"]["RUB"]["DOSTUPNO"];
if( ($balance) >= ($sum_pay+100)){



$arTransfer = $payeer->transfer(array(
'curIn' => 'RUB', // счет списания
'sum' => $sum_pay, // сумма получения
'curOut' => 'RUB', // валюта получения
'to' => $purse, // получатель (email)
//'to' => '+71112223344', // получатель (телефон)
//'to' => 'P1000000', // получатель (номер счета)
'comment' => iconv('windows-1251', 'utf-8', "Выплата пользователю {$usname} с проекта WM-Farm")
//'anonim' => 'Y', // анонимный перевод
//'protect' => 'Y', // протекция сделки
//'protectPeriod' => '3', // период протекции (от 1 до 30 дней)
//'protectCode' => '12345', // код протекции
));

if (!empty($arTransfer["historyId"]))
{


# Снимаем с пользователя
$db->Query("UPDATE db_users_b SET money_p = money_p - '$sum' WHERE id = '$usid'");

# Вставляем запись в выплаты
$da = time();
$dd = $da + 60*60*24*15;

$ppid = $arTransfer["historyId"];

$db->Query("INSERT INTO db_payment (user, user_id, purse, sum, valuta, serebro, payment_id, date_add, status)
VALUES ('$usname','$usid','$purse','$sum_pay','RUB', '$sum','$ppid','".time()."', '3')");

$db->Query("UPDATE db_users_b SET payment_sum = payment_sum + '$sum_pay' WHERE id = '$usid'");
$db->Query("UPDATE db_stats SET all_payments = all_payments + '$sum_pay' WHERE id = '1'");

echo "<center><font color = 'green'><b>Выплачено!</b></font></center><BR />";

}
else
{

echo "<center><font color = 'red'><b>Внутреняя ошибка - сообщите о ней администратору!</b></font></center><BR />";

}


}else echo "<center><font color = 'red'><b>Внутреняя ошибка - сообщите о ней администратору!</b></font></center><BR />";

}else echo "<center><font color = 'red'><b>Не удалось выплатить! Попробуйте позже</b></font></center><BR />";

}else echo "<center><font color = 'red'><b>Не удалось выплатить! Попробуйте позже</b></font></center><BR />";


}else echo "<center><font color = 'red'><b>У вас имеются необработанные заявки. Дождитесь их выполнения.</b></font></center><BR />";


}else echo "<center><font color = 'red'><b>Вы указали больше, чем имеется на вашем счету</b></font></center><BR />";

}else echo "<center><b><font color = 'red'>Минимальная сумма для выплаты составляет {$minPay} серебра!</font></b></center><BR />";

}else echo "<center><b><font color = 'red'>Кошелек Payeer указан неверно! Смотрите образец!</font></b></center><BR />";

}
?>

<form action="" method="post">
<table width="99%" border="0" align="center">
<tr>
<td><font color="#000;">Введите кошелек Payeer [Пример: P1112457]</font>: </td>
<td><input type="text" name="purse" size="15"/></td>
</tr>
<tr>
<td><font color="#000;">Отдаете серебро для вывода</font> [Мин. <span id="res_min"></span>]<font color="#000;">:</font> </td>
<td><input type="text" name="sum" id="sum" value="<?=round($user_data["money_p"]); ?>" size="15" onkeyup="PaymentSum();" /></td>
</tr>
<tr>
<td><font color="#000;">Получаете <span id="res_val"></span></font><font color="#000;">:</font> </td>
<td>
<input type="text" name="res" id="res_sum" value="0" size="15" disabled="disabled"/>
<input type="hidden" name="per" id="RUB" value="<?=$sonfig_site["ser_per_wmr"]; ?>" disabled="disabled"/>
<input type="hidden" name="per" id="min_sum_RUB" value="0.5" disabled="disabled"/>
<input type="hidden" name="val_type" id="val_type" value="RUB" />
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="swap" value="Заказать выплату" style="height: 30px; margin-top:10px;" /></td>
</tr>
</table>
</form>
<script language="javascript">PaymentSum(); SetVal();</script>
</div>
<div class="decor"></div>
<div class="descr2">
<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
<tr>
<td colspan="5" align="center"><h4>Последние 10 выплат</h4></td>
</tr>
<tr>
<td align="center" class="m-tb">Серебро</td>
<td align="center" class="m-tb">Получаете</td>
<td align="center" class="m-tb">Кошелек</td>
<td align="center" class="m-tb">Дата</td>
<td align="center" class="m-tb">Статус</td>
</tr>
<?PHP
$db->Query("SELECT * FROM db_payment WHERE user_id = '$usid' ORDER BY id DESC LIMIT 20");
if($db->NumRows() > 0){
while($ref = $db->FetchArray()){

?>
<tr class="htt">
<td align="center"><?=$ref["serebro"]; ?></td>
<td align="center"><?=sprintf("%.2f",$ref["sum"] - $ref["comission"]); ?> <?=$ref["valuta"]; ?></td>
<td align="center"><?=$ref["purse"]; ?></td>
<td align="center"><?=date("d.m.Y",$ref["date_add"]); ?></td>
<td align="center"><?=$status_array[$ref["status"]]; ?></td>
</tr>
<?PHP

}
}else echo '<tr><td align="center" colspan="5">Нет записей</td></tr>'
?>

</table><div class="clr"></div>
</div>
Где собственно и меняеся эта строчка.

Так какже быть,,, помогите разобрать эту тему до конца. Последуующие нубы вас тоже отблагодорят.

До смены строчки, не правильный пайер(смотрите образец) После(причем менял на все не только предложенные на этом форуме но и из других ферм тупо файл payment_payeer....!!!) Пишет Не удалось выплатить! Попробуйте позже
Хостинг платный, и прием платежей приходит на ура.
 
Последнее редактирование модератором:
kvozimir
Участник
Сообщения
1.935
Реакции
409
ICQ
734713 734713
Skype
Blanc написал(а):
Читал все все темы, все советы испробовал. Не подходяд...!!!
Проблема такая, что восновном с проблемой выплат c payeer все говорят заменить эту строчку
if( !ereg("^[0-9]{7,8}$", substr($purse,1)) ) return false;
она уже заменена как нужно...! Советуют что в pages_accaunt_payment

Но у меня например есть и файл payment.php его содержание
<div class="acc-title"><img src="/img/withdraw.jpg"></div>

<div class="descr">
Для вывода средств используются <b>сестерции</b>. <?=$sonfig_site["ser_per_wmr"]; ?> сестерциев = 1 рубль.<br><br>
Выплаты осуществляются <b>автоматически</b> сразу на твой кошелёк!<br><br>
Для безопасности на кошельках игры содержится сумма эквивалентная средней суточной сумме на выплаты. Если ты заказал выплату и она получила статус "В ожидании", значит суточный лимит закончился и твоя выплата будет обработана в ручную в ближайшее время.
<br><br>
Минимальная сумма для вывода - <b>100</b> сестерциев.<br>
Максимальная сумма для вывода - <b>10 000</b> сестерциев.
</div>
<div class="decor"></div>
<div class="descr2">

<center><b>Выберите платёжную систему:</b></center><br>
<table width="100%"><tbody><tr><td style="text-align:center;">
<a href="/account/payment_payeer"><img src="/img/payeerch.png"></a>
</td><td style="text-align:center;">
<a href="/account/payment_pm"><img src="/img/pmch.png"></a>
</td></tr></tbody></table>

</div>

В тойже директории payment_payeer.php с содержанием

<div class="acc-title"><img src="/img/withdraw.jpg"></div>
<BR />
<?PHP
$_OPTIMIZATION["title"] = "Аккаунт - Заказ выплаты";
$usid = $_SESSION["user_id"];
$usname = $_SESSION["user"];

$db->Query("SELECT * FROM db_users_b WHERE id = '$usid' LIMIT 1");
$user_data = $db->FetchArray();

$db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
$sonfig_site = $db->FetchArray();

$status_array = array( 0 => "Проверяется", 1 => "Выплачивается", 2 => "Отменена", 3 => "Выплачено");

# Минималка серебром!
$minPay = 100;

?>
<div class="descr">
Для вывода средств используются <b>сестерции</b>.<br><br>
Выплаты осуществляются <b>автоматически</b> сразу на твой кошелёк!
<br><br>
Минимальная сумма для вывода - <b>100</b> сестерциев.<br>
Максимальная сумма для вывода - <b>10 000</b> сестерциев.
</div>
<div class="decor"></div>
<div class="descr2">
<center><b>Заказ выплаты:</b></center><BR />

<?PHP

function ViewPurse($purse){

if( substr($purse,0,1) != "P" ) return false;
if( !ereg("^[0-9]{7,8}$", substr($purse,1)) ) return false;
return $purse;
}

# Заносим выплату
if(isset($_POST["purse"])){

$purse = ViewPurse($_POST["purse"]);
$sum = intval($_POST["sum"]);
$val = "RUB";

if($purse !== false){

if($sum >= $minPay){

if($sum <= $user_data["money_p"]){

# Проверяем на существующие заявки
$db->Query("SELECT COUNT(*) FROM db_payment WHERE user_id = '$usid' AND (status = '0' OR status = '1')");
if($db->FetchRow() == 0){


### Делаем выплату ###
$payeer = new rfs_payeer($config->AccountNumber, $config->apiId, $config->apiKey);
if ($payeer->isAuth())
{

$arBalance = $payeer->getBalance();
if($arBalance["auth_error"] == 0)
{

$sum_pay = round( ($sum / $sonfig_site["ser_per_wmr"]), 2);

$balance = $arBalance["balance"]["RUB"]["DOSTUPNO"];
if( ($balance) >= ($sum_pay+100)){



$arTransfer = $payeer->transfer(array(
'curIn' => 'RUB', // счет списания
'sum' => $sum_pay, // сумма получения
'curOut' => 'RUB', // валюта получения
'to' => $purse, // получатель (email)
//'to' => '+71112223344', // получатель (телефон)
//'to' => 'P1000000', // получатель (номер счета)
'comment' => iconv('windows-1251', 'utf-8', "Выплата пользователю {$usname} с проекта WM-Farm")
//'anonim' => 'Y', // анонимный перевод
//'protect' => 'Y', // протекция сделки
//'protectPeriod' => '3', // период протекции (от 1 до 30 дней)
//'protectCode' => '12345', // код протекции
));

if (!empty($arTransfer["historyId"]))
{


# Снимаем с пользователя
$db->Query("UPDATE db_users_b SET money_p = money_p - '$sum' WHERE id = '$usid'");

# Вставляем запись в выплаты
$da = time();
$dd = $da + 60*60*24*15;

$ppid = $arTransfer["historyId"];

$db->Query("INSERT INTO db_payment (user, user_id, purse, sum, valuta, serebro, payment_id, date_add, status)
VALUES ('$usname','$usid','$purse','$sum_pay','RUB', '$sum','$ppid','".time()."', '3')");

$db->Query("UPDATE db_users_b SET payment_sum = payment_sum + '$sum_pay' WHERE id = '$usid'");
$db->Query("UPDATE db_stats SET all_payments = all_payments + '$sum_pay' WHERE id = '1'");

echo "<center><font color = 'green'><b>Выплачено!</b></font></center><BR />";

}
else
{

echo "<center><font color = 'red'><b>Внутреняя ошибка - сообщите о ней администратору!</b></font></center><BR />";

}


}else echo "<center><font color = 'red'><b>Внутреняя ошибка - сообщите о ней администратору!</b></font></center><BR />";

}else echo "<center><font color = 'red'><b>Не удалось выплатить! Попробуйте позже</b></font></center><BR />";

}else echo "<center><font color = 'red'><b>Не удалось выплатить! Попробуйте позже</b></font></center><BR />";


}else echo "<center><font color = 'red'><b>У вас имеются необработанные заявки. Дождитесь их выполнения.</b></font></center><BR />";


}else echo "<center><font color = 'red'><b>Вы указали больше, чем имеется на вашем счету</b></font></center><BR />";

}else echo "<center><b><font color = 'red'>Минимальная сумма для выплаты составляет {$minPay} серебра!</font></b></center><BR />";

}else echo "<center><b><font color = 'red'>Кошелек Payeer указан неверно! Смотрите образец!</font></b></center><BR />";

}
?>

<form action="" method="post">
<table width="99%" border="0" align="center">
<tr>
<td><font color="#000;">Введите кошелек Payeer [Пример: P1112457]</font>: </td>
<td><input type="text" name="purse" size="15"/></td>
</tr>
<tr>
<td><font color="#000;">Отдаете серебро для вывода</font> [Мин. <span id="res_min"></span>]<font color="#000;">:</font> </td>
<td><input type="text" name="sum" id="sum" value="<?=round($user_data["money_p"]); ?>" size="15" onkeyup="PaymentSum();" /></td>
</tr>
<tr>
<td><font color="#000;">Получаете <span id="res_val"></span></font><font color="#000;">:</font> </td>
<td>
<input type="text" name="res" id="res_sum" value="0" size="15" disabled="disabled"/>
<input type="hidden" name="per" id="RUB" value="<?=$sonfig_site["ser_per_wmr"]; ?>" disabled="disabled"/>
<input type="hidden" name="per" id="min_sum_RUB" value="0.5" disabled="disabled"/>
<input type="hidden" name="val_type" id="val_type" value="RUB" />
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="swap" value="Заказать выплату" style="height: 30px; margin-top:10px;" /></td>
</tr>
</table>
</form>
<script language="javascript">PaymentSum(); SetVal();</script>
</div>
<div class="decor"></div>
<div class="descr2">
<table cellpadding='3' cellspacing='0' border='0' bordercolor='#336633' align='center' width="99%">
<tr>
<td colspan="5" align="center"><h4>Последние 10 выплат</h4></td>
</tr>
<tr>
<td align="center" class="m-tb">Серебро</td>
<td align="center" class="m-tb">Получаете</td>
<td align="center" class="m-tb">Кошелек</td>
<td align="center" class="m-tb">Дата</td>
<td align="center" class="m-tb">Статус</td>
</tr>
<?PHP
$db->Query("SELECT * FROM db_payment WHERE user_id = '$usid' ORDER BY id DESC LIMIT 20");
if($db->NumRows() > 0){
while($ref = $db->FetchArray()){

?>
<tr class="htt">
<td align="center"><?=$ref["serebro"]; ?></td>
<td align="center"><?=sprintf("%.2f",$ref["sum"] - $ref["comission"]); ?> <?=$ref["valuta"]; ?></td>
<td align="center"><?=$ref["purse"]; ?></td>
<td align="center"><?=date("d.m.Y",$ref["date_add"]); ?></td>
<td align="center"><?=$status_array[$ref["status"]]; ?></td>
</tr>
<?PHP

}
}else echo '<tr><td align="center" colspan="5">Нет записей</td></tr>'
?>

</table><div class="clr"></div>
</div>
Где собственно и меняеся эта строчка.

Так какже быть,,, помогите разобрать эту тему до конца. Последуующие нубы вас тоже отблагодорят.

До смены строчки, не правильный пайер(смотрите образец) После(причем менял на все не только предложенные на этом форуме но и из других ферм тупо файл payment_payeer....!!!) Пишет Не удалось выплатить! Попробуйте позже
Хостинг платный, и прием платежей приходит на ура.
обрати внимание на эту строку if( ($balance) >= ($sum_pay+100)){ тут типа минималки на кошельке написано,в общем убери число 100
 
Blanc
Местный
Сообщения
63
Реакции
1
обрати внимание на эту строку if( ($balance) >= ($sum_pay+100)){ тут типа минималки на кошельке написано,в общем убери число 100[/QUOTE]

Нет, все равно не хочет деньги платить... Тоже самое.
 
GLookin
Участник
Сообщения
296
Реакции
62
Проанализировал твой код.
Если пишет именно эту ошибку у тебя: "Не удалось выплатить! Попробуйте позже", то причина только одна - у тебя не происходит авторизация с PAYEER в одном из этих двух участков:
PHP:
if ($payeer->isAuth())
{
PHP:
$arBalance = $payeer->getBalance();
if($arBalance["auth_error"] == 0)
{
Авторизация "цепляется" из двух файлов в фермах:
1. classes/_class.rfs_payeer.php
2.
classes/_class.config.php
Первый - это в принципе класс авторизации и работы с платежной системой PAYEER.
Второй - это файл конфигурации, где у тебя должны быть указаны верные настройки PAYEER:
PHP:
    public $AccountNumber = 'НОМЕР_КОШЕЛЬКА_PAYEER'; 
    public $shopID = 'Номер_магазина';
    public $secretW = "Секретный_ключ_магазина";
Номер кошелька, это твой кошелек вида P12345678
Номер магазина тебе выдают при регистрации магазина, а секретный ключ ты указываешь сам (попробуй, как вариант, так же поменять его в магазине и указать новый в настройках).

На основании моего анализа, попробуй разные варианты, чтобы решить проблему.
Но, причина кроется именно в авторизации сайта в PAYEER. Это 100%.
 
APTEMOH
Участник
Сообщения
889
Реакции
256
Telegram
APTEMOH
Попробуй в этом файле вставить код(это чисто Авторизация):
Код:
$payeer = new CPayeer($accountNumber, $apiId, $apiKey);
if ($payeer->isAuth())
{
echo "Вы успешно авторизованы";
}
else
{
echo '<pre>'.print_r($payeer->getErrors(), true).'</pre>';
}
Если не сможешь, то можно так(создай новый в корне типо test.php):
Код:
<?php
require_once('cpayeer.php');
$accountNumber = 'P1234567';
$apiId = '12345678';
$apiKey = '*************';
$payeer = new CPayeer($accountNumber, $apiId, $apiKey);
if ($payeer->isAuth())
{
echo "Вы успешно авторизованы";
}
else
{
echo '<pre>'.print_r($payeer->getErrors(), true).'</pre>';
}
?>

Последним кодом проверим правильность ключей и ID. Так же обрати на путь файла cpayeer.php (он же _class.rfs_payeer.php)

P.S. Кстати, я файл _class.rfs_payeer.php обновил )
 
Blanc
Местный
Сообщения
63
Реакции
1
Спасибо кто пытался помочь. Все решилось намного прощн. В настройках самого магазина айпи нужно просто оставить *.*.*.* Сей действие решило проблему...!!! Может кому пригодится.
 
Сверху