[Помощь] скрипт 2pay

Тема в разделе "Shop-script", создана пользователем god1ike, 10 ноя 2010.

Модераторы: kadurinho
  1. god1ike

    god1ike Создатель

    Регистр.:
    1 апр 2009
    Сообщения:
    18
    Симпатии:
    5
    помогите разобраться с интеграцией 2pay (многоцелевая платежная система).
    почитал их api для продажи игровой валюты и за исходник взял пример. Скрипт для проверки реквизитов получился такой
    PHP:
    <?php                              

        header
    'Content-type: text/xml' );
    //Ип адреса, с которых будет приходить запрос. Для защиты.    
        
    $check_ip[]="82.146.40.60";
        
    $check_ip[]="188.120.245.101";
        
    $check_ip[]="188.120.245.102";
        
    $date=date("d.m.y");
    //======================================настройки============================================
    // Секретный ключ
        
    $secret_key "здесь мой сгенерированный код взятый с 2pay";
    // Переменные для подключения к базе данных, впишите те, которые использовали при установке базы данных
        
    $server='localhost';
        
    $user='login';
        
    $pass='pass';
        
    $db='auth';
    //===========================================================================================
        
    $flag $_REQUEST['command'];
        
    $md5 $_REQUEST['md5'];
       
    // Идентификатор платежа
        
    $v1 $_REQUEST['v1'];
        
    if( isset(
    $_REQUEST['id']) ) $id=$_REQUEST['id']; else $id=0;
        
    $kod=1;
        
    // Проверка ип    
        
    if (in_array($_SERVER['REMOTE_ADDR'], $check_ip)) {
        
    // Подключение к базе данных
        
    mysql_connect($server$user$pass) or die("Can't connect to database");
        
    mysql_select_db($db) or die("Can't select database ".$db);

            
    // Если статус запрос
            
    if( ($flag == 'status') && ($md5 == md5($flag.$v1.$secret_key)) ) 
            {    
    // Ищем персонажа
                
    $sql=mysql_query("SELECT * FROM `account` WHERE `username`='".$v1."' ");
                
    $rows mysql_num_rows($sql);
                if (
    $rows 0) {
                    
    $kod=0;
                    
    $desc='Character exists';
                } else {
                    
    $kod=1;
                    
    $desc='Character not found';
                }
            }  else 
            {     
    // Если неизвестный запрос
                    
    $kod=2;
                    
    $desc="Unknown request or account not found";
                }
            } else {        
    $desc="Parametrs or IP is not correct";    }

    // Ответ
        
    if ($flag == 'status') {$html="<?xml version=\"1.0\" encoding=\"windows-1251\"?><response><amount>".$desc."</amount></response>"; } else
        {
    $html="<?xml version=\"1.0\" encoding=\"windows-1251\"?><response><id>".$id."</id><sum>".$_REQUEST['sum']."</sum><result>".$kod."</result><comment>".$desc."</comment></response>"; }
        echo 
    $html;
    ?>
    этот код для проверки реквизитов у меня работать отказался.

    XML выглядит так при запросе
    <?xml version="1.0" encoding="windows-1251"?><response><id>0</id><sum></sum><result>2</result><comment>Unknown request or account not found</comment></response>

    v1-(в этом параметре передается ник игрока, либо мыло, вообщем что угодно, что идентифицирует вашего юзера, вы уже сами определитесь)
    id-(номер платежа)
    sum-(сообственно сумма платежа)
    desc-(нужен для того чтобы определить в каком блоке скрипта ошибка)
    kod-(сообственно из этого значения и формируется desc)
    command-(бывает check-проверка существования акка в базе и pay-соотвественно платеж)
    $secret_key-ключ генерируемый при подключение услуги для проекта
    если кто не знает что такое $_REQUEST (Ассоциативный массив, который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE)
    соотвественно v1, sum (вы передаете методом POST в скрипт через текстовое поле)

    правильный xml

    <?xml version="1.0" encoding="windows-1251"?><response><id>0</id><sum></sum><result>0</result><comment></comment></response>

    должен выглядить так, т.е. значение $kod должно равняться 0.
    ссылка на описание api продажа игровой валюты и там же пример скрипта)
    https://docs.google.com/leaf?id=0B_5vOUxIHYsJNzE3MDU2YTUtNzNiNS00NGM4LTg4ZDAtZmE4ODJhODViYmQ4&sort=name&layout=list
     
  2. god1ike

    god1ike Создатель

    Регистр.:
    1 апр 2009
    Сообщения:
    18
    Симпатии:
    5
    Вот написал свой скрипт из исходника для пополнения баланса аккаунта, работает на 100%, все ошибки исправил, проверка реквизитов и оплата работает как надо, можете адаптировать под любую цмс, код не замусорен и прост в настройке, в инете нашел и пару других скриптов, в одном слишком объемный код, другой вообще не работает, так что пришлось взять исходник с сайта 2pay и понемножку отовсюду и получился полностью рабочий скрипт. Если что то не выйдет пишите в пм, время будет помогу, но там все просто указываете свою базу, ключ, таблицу и столбец, и пишите свой запрос куда будет заносится сумма в базе, либо в какую переменную, вот и все, успехов.
     

    Вложения:

    sas_flame, Zlobniy Babko и mdss нравится это.
  3. GANNIBALISHE

    GANNIBALISHE Писатель

    Регистр.:
    15 янв 2012
    Сообщения:
    1
    Симпатии:
    0
    можешь обьяснить установку скрипта а то я не сильно понимаю :(