urfaclient на php

Вопросы по сопутствующим продуктам производства партнеров
Ответить
Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Сообщение Chrst »

drag0mir писал(а): а вот
$service['tariff_link_id'] равно нулю
Так, а что тогда удивительного ?! :D
Наверное стоит сделать так

Код: Выделить всё

// ** Добавляем пользователю тарифный план
$tariff_link_id = $urfa_admin->rpcf_link_user_tariff($user_id,$account_id,$tariff_current,$tariff_next,$discount_period_id);
а $tariff_link_id['tariff_link_id'] подставить в $service['tariff_link_id']

drag0mir
Сообщения: 64
Зарегистрирован: Сб ноя 24, 2007 13:46
Откуда: Нижний Новгород

Сообщение drag0mir »

Chrst писал(а):
drag0mir писал(а): а вот
$service['tariff_link_id'] равно нулю
Так, а что тогда удивительного ?! :D
Наверное стоит сделать так

Код: Выделить всё

// ** Добавляем пользователю тарифный план
$tariff_link_id = $urfa_admin->rpcf_link_user_tariff($user_id,$account_id,$tariff_current,$tariff_next,$discount_period_id);
а $tariff_link_id['tariff_link_id'] подставить в $service['tariff_link_id']
Огромнейшее спасибо!!! Премного благодарен!!! Спасибо.

fire002
Сообщения: 9
Зарегистрирован: Чт дек 09, 2010 14:38

Сообщение fire002 »

Приветствую господа!
Собственно нужен рабочий сабж под 005. Либо веб-морда для лицензионного urfaclient, может у кого завалялось. Если что, готов заплатить за допил.

Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Сообщение Chrst »

fire002 писал(а):Либо веб-морда для лицензионного urfaclient
Это как? Звучит практически как "нужен api.xml в формате jpeg" ;)

Jonson
Сообщения: 150
Зарегистрирован: Ср фев 02, 2005 21:48
Откуда: МО, Ногинский р-он

Сообщение Jonson »

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

Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Сообщение Chrst »

Jonson писал(а):можно ли сменить расчетный период, без удаления и добавления по новой ТП
Теоретически через SQL в БД, но есть шансы возникновения непредсказуемых последствий.
Более безопасно будет через запрос в БД сменить следующий РП и дождаться окончания текущего, сразу сменить текущий ооооочень неприятно будет . :)

Jonson
Сообщения: 150
Зарегистрирован: Ср фев 02, 2005 21:48
Откуда: МО, Ногинский р-он

Сообщение Jonson »

не отключается тариф у пользователя, услуги отключены, подскажите пожалуйста в чем проблема?

Код: Выделить всё

function rpcf_unlink_user_tariff($user_id,$account_id=0,$tariff_link_id=0) { //0x3019
                $ret=array();
                if (!$this->connection->urfa_call(0x3019)) {
                        print "Error calling function ". __FUNCTION__ ."\n";
                        return FALSE;
                }
                $packet = $this->connection->getPacket();
                $packet->DataSetInt($user_id);
                $packet->DataSetInt($account_id);
                $packet->DataSetInt($tariff_link_id);
                $this->connection->urfa_send_param($packet);
                $this->connection->urfa_get_data();
                return $ret;
        }

Код: Выделить всё

$user_id = intval($argv[1]);
$utm->rpcf_unlink_user_tariff($user_id);
[/code]

Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Сообщение Chrst »

Jonson писал(а):не отключается тариф у пользователя, услуги отключены, подскажите пожалуйста в чем проблема?

Код: Выделить всё

function rpcf_unlink_user_tariff($user_id,$account_id=0,$tariff_link_id=0) { //0x3019
                $ret=array();
                if (!$this->connection->urfa_call(0x3019)) {
                        print "Error calling function ". __FUNCTION__ ."\n";
                        return FALSE;
                }
                $packet = $this->connection->getPacket();
                $packet->DataSetInt($user_id);
                $packet->DataSetInt($account_id);
                $packet->DataSetInt($tariff_link_id);
                $this->connection->urfa_send_param($packet);
                $this->connection->urfa_get_data();
                return $ret;
        }

Код: Выделить всё

$user_id = intval($argv[1]);
$utm->rpcf_unlink_user_tariff($user_id);
[/code]
Есть подозрение, что надо указать account_id и tariff_link_id.

Jonson
Сообщения: 150
Зарегистрирован: Ср фев 02, 2005 21:48
Откуда: МО, Ногинский р-он

Сообщение Jonson »

СПАСИБО, работает

uinman
Сообщения: 75
Зарегистрирован: Чт дек 02, 2010 06:39

Сообщение uinman »

Добрый вечер всем. Подскажите как поставить блокировку на аккаунте. Но не блокировку администратора (код 256), а системную (код 48 или 16). Через rpcf_block_account и rpcf_save_account не получается. Ставит либо 256 либо 0. Ни 48 ни 16 не ставит

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Сообщение Magnum72 »

uinman писал(а):Добрый вечер всем. Подскажите как поставить блокировку на аккаунте. Но не блокировку администратора (код 256), а системную (код 48 или 16). Через rpcf_block_account и rpcf_save_account не получается. Ставит либо 256 либо 0. Ни 48 ни 16 не ставит
Только путем выставления огромного отицательного кредита

mf.viper
Сообщения: 59
Зарегистрирован: Ср мар 25, 2009 10:33

Сообщение mf.viper »

Подскажите, что с http://wiki.flintnet.ru/ ?

Срочно нужен патч для версии 008, может есть у кого ?

starchik
Сообщения: 461
Зарегистрирован: Сб ноя 22, 2008 22:07

Сообщение starchik »

mf.viper писал(а):Подскажите, что с http://wiki.flintnet.ru/ ?

Срочно нужен патч для версии 008, может есть у кого ?
Kayfolom давно видно не было, может что случилось :(

Аватара пользователя
Ata-man
Сообщения: 427
Зарегистрирован: Пт янв 21, 2005 10:04
Откуда: Екатеринбург

Сообщение Ata-man »

патч для 008:

Код: Выделить всё

diff -Nur oldurfaphp/URFAClient_Connection.php newurfaphp/URFAClient_Connection.php
--- oldurfaphp/URFAClient_Connection.php	2010-07-12 00:57:52.563618902 +0600
+++ newurfaphp/URFAClient_Connection.php	2010-07-12 01:11:22.798994237 +0600
@@ -2,17 +2,20 @@
 class URFAClient_Connection
 {
     private $socket = null;
+    private $admin = false;
 
     public $error = ''; // Для возврата ошибки
 
-    function __construct($address, $port, $login, $pass, $ssl = true)
+    function __construct($address, $port, $login, $pass, $ssl=true, $admin=false)
     {
+
+	$this->admin=$admin;
 	if ($address && $port && $login) {
 	    if (!$this->open($address, $port)) {
 	        $this->error = 'connect error';
 	        return false;
 	    }
-	    if (!$this->login($login, $pass, $ssl)) {
+	    if (!$this->login($login, $pass, true)) {
 	        $this->error = 'login error';
 	    }
 	}
@@ -20,7 +23,15 @@
 
     function open($address, $port)
     {
-        $context = stream_context_create(array('ssl' => array('ciphers'=> "ADH-RC4-MD5",)));
+        if ($this->admin) {
+            $context = stream_context_create();
+            stream_context_set_option($context, 'ssl', 'capture_peer_cert', true);
+            stream_context_set_option($context, 'ssl', 'local_cert', 'admin.crt');
+            stream_context_set_option($context, 'ssl', 'passphrase', 'netup');
+        } else {
+            $context = stream_context_create(array('ssl' => array('ciphers'=> "ADH-RC4-MD5",)));
+        }
+
         $address = gethostbyname($address);
         $this->socket = stream_socket_client("tcp://$address:$port", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);
         return !empty($this->socket); // Для возврата ошибки
@@ -64,7 +75,7 @@
 
     function ssl_connect($ssl)
     {
-//	    stream_socket_enable_crypto($this->socket, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT);
+	    stream_socket_enable_crypto($this->socket, true, STREAM_CRYPTO_METHOD_SSLv3_CLIENT);
     }
 
 
@@ -93,8 +104,11 @@
 
     function urfa_auth(&$packet, $uname, $upass, $ssl)
     {
-        if ($ssl == true)
-	$ssl = 2;
+        if ($this->admin)
+	    $ssl = 4;
+	else
+	    $ssl = 2;
+	
         $digest = $packet->attr[6]['data'];
     //    print "Received ".bin2hex($digest)." digest\n";
         $ctx = hash_init('md5');
@@ -118,6 +132,7 @@
      * @return URFAClient_Packet
      */
     // Старая версия (множественные вызовы urfa_get_data)
+/*
     function urfa_get_data($data = false)
     {
         if (!$data) {
@@ -136,7 +151,9 @@
 	    }
         }
     }
-    /* Новая версия (единственный вызов urfa_get_data)
+*/
+//     Новая версия (единственный вызов urfa_get_data)
+
     function urfa_get_data() { 
         $packet = $this->getPacket(); 
         $packet->clean(); 
@@ -151,7 +168,7 @@
               return FALSE; 
         return $packet; 
     } 	
-    */
+    
 
     function urfa_send_param(URFAClient_Packet $packet)
     {
diff -Nur oldurfaphp/URFAClient.php newurfaphp/URFAClient.php
--- oldurfaphp/URFAClient.php	2010-07-12 00:57:02.849872844 +0600
+++ newurfaphp/URFAClient.php	2010-07-12 01:16:54.565746125 +0600
@@ -14,11 +14,11 @@
     protected $address;
     protected $port;
 //	public $error = '';
-    public function __construct($login, $pass, $address = "127.0.0.1", $port = "11758", $ssl = false)
+    public function __construct($login, $pass, $address = "127.0.0.1", $port = "11758", $ssl = true, $admin)
     {
 	$this->address = $address;
 	$this->port = $port;
-	$this->connection = new URFAClient_Connection($address, $port, $login, $pass, $ssl);
+	$this->connection = new URFAClient_Connection($address, $port, $login, $pass, $ssl, $admin);
 	$this->error = $this->connection->error;
     }
 }
сертификат admin.crt:

Код: Выделить всё

Bag Attributes
    localKeyID: B1 7B 51 5D 38 86 C3 29 E6 C9 7D 9D 33 6C 01 5C 1F 27 FA 8B 
subject=/C=RU/ST=Moscow/O=NetUP/OU=Support Department/CN=URFA/emailAddress=info@netup.ru
issuer=/C=RU/ST=Moscow/L=Moscow/O=NetUP Inc./OU=Root CA/CN=www.netup.ru/emailAddress=info@netup.ru
-----BEGIN CERTIFICATE-----
MIIEmTCCA4GgAwIBAgICBQUwDQYJKoZIhvcNAQEEBQAwgYsxCzAJBgNVBAYTAlJV
MQ8wD0YDVQQIEwZNb3Njb3cxDzANBgNVBAcTBk1vc2NvdzETMBEGA1UEChMKTmV0
VVAgSW5jLjEQMA4GA1UECxMHUm9vdCBDQTEVMBMGA1UEAxMMd3d3Lm5ldHVwLnJ1
MRwwGgYJKoZIhvcNAQkBFg1pbmZvQG5ldHVwLnJ1MB4XDTEwMDIxMDEyMzQ0OFoX
DTMzMDUxNzEyMzQ0OFoweDELMAkGA1UEBhMCUlUxDzANBgNVBAgTBk1vc2NvdzEO
MAwGA1UEChMFTmV0VVAxGzAZBgNVBAsTElN1cHBvcnQgRGVwYXJ0bWVudDENMAsG
A1UEAxMEVVJGQTEcMBoGCSqGSIb3DQEJARYNaW5mb0BuZXR1cC5ydTCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAL0gqlVXtg8VXgi1gP5fcYSyda8DoFt/
Q4g2RkTjCFi0yzHWApVTty+q7bXFEjYqSS8EB17BzX4SWb9zzNTXlg8dWP1qNdLR
dpHOjQKw1sozrluibuzyRYZoTC2DKAJX1mYRhp87HkVFP2KKACUh2BMgTgyxMMXe
o6E7Gc7pRrkVquGhGcvE4D79u202iQ6ZlyLuyDvWlRzCmAyz4/hJjQ8uIsg/8nUh
E0OJP0RzH75HCoYzGEiLC5VX9nnAvqVoRkcNQs+CLbPWyWr420JyW3Agbjvj69/A
aXUTuqp7q61w651dy+5ji1f/WotpreOPjDatC8CK8v87Ww4z4mq8x7cCAwEAAaOC
ARcwggETMAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJh
dGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBSXCFoWRBeb1gM4isSzOV2+hI8UijCB
uAYDVR0jBIGwMIGtgBQFOjVIwOBJY1U6R4CIe3ipaqPdg6GBkaSBjjCBizELMAkG
A1UEBhMCUlUxDzANBgNVBAgTBk1vc2NvdzEPMA0GA1UEBxMGTW9zY293MRMwEQYD
VQQKEwpOZXRVUCBJbmMuMRAwDgYDVQQLEwdSb290IENBMRUwEwYDVQQDEwx3d3cu
bmV0dXAucnUxHDAaBgkqhkiG9w0BCQEWDWluZm9AbmV0dXAucnWCAQAwDQYJKoZI
hvcNAQEEBQADggEBAGZ05VunixPJV4cvXZrx8D4MV//Urnkf+DAfB20qtv+zyB9b
tuHU02/rlJVxIyeTbOvI1rLPHbOgVJOnd/OJfyy+NN9JY5/Wjm8QUu9i9UfjibQQ
RSCwxxVp7qKHafDHZbR56h8EScNui0u6UBfVtUv/OE1hIxpKmfkeRu0lI8lPDlR7
+jPvVDUsWG5xItbg+xNXtiaa8/+iQ3mnd0F5nNtu0rkhACLzqLhqndsyEQVKg8Ud
AxmhghLk4gV7iW4A+kISYzNk09TF9yi2A2qOx9QLZMoiWvE7jjBi4Q1XNFD0hjGK
WPUCRt2R8XTiIsBtX+1jJeXUyUJ2YaNVUM9+aKI=
-----END CERTIFICATE-----
Bag Attributes
    localKeyID: B1 7B 51 5D 38 86 C3 29 E6 C9 7D 9D 33 6C 01 5C 1F 27 FA 8B 
Key Attributes&#58; <No Attributes>
-----BEGIN RSA PRIVATE KEY-----
Proc-Type&#58; 4,ENCRYPTED
DEK-Info&#58; DES-EDE3-CBC,660C79F2C8C41A49
 
EgAH4E2l/dxMzj9zpFJzvl5BdbG1zObXqvh8j5fJuIpqw8ASNZAzyngzLT3WBSOJ
1QmTEZrH/wCKhisPFWlBawnzt/5lJNIJRugih/FQLvymcu4xb0Dn8SeYHGoDJJnA
vFPflbVY+1O1JfCirJPF8QjDhli7wWzMeYnIllgsRe+x7IZDrXukh+ews+S0Dy4X
ZMhTkugPgCrx0nz/NTbS6SkmWurDiLvGXp5HGyGxvBE8BmBvwdx5vQBxXdMmgD1f
DlDB7YNoTY/MQUwM7th6+MxSLwCVllJccewXRixBjFGwKt/YHVwKxogrkVPOxvWf
Ip9JEXbgmjpO7JJ/4vYjNj5I54mKR3OYho8LTQ0EZ+LC18CtFLctbTZyUj5aFxkg
eYfcPzFyFCXonrTVOgPgSZnVcL4tEvxBL1NL+mgG1CFDKjE4+aQwGa20KXFk/g4L
kMryw22hAc5wNouZGMq7GDh6N1j/BlRENcIm0A+t75H3LUUPulSN53ahmBgUmHtK
XZjqAtVd0qhurvhiB31Iy024j+0/osZnjeCV9vc8IpAC5IRkHltL2we2k0STxthV
C71hR681tp/FhmKBjSSTJ4b9bDXf6WUVjVTSkAAKBDBP3TTkz28LHxlFkuhGz2f8
lgdtgtQIYYBkicUkJifyCQ9Lukqe4uVNKzznpLuirBoDvw8grJVkJU0HfKkGc49j
JNPBX7/nZ+dv0yOGgolUWgapDaTfDyk9NhcW8XgLCBi3A1AtSQ1NXOXdYGZUvY4O
nG20TSQxr2GKiakeMmiUSQfI3J1jPuQTopYvBOxmH42cQkQH7pRA1n8BFTmyJulw
sE9lStcyZyVFpTedNiSqZ7qAWF7aK8+32fxSSBjShbI+9kpKggkf29lzptRmbrLW
hHv2vD5ZQf6bARXj5rqARg64ktTi6jBr5bFLd+vCSOJmqxZcKk+UtQDRJ/1T7qy/
3dzKVL+0TZCtPOVNlV5P1nYIgc4DYD7RAPuMELCvExwEmfvVLRX56BGcQU6tOm3v
17AHk3HSeW4Cq3fu/xHL1CVV/ic74ZKJuy8RKl4bw+0bkEV/J4uPSZ27LOO0ZoLm
kXSN0Q4Q7eFsjR/nLxOuPT8v0ICB1UbpS5kFzi41nXPCunUQO6QG23xElFfami2H
UKz7STz01BM9pzMHhbd6N2LTSrFqL640wgZ7/oYw2ESzNef/ea0MoCWXAidONn9f
JOcBvVBIk0rZFIpPLdFwEWH1t9OaH89nfNL84OcP3rBDmVoS+yoht6uZ93d9pO9r
AGj8+LhI3VsFvKeu6/eLSyBiazgue818lC8QqjZy4MlrzKsuuFiFMbv9Glow0oAj
vvA7+NVnJLUkRLuMDn/5O1LkqJL+xokoFm8Br1BBAahaMp9iqq8gsCl2tC9ohTaV
46gXG7syPL8dq6opP8c5VCDTL/OvDxeR8SPifgp/BcZnELf0AZHBqn47zkd/eBHj
YYa47Mpf3XAsS0/9VU01C25HCm9AL3O5O0Y/Pd1q/idZNKYdve1UEzFdnN+LwotJ
3P+xXO+5eGFYyVn0WBkfQCb+AdHqOBNGtEjIlMFpPufn8m7/70GVMqQhs9qNPMx2
-----END RSA PRIVATE KEY-----

mf.viper
Сообщения: 59
Зарегистрирован: Ср мар 25, 2009 10:33

Сообщение mf.viper »

Помогите с rpcf_add_once_service_to_user в 008

Делаю:
$log = $urfa_admin->rpcf_add_once_service_to_user(2,2,135,0,0,0,1,0);
Получаю:
Error calling function rpcf_add_once_service_to_user

Хотя другие функции [например $urfa_admin->rpcf_get_accountinfo(2)], работают нормально.

Код: Выделить всё

	function rpcf_add_once_service_to_user&#40;$user_id,$account_id,$service_id,$tplink,$slink_id,$discount_date,$quantity,$invoice_id&#41; &#123; //0x2555
		$ret=array&#40;&#41;;
		if &#40;!$this->connection->urfa_call&#40;0x2555&#41;&#41; &#123;
			print "Error calling function ". __FUNCTION__ ."\n";
			return FALSE;
		&#125;
		$packet = $this->connection->getPacket&#40;&#41;;
		$packet->DataSetInt&#40;$user_id&#41;;
		$packet->DataSetInt&#40;$account_id&#41;;
		$packet->DataSetInt&#40;$service_id&#41;;
		$packet->DataSetInt&#40;$tplink&#41;;
		$packet->DataSetInt&#40;$slink_id&#41;;
		$packet->DataSetInt&#40;$discount_date&#41;;
		$packet->DataSetDouble&#40;$quantity&#41;;
		$packet->DataSetInt&#40;$invoice_id&#41;;
		$this->connection->urfa_send_param&#40;$packet&#41;;
		if &#40;$x = $this->connection->urfa_get_data&#40;&#41;&#41; &#123;
			$ret&#91;'result'&#93;=$x->DataGetString&#40;&#41;;
//			$this->connection->urfa_get_data&#40;&#41;;
		&#125;
		return $ret;
	&#125;

Ответить