HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 23.10.2011, 18:42
FollowMe
Новичок
Регистрация: 26.09.2011
Сообщений: 9
С нами: 7699286

Репутация: 0
По умолчанию

В этой статье я расскажу как сделать на сайте, средствами PHP автоматическую оплату по ВМ без аттестата продавца.

Нам нужно:

  1. Любой WMID
  2. Аккаунт на digiseller.ru
  3. Знания PHP (Косвенные)

Недавно потребовалось прикрепить к сайту оплату (автоматическую) и тут облом: нужен аттестат продавца.

Меня это не смутило и я вспомнил о сервисе digiseller.ru, а именно о том, что там есть API. С помощью XML можно проверять оплату товара.

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

Получил ссылку: http://www.oplata.info/asp/pay_unit.asp?id_d=*******



Добавил в панельке digiseller кошельки, авторизовал их и прикрепил.

Попробовал оплатить 3 единицы товара и все прошло удачно.

Работает так: На WMID покупателя высылается счет, который он оплачивает, а дальше digiseller делает все сам.

На сайте я быстро сделал форму, сверху которой была ссылка на oplata.info для покупки уникального кода.

Формой-же было поле, в которое вводится этот код, посылается запрос на digiseller и получаешь: Сумму оплаты и валюту.

Вот скрипт приема купленного с digiseller кода и обработки:

PHP код:
[COLOR="#000000"]if (isset($_POST['xcode'])) { // Если код передается скрипту с именем xcode

if (strlen($_POST['xcode']) == 16) { // Код на digiseller равен 16 символам

$code = $_POST['xcode']; // Вводим переменную с кодом

function _GetAnswer($address, $xml){

$ch
= curl_init($address);

curl_setopt
($ch, CURLOPT_HEADER, 0);

curl_setopt
($ch, CURLOPT_RETURNTRANSFER,1);

curl_setopt
($ch, CURLOPT_POST,1);

curl_setopt
($ch, CURLOPT_POSTFIELDS, $xml);

$result
=curl_exec($ch);

return $result
;

}

$sign
= md5("id продавца:$code:password от продавца"); // Тут заполняем в соответствии с своими данными

$xml = '[COLOR="#0000BB"]

[/COLOR]

тут твой id

'
.$code.'

'
.$sign.'

'
;

$answer=_GetAnswer("http://shop.digiseller.ru/xml/check_unique_code.asp", $xml);

$xmlres
= simplexml_load_string($answer);

function object2array
($object) { return @json_decode(@json_encode($object),1); }

$xmlres
= object2array($xmlres); // переводим XML в массив

if ($xmlres['retdesc'] == "не найден unique_code (код ошибки 1)") { // проверяем, есть ли вообще такой код

echo "Код не найден";

}
else {

$type = $xmlres['type_curr']; // получаем валюту (WMZ, WMR, WMU)

$amount = $xmlres['amount']; // получаем сумму

if ($type == "WMR") {

$amount = $amount/30; // тут меняете курс рубля на свой

}

if ($type == "WMU") {

$amount = $amount/8; // тут курс гривны на свой

}

$amount = round($amount,3);

$inv = $xmlres['inv'];

$date = date('l jS \of F Y h:i:s A');

$query = mysql_query("SELECT * FROM pays WHERE inv='$inv'"); // pays - таблица с оплатами

if (mysql_num_rows($query) == 0) { // проверяем, был ли использован код

$login = "логин пользователя";

$query = mysql_query("INSERT INTO pays (inv, amount, date, login) VALUES ('$inv', '$amount', '$date', '$login')") or die("MySQL ERROR: ".mysql_error());;

$balance
= mysql_query('select * from users where login = "'.$login.'" limit 0,1') or die("MySQL ERROR: ".mysql_error());; // получаем текущий баланс пользователя

$balance = mysql_fetch_array($balance);

$balance = $balance['balance'];

$amount = $balance + $amount; // прибавляем

$query = mysql_query("UPDATE users SET balance='$amount' WHERE login='".$login."'") or die("MySQL ERROR: ".mysql_error());;

echo
"Счет пополнен! Редирект...";

echo '

var delay = 2000;

setTimeout("document.location.href=\'\/\'", delay);

'
;

}
else {

echo "Код уже был использован";

}

}

}
else {

echo "Введите правильный код!";

}

}[/COLOR
ВАЖНО! После того как получили информацию и обновили баланс клиента - создайте базу с кодами, поскольку ввести один и тот-же код можно несколько раз и баланс соответственно пополнится несколько раз. (В скрипте это реализовано)

С Вами был ИдиЗаМной! Бросил в тебя веником
 
Ответить с цитированием

  #2  
Старый 24.10.2011, 00:09
Coder +++
Участник форума
Регистрация: 24.05.2011
Сообщений: 111
С нами: 7879286

Репутация: 13
По умолчанию

Спасибо,познавательно.
 
Ответить с цитированием

  #3  
Старый 24.10.2011, 00:21
«DEXTER»
Новичок
Регистрация: 20.07.2011
Сообщений: 7
С нами: 7797206

Репутация: 0
По умолчанию

FollowMe, ничего нового не узнал, но молодец, что отписал.

Цитата:
Сообщение от None  
Работает так: На WMID покупателя высылается счет, который он оплачивает, а дальше digiseller делает все сам.
ну это не сравнить с функциями Merchanta конечно

Это сойдет для продажи icq номеров допустим или ключей активаций, но больше не для чего существенного
 
Ответить с цитированием

  #4  
Старый 27.10.2011, 02:42
Zigert
Познающий
Регистрация: 24.06.2009
Сообщений: 53
С нами: 8884780

Репутация: 10
По умолчанию

думаю для оплаты на моем мелком сайте подойдет, спасибо попробую запилить!+
 
Ответить с цитированием

  #5  
Старый 07.11.2011, 11:33
HBWS
Участник форума
Регистрация: 26.11.2010
Сообщений: 226
С нами: 8137046

Репутация: 0
По умолчанию

А продажи не упали случайно? Не всех привлечет морока с кодом
 
Ответить с цитированием

  #6  
Старый 19.01.2012, 20:27
Legenda7
Новичок
Регистрация: 28.11.2011
Сообщений: 1
С нами: 7608566

Репутация: 0
По умолчанию

Помогите разобраться.. Как использовать этот скрипт? Куда его вставлять?

id продавца - регистрационный номер?
 
Ответить с цитированием

  #7  
Старый 20.01.2012, 00:37
GAiN
Флудер
Регистрация: 02.04.2011
Сообщений: 2,531
С нами: 7954166

Репутация: 99


По умолчанию

интерестная статья !
 
Ответить с цитированием

  #8  
Старый 03.02.2012, 01:25
leaderru
Новичок
Регистрация: 19.05.2010
Сообщений: 5
С нами: 8411719

Репутация: 0
По умолчанию

Я видел несколько вариантов решения, но ваш способ - лучший
 
Ответить с цитированием

  #9  
Старый 03.02.2012, 03:43
CheatXX
Новичок
Регистрация: 08.06.2009
Сообщений: 2
С нами: 8908056

Репутация: 0
По умолчанию

Уважаемый продавец! Для осуществления продажи ваших товаров через собственный магазин вам необходимо до 20.12.2011 получить на сайте центра аттестации аттестат не ниже начального (желательно персональный) и внести соответствующие изменения в ваши платежные реквизиты. В противном случае, ваши товары, выставленные на продажу в собственном магазине после указанной даты, не будут доступны для покупки. Данное ограничение касается только тех товаров, у которых в разделе «Товары > Список» в графе «торговая площадка» указан «Мой магазин». Другими словами товары, одновременно размещенные на торговой площадке и в собственном магазине, под данное ограничение не попадают.
 
Ответить с цитированием

  #10  
Старый 03.02.2012, 03:56
CheatXX
Новичок
Регистрация: 08.06.2009
Сообщений: 2
С нами: 8908056

Репутация: 0
По умолчанию

там нужно давать доверенность к своему кошельку? что бы они могли выводить средства с твоего кошелька?
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.