Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function confirm_getcode($code) {
- // $code - сюда передаешь код, который юзер получил при покупке.
- if (!$code) die('NO_CODE_GIVEN');
- $fp = fsockopen("shop.digiseller.ru", 80);
- if (!$fp) die('NO_SOCK');
- $seller_id = тут_твой_digiseller_id;
- $pwd = 'пароль_к_сервису_digisellect';
- // формируем подпись
- $sign = md5($seller_id . ":" . $code . ":" . $pwd);
- $postdata = "<?xml version=\"1.0\" encoding=\"windows-1251\"?>".
- "<digiseller.request> <id_seller>$seller_id</id_seller> <unique_code>$code</unique_code> <sign>$sign</sign> </digiseller.request>";
- fputs($fp, "POST /xml/check_unique_code.asp HTTP/1.1\r\n".
- "Host: shop.digiseller.ru\r\n".
- "User-Agent: Web-Parser Client\r\n".
- "Connection: close\r\n".
- "Content-Length: ".strlen($postdata)."\r\n\r\n".$postdata);
- $recv = '';
- while (!feof($fp)) {
- $recv .= fgets($fp, 1024);
- }
- fclose($fp);
- // в $recv твой буффер с xml
- $regex = "#.*?<digiseller\.response>.*?<retval>(\d+)</retval>.*?<retdesc>(.*?)</retdesc>.*?<id_seller>\d+</id_seller>.*?<unique_code>.*?</unique_code>.*?<inv>.*?</inv>.*?<id_goods>.*?</id_goods>.*?$
- // теперь просто парсим - и выдираем значения
- if (preg_match($regex, $recv, $matches)) {
- list($self, $retval, $retdesc, $amount,$type_curr,$unit_goods,$cnt_goods) = $matches;
- if ($retval!=0) {
- $retdesc = "Возникла ошибка при обращении к DigiSeller... Если будет повторяться - обратитесь к нам за помощью :)";
- if (preg_match("#<retdesc>(.*?)</retdesc>#", $recv, $error)) $retdesc = $error[1];
- die($retdesc);
- }
- // ... что-то делаем с данными ($code - код переденный клиентом, $amount - колич. полученных денег, $type_curr - валюта (напр. WMZ)
- // $unit_goods - ед. измерения товара
- // $cnt_goods - кол-во ед. товара
- // $retval - возвращаемое значение. если != 0, то смотреть описание ошибки (оно будет в $retdesc)
- // если дошло до этого места - то успех.
- // выводим какие-то данные клиенту
- } else {
- die("Вероятно, введенный код недействителен");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment