Проблема с мерчант Webmoney

  • Автор темы kombatik
  • Дата начала
kombatik
Участник
Сообщения
0
Реакции
0
Ребята всем привет! Помогите люди добрые(

Столкнулся с проблемой пополнения баланса на тестируемом Сайте Активной Рекламы.

При пополнении перебрасывает на мерчант Webmoney для подтверждения операции, после ввода данных приходит ответ от сайта



user posted image
________________________________

Если в настройках мерчанта убрать галочку с "Передавать параметры в предварительном запросе" , то оплата проходит, деньги поступают на кошелек вебмоней, перебрасывает на страницу успешной оплаты НО баланс на самом сайте не пополняется.

user posted image
_________________________________

При проверке Result URL в мерчанте Webmoney , ответ от сайта приходит такой - "Result URL доступен. Возвращает код 200(SUCCESS) и текст: <html><head><title>?????????..."

user posted image

Код:
Код мерчант вебмоней на сайте

<?php
header("Content-type: text/html; charset=windows-1251");
require("".$_SERVER['DOCUMENT_ROOT']."/config.php");
require("".$_SERVER['DOCUMENT_ROOT']."/merchant/func_mysql.php");
$sql_p = mysql_query("SELECT `sitewmr` FROM `tb_site` WHERE `id`='1'");
$site_wmr = mysql_result($sql_p,0,0);

$secret_key = "E56A6561-2963-4AC1-8E10-5F1D63EF265C";
$merch_amount = (isset($_REQUEST["LMI_PAYMENT_AMOUNT"])) ? floatval(trim($_REQUEST["LMI_PAYMENT_AMOUNT"])) : false;
$merch_admin_wmr = (isset($_REQUEST["LMI_PAYEE_PURSE"])) ? trim($_REQUEST["LMI_PAYEE_PURSE"]) : false;
$merch_user_wmr = (isset($_REQUEST["LMI_PAYER_PURSE"])) ? trim($_REQUEST["LMI_PAYER_PURSE"]) : false;
$merch_user_wmid = (isset($_REQUEST["LMI_PAYER_WM"]) && preg_match("|^[\d]{12}$|", trim($_REQUEST["LMI_PAYER_WM"]))) ? trim($_REQUEST["LMI_PAYER_WM"]) : false;
$LMI_PREREQUEST = (isset($_REQUEST["LMI_PREREQUEST"])) ? intval(trim($_REQUEST["LMI_PREREQUEST"])) : false;
$merch_tran_id = (isset($_REQUEST["LMI_PAYMENT_NO"])) ? intval(trim($_REQUEST["LMI_PAYMENT_NO"])) : false;
$shp_item = ( isset($_REQUEST["shp_item"]) && preg_match("|^[\d]{1,11}$|", htmlspecialchars(trim($_REQUEST["shp_item"]))) ) ? intval(htmlspecialchars(trim($_REQUEST["shp_item"]))) : false;

$TABLE_ARR = array(
1 => "tb_add_pay",
2 => "tb_ads",
3 => "tb_ads_psevdo",
4 => "tb_ads_bs",
5 => "tb_ads_auto",
6 => "tb_ads_slink",
7 => "tb_ads_kontext",
8 => "tb_ads_banner",
9 => "tb_ads_txt",
10 => "tb_ads_frm",
11 => "tb_ads_mails",
12 => "tb_ads_rc",
13 => "tb_ads_downloads",
14 => "tb_ads_questions",
15 => "tb_ads_emails",
16 => "tb_ads_packet",
20 => "tb_ads_beg_stroka"
);

$STAT_PAY_ARR = array(
1 => "money_in",
2 => "dlink",
3 => "psevdo",
4 => "bserf",
5 => "autoserf",
6 => "statlink",
7 => "kontext",
8 => "banners",
9 => "txtob",
10 => "frmlink",
11 => "mails",
12 => "rekcep",
13 => "files",
14 => "quest",
15 => "sent_mails",
16 => "packet",
20 => "bstroka"
);

if($LMI_PREREQUEST==1 && $shp_item!=false && array_key_exists($shp_item, $TABLE_ARR)) {
$sql = mysql_query("SELECT `money` FROM `".$TABLE_ARR[$shp_item]."` WHERE `status`='0' AND `merch_tran_id`='$merch_tran_id' ORDER BY `id` DESC LIMIT 1");
if(mysql_num_rows($sql)) {
$row = mysql_fetch_array($sql);
if(floatval($row["money"])!=floatval($merch_amount)) {
exit("������: �������� ����� $merch_amount");
}elseif($merch_admin_wmr!=$site_wmr) {
exit("������: �������� ������� ���������� $merch_admin_wmr");
}else{
exit("YES");
}
}else{
exit("������: ������ �$merch_tran_id �� ������� � �������, ���������� �������� ������� �����!");
}

}elseif($LMI_PREREQUEST==false && $shp_item!=false && array_key_exists($shp_item, $TABLE_ARR)) {

$common_string = trim($_POST["LMI_PAYEE_PURSE"].$_POST["LMI_PAYMENT_AMOUNT"].$_POST["LMI_PAYMENT_NO"].$_POST["LMI_MODE"].$_POST["LMI_SYS_INVS_NO"].$_POST["LMI_SYS_TRANS_NO"].$_POST["LMI_SYS_TRANS_DATE"].$secret_key.$_POST["LMI_PAYER_PURSE"].$_POST["LMI_PAYER_WM"]);
$SITE_HASH = strtoupper(hash('sha256', $common_string));
//$SITE_HASH = strtoupper(hash('md5', $common_string));//
$LMI_HASH = strtoupper($_POST["LMI_HASH"]);

if($SITE_HASH!=$LMI_HASH) {
exit("ERROR");

}else{
$sql = mysql_query("SELECT `id`,`username`,`money` FROM `".$TABLE_ARR[$shp_item]."` WHERE `status`='0' AND `merch_tran_id`='$merch_tran_id' LIMIT 1");
if(mysql_num_rows($sql)) {
$row = mysql_fetch_array($sql);
$username = $row["username"];

if($shp_item==3 | $shp_item==6 | $shp_item==8 | $shp_item==9 | $shp_item==10) {
$DATE_END = ", `date_end`=`plan`*'".(24*60*60)."'+'".time()."'";
}else{
$DATE_END = false;
}

if(floatval($row["money"])!=floatval($merch_amount)) {
exit("ERROR");
}elseif($shp_item==1) {
if($username!=false) {

$b=mysql_fetch_array(mysql_query("Select price from tb_config WHERE item='bon_popoln'"));
$merch_amount1=$merch_amount+$merch_amount*$b[0]*0.01;

mysql_query("UPDATE `tb_users` SET `money_rb`=`money_rb`+'$merch_amount1', `money_in`=`money_in`+'$merch_amount1' WHERE `username`='$username'") or die(mysql_error());
mysql_query("UPDATE `tb_add_pay` SET `status`='1', `wmid`='$merch_user_wmid', `date`='".time()."' WHERE `merch_tran_id`='$merch_tran_id'") or die(mysql_error());
mysql_query("INSERT INTO `tb_history` (`user`, `amount`, `date`, `method`, `status`, `tipo`) VALUES('$username', '$merch_amount1', '".DATE("d.m.Y�. H:i")."', '���������� ���������� ������� ����� WebMoney','���������', 'popoln')") or die(mysql_error());

stat_pay($STAT_PAY_ARR[$shp_item], $merch_amount1);
}
}elseif($shp_item==16) {
mysql_query("UPDATE `".$TABLE_ARR[$shp_item]."` SET `status`='1', `wmid`='$merch_user_wmid', `date`='".time()."' WHERE `status`='0' AND `merch_tran_id`='$merch_tran_id' ORDER BY `id` DESC LIMIT 1") or die(mysql_error());

ads_wmid($merch_user_wmid, $merch_user_wmr, $username, $merch_amount);
stat_pay($STAT_PAY_ARR[$shp_item], $merch_amount);
konkurs_ads_new($merch_user_wmid, $username, $merch_amount);
ads_date();
require_once("".$_SERVER['DOCUMENT_ROOT']."/merchant/add_adv_packet.php");
require_once("".$_SERVER['DOCUMENT_ROOT']."/merchant/func_cache.php");
cache_stat_links();
cache_frm_links();
cache_txt_links();
cache_banners();
}else{
mysql_query("UPDATE `".$TABLE_ARR[$shp_item]."` SET `status`='1', `wmid`='$merch_user_wmid', `date`='".time()."' $DATE_END WHERE `status`='0' AND `merch_tran_id`='$merch_tran_id' ORDER BY `id` DESC LIMIT 1") or die(mysql_error());

ads_wmid($merch_user_wmid, $merch_user_wmr, $username, $merch_amount);
stat_pay($STAT_PAY_ARR[$shp_item], $merch_amount);

konkurs_ads_new($merch_user_wmid, $username, $merch_amount);
if($shp_item==2) ads_date();

if($shp_item==6 | $shp_item==7 | $shp_item==8 | $shp_item==9 | $shp_item==10 | $shp_item==12 | $shp_item==20) {
require_once($_SERVER['DOCUMENT_ROOT']."/merchant/func_cache.php");

cache_stat_links();
cache_kontext();
cache_frm_links();
cache_txt_links();
cache_rek_cep();
cache_banners();
cache_beg_stroka();
}
}
}
}
}else{
exit("ERROR!");
}
?>
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
Telegram
pligin
kombatik написал(а):
Ребята всем привет! Помогите люди добрые(

Столкнулся с проблемой пополнения баланса на тестируемом Сайте Активной Рекламы.

При пополнении перебрасывает на мерчант Webmoney для подтверждения операции, после ввода данных приходит ответ от сайта



user posted image
________________________________

Если в настройках мерчанта убрать галочку с "Передавать параметры в предварительном запросе" , то оплата проходит, деньги поступают на кошелек вебмоней, перебрасывает на страницу успешной оплаты НО баланс на самом сайте не пополняется.

user posted image
_________________________________

При проверке Result URL в мерчанте Webmoney , ответ от сайта приходит такой - "Result URL доступен. Возвращает код 200(SUCCESS) и текст: <html><head><title>?????????..."

user posted image

Код:
Код мерчант вебмоней на сайте

<?php
header("Content-type: text/html; charset=windows-1251");
require("".$_SERVER['DOCUMENT_ROOT']."/config.php");
require("".$_SERVER['DOCUMENT_ROOT']."/merchant/func_mysql.php");
$sql_p = mysql_query("SELECT `sitewmr` FROM `tb_site` WHERE `id`='1'");
$site_wmr = mysql_result($sql_p,0,0);

$secret_key = "E56A6561-2963-4AC1-8E10-5F1D63EF265C";
$merch_amount = (isset($_REQUEST["LMI_PAYMENT_AMOUNT"])) ? floatval(trim($_REQUEST["LMI_PAYMENT_AMOUNT"])) : false;
$merch_admin_wmr = (isset($_REQUEST["LMI_PAYEE_PURSE"])) ? trim($_REQUEST["LMI_PAYEE_PURSE"]) : false;
$merch_user_wmr = (isset($_REQUEST["LMI_PAYER_PURSE"])) ? trim($_REQUEST["LMI_PAYER_PURSE"]) : false;
$merch_user_wmid = (isset($_REQUEST["LMI_PAYER_WM"]) && preg_match("|^[\d]{12}$|", trim($_REQUEST["LMI_PAYER_WM"]))) ? trim($_REQUEST["LMI_PAYER_WM"]) : false;
$LMI_PREREQUEST = (isset($_REQUEST["LMI_PREREQUEST"])) ? intval(trim($_REQUEST["LMI_PREREQUEST"])) : false;
$merch_tran_id = (isset($_REQUEST["LMI_PAYMENT_NO"])) ? intval(trim($_REQUEST["LMI_PAYMENT_NO"])) : false;
$shp_item = ( isset($_REQUEST["shp_item"]) && preg_match("|^[\d]{1,11}$|", htmlspecialchars(trim($_REQUEST["shp_item"]))) ) ? intval(htmlspecialchars(trim($_REQUEST["shp_item"]))) : false;

$TABLE_ARR = array(
1 => "tb_add_pay",
2 => "tb_ads",
3 => "tb_ads_psevdo",
4 => "tb_ads_bs",
5 => "tb_ads_auto",
6 => "tb_ads_slink",
7 => "tb_ads_kontext",
8 => "tb_ads_banner",
9 => "tb_ads_txt",
10 => "tb_ads_frm",
11 => "tb_ads_mails",
12 => "tb_ads_rc",
13 => "tb_ads_downloads",
14 => "tb_ads_questions",
15 => "tb_ads_emails",
16 => "tb_ads_packet",
20 => "tb_ads_beg_stroka"
);

$STAT_PAY_ARR = array(
1 => "money_in",
2 => "dlink",
3 => "psevdo",
4 => "bserf",
5 => "autoserf",
6 => "statlink",
7 => "kontext",
8 => "banners",
9 => "txtob",
10 => "frmlink",
11 => "mails",
12 => "rekcep",
13 => "files",
14 => "quest",
15 => "sent_mails",
16 => "packet",
20 => "bstroka"
);

if($LMI_PREREQUEST==1 && $shp_item!=false && array_key_exists($shp_item, $TABLE_ARR)) {
$sql = mysql_query("SELECT `money` FROM `".$TABLE_ARR[$shp_item]."` WHERE `status`='0' AND `merch_tran_id`='$merch_tran_id' ORDER BY `id` DESC LIMIT 1");
if(mysql_num_rows($sql)) {
$row = mysql_fetch_array($sql);
if(floatval($row["money"])!=floatval($merch_amount)) {
exit("������: �������� ����� $merch_amount");
}elseif($merch_admin_wmr!=$site_wmr) {
exit("������: �������� ������� ���������� $merch_admin_wmr");
}else{
exit("YES");
}
}else{
exit("������: ������ �$merch_tran_id �� ������� � �������, ���������� �������� ������� �����!");
}

}elseif($LMI_PREREQUEST==false && $shp_item!=false && array_key_exists($shp_item, $TABLE_ARR)) {

$common_string = trim($_POST["LMI_PAYEE_PURSE"].$_POST["LMI_PAYMENT_AMOUNT"].$_POST["LMI_PAYMENT_NO"].$_POST["LMI_MODE"].$_POST["LMI_SYS_INVS_NO"].$_POST["LMI_SYS_TRANS_NO"].$_POST["LMI_SYS_TRANS_DATE"].$secret_key.$_POST["LMI_PAYER_PURSE"].$_POST["LMI_PAYER_WM"]);
$SITE_HASH = strtoupper(hash('sha256', $common_string));
//$SITE_HASH = strtoupper(hash('md5', $common_string));//
$LMI_HASH = strtoupper($_POST["LMI_HASH"]);

if($SITE_HASH!=$LMI_HASH) {
exit("ERROR");

}else{
$sql = mysql_query("SELECT `id`,`username`,`money` FROM `".$TABLE_ARR[$shp_item]."` WHERE `status`='0' AND `merch_tran_id`='$merch_tran_id' LIMIT 1");
if(mysql_num_rows($sql)) {
$row = mysql_fetch_array($sql);
$username = $row["username"];

if($shp_item==3 | $shp_item==6 | $shp_item==8 | $shp_item==9 | $shp_item==10) {
$DATE_END = ", `date_end`=`plan`*'".(24*60*60)."'+'".time()."'";
}else{
$DATE_END = false;
}

if(floatval($row["money"])!=floatval($merch_amount)) {
exit("ERROR");
}elseif($shp_item==1) {
if($username!=false) {

$b=mysql_fetch_array(mysql_query("Select price from tb_config WHERE item='bon_popoln'"));
$merch_amount1=$merch_amount+$merch_amount*$b[0]*0.01;

mysql_query("UPDATE `tb_users` SET `money_rb`=`money_rb`+'$merch_amount1', `money_in`=`money_in`+'$merch_amount1' WHERE `username`='$username'") or die(mysql_error());
mysql_query("UPDATE `tb_add_pay` SET `status`='1', `wmid`='$merch_user_wmid', `date`='".time()."' WHERE `merch_tran_id`='$merch_tran_id'") or die(mysql_error());
mysql_query("INSERT INTO `tb_history` (`user`, `amount`, `date`, `method`, `status`, `tipo`) VALUES('$username', '$merch_amount1', '".DATE("d.m.Y�. H:i")."', '���������� ���������� ������� ����� WebMoney','���������', 'popoln')") or die(mysql_error());

stat_pay($STAT_PAY_ARR[$shp_item], $merch_amount1);
}
}elseif($shp_item==16) {
mysql_query("UPDATE `".$TABLE_ARR[$shp_item]."` SET `status`='1', `wmid`='$merch_user_wmid', `date`='".time()."' WHERE `status`='0' AND `merch_tran_id`='$merch_tran_id' ORDER BY `id` DESC LIMIT 1") or die(mysql_error());

ads_wmid($merch_user_wmid, $merch_user_wmr, $username, $merch_amount);
stat_pay($STAT_PAY_ARR[$shp_item], $merch_amount);
konkurs_ads_new($merch_user_wmid, $username, $merch_amount);
ads_date();
require_once("".$_SERVER['DOCUMENT_ROOT']."/merchant/add_adv_packet.php");
require_once("".$_SERVER['DOCUMENT_ROOT']."/merchant/func_cache.php");
cache_stat_links();
cache_frm_links();
cache_txt_links();
cache_banners();
}else{
mysql_query("UPDATE `".$TABLE_ARR[$shp_item]."` SET `status`='1', `wmid`='$merch_user_wmid', `date`='".time()."' $DATE_END WHERE `status`='0' AND `merch_tran_id`='$merch_tran_id' ORDER BY `id` DESC LIMIT 1") or die(mysql_error());

ads_wmid($merch_user_wmid, $merch_user_wmr, $username, $merch_amount);
stat_pay($STAT_PAY_ARR[$shp_item], $merch_amount);

konkurs_ads_new($merch_user_wmid, $username, $merch_amount);
if($shp_item==2) ads_date();

if($shp_item==6 | $shp_item==7 | $shp_item==8 | $shp_item==9 | $shp_item==10 | $shp_item==12 | $shp_item==20) {
require_once($_SERVER['DOCUMENT_ROOT']."/merchant/func_cache.php");

cache_stat_links();
cache_kontext();
cache_frm_links();
cache_txt_links();
cache_rek_cep();
cache_banners();
cache_beg_stroka();
}
}
}
}
}else{
exit("ERROR!");
}
?>
1. Кодировка файла
2. В запросе нет shp_item
3. В $TABLE_ARR нет $shp_item
 
Сверху