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

DeepNet

ASP24.com.ua - Модули для приёма/передачи сигнала в оптических телекоммуникационных сетях. Звоните! 098-896-6219
Фото

OpenPayz Приватбанк

OpenPayz

  • Чтобы отвечать, сперва войдите на форум
4 ответов в теме

#1 needhelp

needhelp

    Первая Кровь

  • Маглы
  • ФишкаФишка
  • 57 Сообщений:

Опубликовано 18 Май 2015 - 16:10

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

NoviTrade

  • 0

LanTorg.com

#2 nightfly

nightfly

    Дьявол

  • Сitizens
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 4 378 Сообщений:
  • Пол:Мужчина
  • Город:wild west

Опубликовано 18 Май 2015 - 18:08

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

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


  • 0

Причинять добро и наносить справедливость | Ubilling - резня в дельфинарии, бобры негодуют | Шапочки из фольги оптом.


#3 dummy

dummy

    Точу Зубы

  • Сitizens
  • ФишкаФишкаФишка
  • 252 Сообщений:

Опубликовано 01 Июнь 2015 - 19:53

вот мое. даю все что было, разбирайся сам: (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, 01 Июнь 2015 - 20:15

  • 0

NG Optics

#4 nightfly

nightfly

    Дьявол

  • Сitizens
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 4 378 Сообщений:
  • Пол:Мужчина
  • Город:wild west

Опубликовано 02 Июнь 2015 - 01:34

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

:facepalm:


  • 0

Причинять добро и наносить справедливость | Ubilling - резня в дельфинарии, бобры негодуют | Шапочки из фольги оптом.


#5 revomix

revomix

    Точу Зубы

  • Сitizens
  • ФишкаФишкаФишка
  • 274 Сообщений:
  • Пол:Мужчина

Опубликовано 28 Декабрь 2016 - 18:11

Добого вечора!
вирішив додати кнопку оплати mypayprivat, у бекенді є index.php, і наскільки я зрозумів, налаштування потрібно дивитись за цим посиланням
https://my-payments....Token=123456789
помилка сторінки
або я не так зрозумів.
що і потрібно змінити в даному посиланні?

Изменено: revomix, 28 Декабрь 2016 - 18:12

  • 0





Также с меткой «OpenPayz»

0 пользователей читают эту тему

0 members, 0 guests, 0 anonymous users

Local.blog МЕТА - Украина