Перейти к содержимому
Local

Рекомендованные сообщения

Підкажіть, можливо хтось настроював, потрібно зараховувати платежі через термінали привата та приват24, що потрібно просити від банку? Поки з менеджером все глухо - толком нічого добитись не можна.... :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Підкажіть, можливо хтось настроював, потрібно зараховувати платежі через термінали привата та приват24, що потрібно просити від банку? Поки з менеджером все глухо - толком нічого добитись не можна.... :(

Підписуєте угоду, добазарюєтесь за процент, показуєте їм налаштовану морду з їхнім privat2 або privatx в залежності від протоколу, тестуєте, працюєте. Шо ніясна?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот мое. даю все что было, разбирайся сам: (Debian)

база на firebird, но при наличии прямых рук подправить не проблема

из проблем:

1. они ХХХХХХХ (нехорошие человеки) твой сайт сразу переводят на IP и все обращения происходят по ИП адресу. т.е. никакие динамические адреса не проходят и каждая смена адреса сайта - очередной геморрой

2. если абон в терминале заплатит за себя, а потом повторит платеж за соседа, сотрет свой лицевой счет и запишет счет соседа,- в онлайне пройдет все-равно первый счет, а в реестре на следующий день придет "правильный счет", - готовься к постоянным перекидкам денег между абонами. я недавно сделал так: в онлайн-режиме я проставляю абону кредит на 7 дней, а на следующий день принимаю по элпочте реестр платежей привата и загоняю в базу деньги. пока тестирую, проблем стало на порядок меньше.

 

у меня "лицевой счет абона" это "группа" у STG :)

 

 

/etc/apache2/CA/ca.config:

[ ca ]
default_ca = CA_CLIENT  # При подписи сертификатов
# использовать секцию CA_CLIENT

[ CA_CLIENT ]
dir = ./db      # Каталог для служебных файлов
certs = $dir/certs      # Каталог для сертификатов
new_certs_dir = $dir/newcerts   # Каталог для новых сертификатов
database = $dir/index.txt       # Файл с базой данных

# подписанных сертификатов
serial = $dir/serial    # Файл содержащий серийный номер
# сертификата
# (в шестнадцатиричном формате)
certificate = ./ca.crt  # Файл сертификата CA
private_key = ./ca.key  # Файл закрытого ключа CA
default_days = 3650     # Срок действия подписываемого
# сертификата

default_crl_days = 7    # Срок действия CRL
default_md = md5        # Алгоритм подписи

policy = policy_anything        # Название секции с описанием
# политики в отношении данных
# сертификата

[ policy_anything ]
countryName = optional  # Код страны — не обязателен
stateOrProvinceName = optional  # ……
localityName = optional         # ……
organizationName = optional     # ……
organizationalUnitName = optional       # ……
commonName = supplied   # …… — обязателен
emailAddress = optional         # ……

/etc/apache2/CA/create:

CN=mysite.org.ua
SUBJroot=/C=UA/ST=qqq/L=www/O=eee/OU=Main/CN=$CN/emailAddress=rrr@gmail.com
SUBJcl=/C=UA/ST=qqq/L=www/O=$CN/OU=MySite/CN=user/emailAddress=rrr@gmail.com

DIR="./db"
mkdir "$DIR"
mkdir $DIR/certs
mkdir $DIR/newcerts
touch $DIR/index.txt
echo "01" > $DIR/serial

#Создание рутового сертификата CA
openssl req -new -newkey rsa:1024 -nodes -keyout ca.key -out ca.crt -x509 -days 3650 -subj $SUBJroot


#создание клиентского сертификата
openssl req -new -newkey rsa:1024 -nodes -keyout client01.key -out client01.csr -days 3650 -subj $SUBJcl
#подписываем клиентский сертифика
openssl ca -config ca.config -in client01.csr -out client01.crt -batch


#подготавливает сертификат для передачи пользователю
openssl pkcs12 -export -in client01.crt -inkey client01.key -certfile ca.crt -out client01.p12 -passout pass:12345678

запускаем ./create и файл client01.crt  и пароль 12345678 передается в приват

 

/etc/apache2/sites-enabled/privatbank.conf

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
        ServerAdmin mysite@gmail.com

        DocumentRoot /var/www/html
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

        SSLEngine on

        #   A self-signed (snakeoil) certificate can be created by installing
        #   the ssl-cert package. See
        #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
        #   If both key and certificate are stored in the same file, only the
        #   SSLCertificateFile directive is needed.
        SSLCertificateFile    /etc/apache2/CA/ca.crt
        SSLCertificateKeyFile /etc/apache2/CA/ca.key
        SSLCACertificateFile /etc/apache2/CA/ca.crt

<Location /pb>
    SSLRequireSSL
    SSLVerifyClient require
    SSLVerifyDepth 10
</Location>

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>

        BrowserMatch "MSIE [2-6]" \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0
        # MSIE 7 and newer should be able to use keepalive
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>
</IfModule>

/var/www/html/pb/.htaccess

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Options -Indexes
#Options +FollowSymLinks

/var/www/html/pb/dbfunc.php

<?php
$sgconf="/etc/stargazer/sgconf get -s 127.0.0.1 -p 5555 -a admin -w 123456 ";
$sgconfset="/etc/stargazer/sgconf set -s 127.0.0.1 -p 5555 -a admin -w 123456 ";

$db_host="localhost:/var/stargazer/stargazer.fdb";
$db_username="sysdba";
$db_password="123456";
$log_path='/var/stargazer/log';
$sgpay="/etc/stargazer/utils/_addcashname ";


function db_getuser($schet) {
    global $db_host;
    global $db_username;
    global $db_password;
    $res='';

    if (preg_match("/[^0-9_-]/", $schet)) {
      return "";
    }
    $dbh = ibase_connect($db_host, $db_username, $db_password);
    $stmt = "select first 1 tb_users.name from tb_users where (tb_users.grp='$schet')";
    $result = ibase_query($dbh, $stmt);
    if ($result==FALSE) {
        echo ("<B>Ошибка:".ibase_errmsg()."</B>");
    } else {
        if ($onerow = ibase_fetch_row($result)) {
            $res = $onerow[0];
        }
    }
    ibase_free_result($result);

    ibase_close($dbh);
    return $res;
}


function db_pay($user,$sum,$mess) {
    global $sgconfset;

#    $res=exec("$sgpay $user $sum $mess");
    $res=exec("$sgconfset -u $user -c $sum:$mess");

    logging("pb_money.log","$user has pay (res=$res) $sum $mess");

#    $expire = date('Y-m-d', strtotime("+7 day"));
#    $res=exec("$sgconfset -u $user -r $sum");
#    $res=exec("$sgconfset -u $user -E $expire");

    return $res;
}
function db_getcash($user) {
    global $db_host;
    global $db_username;
    global $db_password;
    $res=FALSE;

    $dbh = ibase_connect($db_host, $db_username, $db_password);
    $stmt = "select first 1 tb_stats.cash from tb_users, tb_stats where tb_users.pk_user=tb_stats.fk_user and tb_users.name='$user' order by tb_stats.pk_stat desc";
    $result = ibase_query($dbh, $stmt);
    if ($result==FALSE) {
        echo ("<B>Ошибка:".ibase_errmsg()."</B>");
    } else {
        if ($onerow = ibase_fetch_row($result)) {
            $res = $onerow[0];
        }
    }
    ibase_free_result($result);
    ibase_close($dbh);
    return $res;
}


function get_ip() {
  $ip_pattern="#(??:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)#";
  $ip="";
  foreach ($_SERVER as $k => $v) {
      if (substr($k,0,20)=="HTTP_X_FORWARDED_FOR" AND preg_match($ip_pattern,$v)) {
        $ip=$v;
        break;
      }
  }
  if ($ip == "") $ip=$_SERVER['REMOTE_ADDR'];
  return $ip;
}

function logging($file,$msg) {
    global $log_path;
    global $_SESSION;
    $f = @fopen("$log_path/$file", 'a+');
    $ip = get_ip();
    $log_line = date('d.m.y H:i:s').' '.$ip.' '.$msg."\n";
    fwrite($f, $log_line);
    fclose($f);
}
?>

/var/www/html/pb/paygate.php

<?php
require_once('dbfunc.php');
#exit;

$query_string = "";
if ($_POST) {
  $kv = array();
  foreach ($_POST as $key => $value) {
    $kv[] = "$key=$value";
  }
  $query_string = join("&", $kv);
}
else {
  $query_string = $_SERVER['QUERY_STRING'];
}

logging("pb.log","QUERY: $query_string");

$action=$_GET['action'];

switch ($action) {
    case "bill_search":
        $identifier=$_GET['bill_identifier'];
        $user=db_getuser($identifier);
        if ($user == '') {
          echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
          <ResponseDebt>
            <errorResponse>
              <code>2</code>
              <message>Абонент не найден. Лицевой счет - шестизначный код. Например,для Ленина,43 кв.15: 043015</message>
            </errorResponse>
          </ResponseDebt>";
          logging("pb.log","bill_search error schet=$identifier");
        }
        else {
          $balance=db_getcash($user);
          $to_pay=0;
          echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
          <ResponseDebt>
            <debtPayPack bill_identifier=\"$identifier\">
              <service>
                <ks company_code=\"2594611294\" service_code=\"1\" service=\"Интернет.\"/>
                <debt amount_to_pay=\"$to_pay\"/>
                <payer ls=\"$identifier\"/>
              </service>
              <message>Залишок коштiв на рахунку: $balance</message>
            </debtPayPack>
          </ResponseDebt>";
          logging("pb.log","bill_search ok schet=$identifier user=$user bal=$balance");
        }
        break;
    case "bill_input":
        $identifier=$_GET['bill_identifier'];
        $user=db_getuser($identifier);
        $sum=$_GET['sum'];
        $date=$_GET['date'];
        $pkey=$_GET['pkey'];
        $service=$_GET['service'];

        if (preg_match("/sum=([0-9.]+).*service_code=1/",$service,$match)) {
          $sum = $match[1];
        }

        $inner_ref = date("ymdGis");
        if ($user == '') {
          echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
          <ResponseDebt>
            <errorResponse>
              <code>2</code>
              <message>Абонент не найден. Лицевой счет - шестизначный код. Например,для Ленина,43 кв.15: 043015</message>
            </errorResponse>
          </ResponseDebt>";
          logging("pb.log","bill_input error schet=$identifier not found PB:date=$date");
        }
        else {
          $ret=db_pay($user,$sum,"PrivatBank");
          echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
          <ResponseExtInputPay>
            <extInputPay>
              <inner_ref>$inner_ref</inner_ref>
            </extInputPay>
          </ResponseExtInputPay>";
          logging("pb.log","bill_input ok schet=$identifier user=$user sum=$sum inner_ref=$inner_ref PB:date=$date pkey=$pkey");
          logging("pb_money.log","schet=$identifier summa=$sum user=$user inner_ref=$inner_ref PB:date=$date pkey=$pkey");
        }
        break;
    default:
          echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
          <ResponseDebt>
            <errorResponse>
              <code>2</code>
              <message>Абонент не найден. Лицевой счет - шестизначный код. Например,для Ленина,43 кв.15: 043015</message>
            </errorResponse>
          </ResponseDebt>";
}

?>

привату сообщаешь что твой платежный шлюз: https://mysite.org.ua/pb/paygate.php

Изменено пользователем dummy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

1. они ХХХХХХХ (нехорошие человеки) твой сайт сразу переводят на IP и все обращения происходят по ИП адресу. т.е. никакие динамические адреса не проходят и каждая смена адреса сайта - очередной геморрой 2. если абон в терминале заплатит за себя, а потом повторит платеж за соседа, сотрет свой лицевой счет и запишет счет соседа,- в онлайне пройдет все-равно первый счет, а в реестре на следующий день придет "правильный счет", - готовься к постоянным перекидкам денег между абонами. я недавно сделал так: в онлайн-режиме я проставляю абону кредит на 7 дней, а на следующий день принимаю по элпочте реестр платежей привата и загоняю в базу деньги. пока тестирую, проблем стало на порядок меньше.

:facepalm:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добого вечора!

вирішив додати кнопку оплати mypayprivat, у бекенді є index.php, і наскільки я зрозумів, налаштування потрібно дивитись за цим посиланням

https://my-payments.privatbank.ua/mypayments/customauth/identification/fp/static?staticToken=123456789

помилка сторінки

або я не так зрозумів.

що і потрібно змінити в даному посиланні?

Изменено пользователем revomix

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

  • Похожие публикации

    • Автор: 49rpam
      всем привет) помогите решить проблему с liqpay 
      сначала делал все по инструкции но так ничего и не получилось 
      немного тупил с адресами в конце концов пререместил openpayz в каталог userstats (знаю что не по феншую)
      и вроде заработало но деньги не зачисляются) (как и у большинства)
      Если платеж вормируется и проходит предполагаю что с бекэндом все ок 
      mysql.ini

      openpayz.ini

      userstats.ini

      alter.ini

       
      frontend/liqpay/index.php я не трогал) (вроде все как в документации)
       
      var/log/apache24/log.my.domail.net.log

       
      var/log/stargazer.log

       
      я вот еще хз что делать с этими параметрами в самом liqpay


       
       
      в логе id 00000 это логин такой тестовый я выбрал "вюшку" там где полностю цыфровые логины и платежный ид стал такойже как логин.
      Спасибо)
    • Автор: ppv
      Все працює норм аномалій не замічав, але є такі абоненти в яких змінюється платіжний id. І дійсно в угоді записували один, а через певний час інший.
      При оплатах логіни буквенні а ід цифровий, говорять на касі 1-2 абоненти в місяць таких.
      З чим це може бути повязано? І куди копати?
    • Автор: abonent1000
      При настройке OPENPAYZ столкнулся с тем, что:
       
      В кабинете пользователя указан Платежный ID 2886746321
      В админке по этому же пользователю 976842769.
       
      Делаю Поиск пользователя - Поиск по полям профиля - Платежный ID - находит только тот ID, что в админке.
       
      Естественно, что абоны не могут пополняться через терминалы
       
      Как такое может быть?
       
      Спасибо за помощь!
    • Автор: SVD
      Ребята всем привет. неподскажите что это может быть ? 

    • Автор: livalera
      Доброго времени суток ! 
      помогите пожалуйста разобраться
      не удается подключить прием платежей  LiqPay
       
      захожу к клиенту личный кабинет выбираю " онлайн платежи "   указываю сумму оплаты ( все ок формируется страничка для оплаты )
      ввожу реквизиты карты ( все ок оплата проходит успешно )
      но в сам билинг инфа об оплате не приходит !!!!
       
      Инфа из ee userstats.ini
      ;OpenPayz support OPENPAYZ_ENABLED=1 ;OpenPayz backend URL OPENPAYZ_URL=http://мой URL/openpayz/backend/ ;OpenPayz systems (delimiter ",") OPENPAYZ_PAYSYS=liqpay     инфа alter.ini ;OpenPayz support OPENPAYZ_SUPPORT=1 ;OpenPayz manual mode? OPENPAYZ_MANUAL=0 ;OpenPayz cash type OPENPAYZ_CASHTYPEID=1 ;get payment id for each user from op_customers OPENPAYZ_REALID=0  
       
       
      OPENPAYZ_REALID=0 - не стал активировать так как не разобрался с шаблонами
      а платежный ID и так формируется одинаково как в личном кабинете так и в билинге   
       
      информация для openpayz.ini иmysql.ini  была взята была взята из билинга в разделе настройка системы 
       
       
      инфа из backend
       
      Айди мерчанта MERCHANT_ID="мой ID выданный на сайте ликпей  "   ;Подпись мерчанта SIGNATURE="ключ выданный на сайте ликпей "   ;Ссылка куда будет засылаться собранная форма (лучше не трогать) LIQURL="https://www.liqpay.com/?do=clickNbuy"   ;Страница куда будет перенаправлен клиент после завершения транзакции RESULT_URL="мой URL/userstats/" ;А вот это ссылка на фронтенд LiqPay куда придет ответ от ихнего сервера SERVER_URL="мой URL/openpayz/frontend/liqpay/"   ;Метод которым мы будем получать платежи METHOD="card"   ;Валюта в которой мы будем получать платежи CURRENCY="RUB"   ; Рекомендуемые суммы платежа (целочисленные, разделитель - запятая) AVAIL_PRICES="1,2" для теста небольшая сумма    инфа из frontend   ;Айди мерчанта MERCHANT_ID="мой ID выданный на сайте ликпей"   ;Подпись мерчанта SIGNATURE="ключ выданный на сайте ликпей"     магазин активирован на возмещения     Может где то промахнулся может где то перепутал подскажите почему не приходит ответ от ликпей  ??  и не пополняется баланс у клиента ???    
×