RuWeb.net Forum

WMSigner
Nikola - 2.2.2005 в 18:27

Подскажите пожалуйста. Возникла проблемка и похоже с функцией _HttpsReq:
----------------------------------
function _HttpsReq($addr)
{
$ch = curl_init("https://w3s.webmoney.ru".$addr);
curl_setopt($ch, CURLOPT_HEADER, 0);

$fp = tmpfile();
curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_exec($ch);
curl_close($ch);

fseek($fp,0,SEEK_SET);
$result = fgets($fp,1024);
fclose($fp);

return $result;
}
--------------------------
пробовал моделировать результаты работы, но к примеру переменная result всегда остается пустой. Хотя переменная $addr поступает нормальная.
Может кто нибудь разъяснить в чем проблема? Где копать?


support - 2.2.2005 в 23:18

===
function _HttpsReq($addr)
{
$ch = curl_init("https://w3s.webmoney.ru".$addr);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CAINFO, 'WMRA.cer');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);

$result = curl_exec($ch);

curl_close($ch);

return $result;
}
===
'WMRA.cer' - заменить на путь к файлу с корневым сертификатом Webmoney. Можете сами его создать. Вот содержимое этого файла:
===
-----BEGIN CERTIFICATE-----
MIIEdzCCA1+gAwIBAgIQIUq/oIJDArlGjsgPsrp0IDANBgkqhkiG9w0BAQUFADBv
MRowGAYDVQQKExFXZWJNb25leSBUcmFuc2ZlcjEmMCQGA1UECxMdV2ViTW9uZXkg
Q2VydGlmaWNhdGlvbiBDZW50ZXIxKTAnBgNVBAMTIFdlYk1vbmV5IFRyYW5zZmVy
IFJvb3QgQXV0aG9yaXR5MB4XDTAxMDQwNDEzNDcwOVoXDTA2MDQwNDEzNTI0NFow
bzEaMBgGA1UEChMRV2ViTW9uZXkgVHJhbnNmZXIxJjAkBgNVBAsTHVdlYk1vbmV5
IENlcnRpZmljYXRpb24gQ2VudGVyMSkwJwYDVQQDEyBXZWJNb25leSBUcmFuc2Zl
ciBSb290IEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AO9V0RYrJYPCOR7odiyICWNuoZj0tN9Z1mY10s+QIYGsMZCNG0meQymt5jTuhD/E
GNAHVVR9st3C92pqy2UAvQyAxMmzg5SJbuo/39YSAqx0vEtehl4QfHWHSiFStbbt
ZslHdl1jYKLwm6B88XI3OpiAoMAccntSazvim1k18lZ2bsTJeiH4s8BLP5T0Yw+R
belHaJe1DiRWChoKqoVqsDp5mH7v0cEpD78KltHo57zUuH+rzTcTeCKkO4/9CWiF
qY2FzC09wekFJ8LZ0HMlcANdLYSvmz3Ux3BvFqy8Jyt8dBhq8MRUkzZC8Cg5/lfs
ZSMHHsr1PnsIuM0OGbb1GJMCAwEAAaOCAQ0wggEJMAsGA1UdDwQEAwIBxjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBTLnX5RfgggxPVwlKHOUscFTT8z8zCBtwYD
VR0fBIGvMIGsMFOgUaBPhk1odHRwOi8vY2VydC53ZWJtb25leS5ydS9DZXJ0RW5y
b2xsL1dlYk1vbmV5JTIwVHJhbnNmZXIlMjBSb290JTIwQXV0aG9yaXR5LmNybDBV
oFOgUYZPZmlsZTovL1xcY2VydC53ZWJtb25leS5ydVxDZXJ0RW5yb2xsXFdlYk1v
bmV5JTIwVHJhbnNmZXIlMjBSb290JTIwQXV0aG9yaXR5LmNybDAQBgkrBgEEAYI3
FQEEAwIBADANBgkqhkiG9w0BAQUFAAOCAQEAti4yceWVB0cj+G1CEDdCIpi2cOTP
I8eilmXb34ewdazOMicHIelFTBvDCn9kEGWqCN3UAT8sUhUrXt+BTioDg8fTayBF
Jy87W7li8wMHAfzLWpRkwUi9BG1OXuj8B59v8IyzbcjhrVtxiVjcNN6N0MsHrXDf
WA0oRCZFAaXbP7ue0eoQQcxTiWfAXMFZ3MX91z3J8k7J1uDcHhcIPzB7qJYHFSUj
H60f32FEEl6hyzCJv3x1YuB214LOfX8qVBbKMUVCQO7bjI+ubG88gMpcyb5fbnyq
XbaC7UQQj+m0e1mogEA1Gbsi2+khbLT5M/+LCWHKz59RyxTe00fRhDm6BA==
-----END CERTIFICATE-----
===

[Изменено 2.2.2005 от support]


Nikola - 3.2.2005 в 09:35

Все сделал как Вы описали. Теперь фуекция возвращает весьма определенное значение. Правда оно мне ничего не говорит, т.к. идет реплика "Неизвстная ошибка". Кстати, какие права должны быть на данный сертификат? Может проблема кроется в WMSigner`е ? Есть подозрения что либо он старый, либо откомпиляный не под Вашу платформу. У Вас можно получить заведомо работающий файл?


support - 3.2.2005 в 12:01

А вы из PHP не запустите свой WMSigner - запускается, тот что на сервере стоит. Рабочий естественно.
Функцию _GetSign проверяли? Не генерирует строку?


support - 3.2.2005 в 12:04

Цитата:
Кстати, какие права должны быть на данный сертификат?
на сертификат (также как на файл с ключем и WMSigner.ini) должны стоять права 644


Nikola - 3.2.2005 в 12:21

Я запускаю его на сервере. Прописал код в demo.php и результат следующий:
____________
360d638f461311d5659a76f87b09b7b0158bd18fbc3bad7b089eed26449c11544c125e607cee9b4f011cb70afa4aeca90eed9787e6f0f3553bb92235a19635f20a83
Неизвестная ошибка
________________________
Код скрипта следующий:
__________
include("wm.inc";);

echo _GetSign("demo";);
list($wmtrn_n, $err) = TransCreate("Z677558851278", "0.01", "55555555555", "test";);
Print "<p>$wmtrn_n</p><p>$err</p>";
___________________-


support - 3.2.2005 в 12:58

если строка генерируется, значит WMSigner ни при чем


Nikola - 3.2.2005 в 13:32

Тогда получается что проблема опять в функции _HttpsReq????
Как узнать?


support - 3.2.2005 в 13:37

выясните значение переменной $result = curl_exec($ch); после выполнения запроса, может что прояснится


Nikola - 3.2.2005 в 14:12

Получается вот что:
5fb5b4b5d757af948a561db7fb807546743c641bef01290b26530179428286f9ebac34857ea3850d8e9f8188f799cb184f7e986de02354e5a64072a52c25f3d50c11
Error:-110

Неизвестная ошибка


support - 3.2.2005 в 15:13

и где тут значение переменной $result ?


Nikola - 3.2.2005 в 15:51

Error:-110


support - 3.2.2005 в 21:41

http://forum.webmoney.ru/asp/n_message.asp?idcl=21&MessageID=34199
"-110 - нет доступа для ip с которого было обращение к интерфейсу"

Обращения кстати идут с адреса 83.102.155.194 (с основного адреса сервера), не смотря на то что у вас выделенный IP.