inkerman |
|
---|---|
столкнулся с проблемой установки биллинга Киви на сайт. У них это дело работает через SOAP, упакованное в SSL. После правки php.ini модули добавились. Даже демка примера запускается и корректно отрабатывает код. Но фишка в том, что если запустить ту же демку через include, вставленный в плагин биллинга, то получаю ошибку ошибку. Пишет что файлы не найдены, хотя все на месте. Я уже IShopServerWS.wsdl скопировал куда только можно - не помогает. Кто знает с чем это вероятно связано и как починить?
Интересная особенность: ошибка вылазит если плагин запущен средствами котонти. Если обратиться к php файлу напрямую - все работает. Я вот думаю, может ли этот глюк связан с взаимодействием SOAP и котонти? Ну странно что так-то он работает, а если запуск того же файла делать как плагин - ошибка... А ошибка вот такая: Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'IShopServerWS.wsdl' in X:\home\fmb\www\plugins\billing\IShopServerWSService.php:84 Stack trace: #0 X:\home\fmb\www\plugins\billing\IShopServerWSService.php(84): SoapClient->SoapClient('IShopServerWS.w...', Array) #1 X:\home\fmb\www\plugins\billing\test.php(5): IShopServerWSService->IShopServerWSService('IShopServerWS.w...', Array) #2 X:\home\fmb\www\plugins\billing\billing.php(42): require('X:\home\fmb\www...') #3 X:\home\fmb\www\system\core\plug\plug.inc.php(132): include_once('X:\home\fmb\www...') #4 X:\home\fmb\www\plug.php(31): require_once('X:\home\fmb\www...') #5 {main} thrown in X:\home\fmb\www\plugins\billing\IShopServerWSService.php on line 84 Документация QIWI SOAP https://ishop.qiwi.ru/docs/OnlineStoresProtocols_SOAP.pdf Демо пример: https://ishop.qiwi.ru/docs/qiwi-php-soap.zip |
Trustmaster |
|
---|---|
А если путь к wsdl абсолютный прописать?
Кое-что о путях в Cotonti. Поскольку все скрипты всегда запускаются через лоадер в корне сайта, например plug.php, то текущей директорией для скриптов (включая include-файлы плагинов) является именно корень сайта и путь строится относительно него. То есть если файл IShopServerWS.wsdl лежит в папке плагина billing, то относительный путь к нему будет одним из следующих (по вкусу): $wsdl_path = 'plugins/billing/IShopServerWS.wsdl'; // классика
$wsdl_path = './plugins/billing/IShopServerWS.wsdl'; // то же самое, но найдёт быстрее
$wsdl_path = $cfg['plugins_dir'] . '/billing/IShopServerWS.wsdl'; // то же самое, но поддерживает мультисайтовость May the Source be with you!
|
inkerman |
|
---|---|
Спасибо, Trustmaster! Помогло!
|