Показано с 1 по 10 из 10

Тема: Создание платежных модулей на PHP

  1. #1
    Junior Member
    Регистрация
    24.05.2018
    Сообщений
    8

    Exclamation Создание платежных модулей на PHP

    Здравствуйте, при изучении документации, в частности по разработке платежных модулей (на PHP) возникла следующая проблема:

    1) Залил example отсюда, перезагрузил биллинг, в списках методов оплаты появился QIWI PULL, добавил платежную информацию (фейковую естественно), нажал добавить. Метод появился в списке добавленных методов оплаты, но имеет статус "Модуль метода оплаты не установлен", тем самым биллинг ясно дает понять, что модуль не работает и пытается его переустановить (при попытке открыть только что добавленный модуль).

    2) Повторил всё, что было написано в документации, такая же история.

    В логах в /usr/local/mgr5/var/pkg.log CentOS пытается плагин с репозиториев выкачать зачем-то:

    *** Mon Jun 4 21:36:20 +03 2018
    *** installing billmanager-plugin-pmqiwipull.php
    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    * base: mirror.reconn.ru
    * epel: mirror.yandex.ru
    * extras: ftp.nsc.ru
    * remi-php71: mirror.reconn.ru
    * remi-safe: mirror.reconn.ru
    * updates: ftp.nsc.ru
    No package billmanager-plugin-pmqiwipull.php available.
    Error: Nothing to do
    Прошу помощи в решении проблемы.

  2. #2
    BILLmanager team
    Регистрация
    17.09.2010
    Сообщений
    8,501

    По умолчанию

    Здравствуйте, какая у вас версия BILLmanager? Пробовали перезапустить BILLmanager?
    В логе billmgr.log что пишется при открытии метода оплаты на редактирование?
    Покажите начало файла модуля pmqiwipull.php

  3. #3
    Junior Member
    Регистрация
    24.05.2018
    Сообщений
    8

    По умолчанию

    Цитата Сообщение от Azcol Посмотреть сообщение
    Здравствуйте, какая у вас версия BILLmanager? Пробовали перезапустить BILLmanager?
    В логе billmgr.log что пишется при открытии метода оплаты на редактирование?
    Покажите начало файла модуля pmqiwipull.php
    Здравствуйте!

    billmgr.log
    Jun 5 10:53:39 [11193:46] db [1;36mEXTINFO Query: 'SELECT t2u.id AS id, i.id AS ticket_item, t.id AS ticket, t.name AS name, t.difficulty AS difficulty, IF(t2u.postponed_until IS NOT NULL AND t2u.postponed_until > NOW(), 'on', 'null') AS postponed, (t.date_start) AS date_start, a.name AS client, IF(DATE_ADD(a.registration_date, INTERVAL 1 MONTH) >= NOW(), 'on', NULL) AS novice, a.id AS client_id, IF(u.level = 28, u.name_ru, IFNULL(u.realname_ru, u.name_ru)) AS responsible, IF(t.user_block IS NULL, NULL, CONCAT(IFNULL(bu.realname_ru, bu.name_ru), ', ', IFNULL(t.time_block, ''))) AS blocked_by, IF(bu.name IS NULL, 'on', NULL) AS not_blocked, IF(t.gateway IS NULL, NULL, 'on') AS from_gate, IFNULL(a.attitude, 0) AS attitude, t.user_block, t.priority, IF(IFNULL(t.user_block, 0) = 1, 'on', NULL) AS blocked_by_me, (t2u.assign_date) AS assign_date, (t2u.reply_until) AS reply_until, t2u.assign_date AS clear_assign_date, t2u.reply_until AS clear_reply_until, pr.name AS project, pr.support_require AS project_support_require, pr.id AS project_id, a.note AS note, IF(t2us.status IS NULL or t2us.status = 0, 'on', NULL) AS unread, at.id AS abuse_id, IF(at.id IS NULL OR at.status = 1 OR at.deadline IS NULL, NULL, at.deadline) AS abuse, t2u.from_abuse_process, t2us.status AS t2us_status, t2us.play_sound, IFNULL(pmn.name, pm.name) AS location, IF(IFNULL(t.highpriority, 'off') = 'on' OR IFNULL(t2u.highpriority, 'off') = 'on', 'on', 'off') AS highpriority, IF(t2u.highpriority = 'on' OR t.highpriority = 'on', 1, IF(reply_until IS NOT NULL AND TIME_TO_SEC(TIMEDIFF(reply_until, NOW())) <= '900', 0, 2)) AS t_group, 1 AS user_lastresponsible_sort, IF(reply_until IS NOT NULL AND TIME_TO_SEC(TIMEDIFF(reply_until, NOW())) > '900', TIME_TO_SEC(TIMEDIFF(reply_until, now()))/TIME_TO_SEC(TIMEDIFF(reply_until, assign_date)) * IF(t.user_lastresponsible IS NOT NULL AND t.user_lastresponsible = '1', 1, 2), 1) AS avg_delay, IF(reply_until IS NOT NULL AND TIME_TO_SEC(TIMEDIFF(reply_until, NOW())) <= '900', reply_until, assign_date) AS time_sort, IF(t.incident_count > 0, 'on', 'off') AS incident FROM ticket2user t2u LEFT JOIN ticket2user_stat t2us ON t2us.ticket2user = t2u.id AND t2us.user = '1' JOIN user u ON u.id = t2u.user JOIN ticket t ON t.id = t2u.ticket JOIN account a ON a.id = t.account_client LEFT JOIN user bu ON bu.id = t.user_block JOIN project pr ON pr.id = t.project LEFT JOIN item i ON i.id = t.item LEFT JOIN processingmodule pm on i.processingmodule = pm.id LEFT JOIN processingnode pmn on i.processingnode = pmn.id AND pmn.processingmodule = pm.id LEFT JOIN abuse_task at ON at.ticket = t.id LEFT JOIN pricelist p ON p.id = i.pricelist WHERE (u.id = 1 OR u.level = 28 AND u.id IN (SELECT usergroup FROM user2usergroup WHERE user = 1) OR u.level = 28 AND u.head = 1 OR u.level = 29 AND u.id IN (SELECT u2g.user FROM user2usergroup u2g JOIN user g ON g.id = u2g.usergroup WHERE g.head = 1))AND (t2u.postponed_until IS NULL OR t2u.postponed_until < NOW()) ORDER BY t_group ASC, user_lastresponsible_sort ASC, avg_delay ASC, time_sort ASC'[0m
    Jun 5 10:53:39 [11193:46] db [1;36mEXTINFO Query: 'SELECT COUNT(*) FROM project WHERE theme LIKE '%client%''[0m
    Jun 5 10:53:39 [11193:46] db [1;36mEXTINFO Query: 'SELECT COUNT(DISTINCT t2u.ticket) AS ticket_count FROM ticket2user t2u WHERE (t2u.user = '1' or t2u.user IN (SELECT usergroup FROM user2usergroup WHERE user = '1')) AND (t2u.postponed_until IS NULL OR t2u.postponed_until <= '2018-06-05 10:53:39')'[0m
    Jun 5 10:53:39 [11193:46] db [1;36mEXTINFO Query: 'SELECT COUNT(*) FROM gateway_message gw LEFT JOIN abuse_task at ON at.gateway_message = gw.id WHERE at.id IS NULL'[0m
    Jun 5 10:53:39 [11193:46] db [1;36mEXTINFO Query: 'SELECT COUNT(*) FROM notification WHERE user = 1 AND readed = 'off''[0m
    Jun 5 10:53:39 [11193:46] db [1;36mEXTINFO begin transaction[0m
    Jun 5 10:53:39 [11193:46] db [1;36mEXTINFO Query: 'SELECT COUNT(*) FROM events_admin'[0m
    Jun 5 10:53:39 [11193:46] db [1;36mEXTINFO Query: 'SELECT COUNT(DISTINCT t.id) AS count FROM user2usergroup u2g JOIN task t ON t.department=u2g.usergroup JOIN user d ON d.id=t.department LEFT JOIN item i ON i.id=t.item LEFT JOIN user u ON u.id=t.performer WHERE (u2g.user=1 OR d.head = 1) AND t.status NOT IN (2, 3)'[0m
    Jun 5 10:53:39 [11193:46] db [1;36mEXTINFO Query: 'SELECT COUNT(*) FROM project WHERE theme LIKE '%client%''[0m
    Jun 5 10:53:39 [11193:46] db [1;36mEXTINFO commit transaction[0m
    Jun 5 10:53:39 [11193:46] db [1;36mEXTINFO commit transaction[0m
    Jun 5 10:53:39 [11193:46] libmgr [1;36mEXTINFO Thread 226757b29247593f finished[0m
    pmqiwipull.php
    PHP код:
    #!/usr/bin/php

    <?php

    set_include_path
    (get_include_path() . PATH_SEPARATOR "/usr/local/mgr5/include/php");
    define('__MODULE__'"pmqiwipull");

    require_once 
    'bill_util.php';
    Версия биллинга
    BILLmanager Advanced 5.153.1

    Да, Биллинг перезагружал так: killall core

  4. #4
    Junior Member
    Регистрация
    24.05.2018
    Сообщений
    8

    По умолчанию

    Почистил billmgr.log и повторил операцию:
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO ??? (lib/libmgr.so.5.153.1 + 0x0) [*0x7f6b7a837be4]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO mgr_xml::Xml::LoadFromString(std::string const&) (lib/libmgr.so.5.153.1 + 0x2d4) [*0x7f6b7a831d7c]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO mgr_xml::XmlString::XmlString(std::string const&) (lib/libmgr.so.5.153.1 + 0x1c) [*0x7f6b7e4ab5b3]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO BinaryModule::GetResultXml(mgr_proc::Execute&, std::string) const (lib/billmgr.so + 0x133) [*0x7f6b7e3a38cb]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO payment::MethodInternal::Config() (lib/billmgr.so + 0x5cb) [*0x7f6b7e3a87a1]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO payment::MethodInternal::MethodInternal(std::strin g const&) (lib/billmgr.so + 0x1b1) [*0x7f6b7e3a8d6a]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO payment::GetMethod(std::string const&) (lib/billmgr.so + 0x17a) [*0x7f6b7e3b726a]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO aPayMethodCheckPay::Execute(isp_api::Session&) const (lib/billmgr.so + 0x9a) [*0x7f6b7b063ffa]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO isp_api::Action::Run(isp_api::Session&) const (lib/libispapi.so.5.153.1 + 0x7a) [*0x7f6b7b06690b]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO isp_api::InternalCall(isp_api::BaseConnection const&, isp_api::Authen const&, isp_api::Action const&) (lib/libispapi.so.5.153.1 + 0x63b) [*0x7f6b7d48a228]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO ispcore::ProcessRequest::ProcessApi1() (lib/libbase.so.5.153.1 + 0x208) [*0x7f6b7d48d730]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO ispcore::ProcessRequest:perator()() (lib/libbase.so.5.153.1 + 0x1580) [*0x7f6b7d48e3bf]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO mgr_thread::Handle::Impl<mgr_thread::List::Impl<is pcore::ProcessRequest> >::run() (lib/libbase.so.5.153.1 + 0x5f) [*0x7f6b7a812c8f]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO ??? (lib/libmgr.so.5.153.1 + 0x0) [*0x7f6b7f935e25]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO ??? (/lib64/libpthread.so.0 + 0x0) [*0x7f6b7f65fbad]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO ??? (/lib64/libc.so.6 + 0x6d) [*(nil)]
    Jun 5 11:00:04 [11801:8] libmgr ERROR Error: Type: 'xml' Object: 'parse' Value: '
    <?xml version="1.0" encoding="UTF-8"?>
    <doc><feature><redirect>on</redirect><notneedprofile>on</notneedprofile><pmtune>on</pmtune><pmvalidate>on</pmvalidate><crvalidate>on</crvalidate><crset>on</crset><crdelete>on</crdelete></feature><param><payment_script>/mancgi/qiwipullpayment.php</payment_script></param></doc>
    '
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO BinaryModule::GetResultXml(mgr_proc::Execute&, std::string) const (lib/billmgr.so + 0xc19) [*0x7f6b7e3a38cb]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO payment::MethodInternal::Config() (lib/billmgr.so + 0x5cb) [*0x7f6b7e3a87a1]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO payment::MethodInternal::MethodInternal(std::strin g const&) (lib/billmgr.so + 0x1b1) [*0x7f6b7e3a8d6a]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO payment::GetMethod(std::string const&) (lib/billmgr.so + 0x17a) [*0x7f6b7e3b726a]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO aPayMethodCheckPay::Execute(isp_api::Session&) const (lib/billmgr.so + 0x9a) [*0x7f6b7b063ffa]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO isp_api::Action::Run(isp_api::Session&) const (lib/libispapi.so.5.153.1 + 0x7a) [*0x7f6b7b06690b]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO isp_api::InternalCall(isp_api::BaseConnection const&, isp_api::Authen const&, isp_api::Action const&) (lib/libispapi.so.5.153.1 + 0x63b) [*0x7f6b7d48a228]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO ispcore::ProcessRequest::ProcessApi1() (lib/libbase.so.5.153.1 + 0x208) [*0x7f6b7d48d730]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO ispcore::ProcessRequest:perator()() (lib/libbase.so.5.153.1 + 0x1580) [*0x7f6b7d48e3bf]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO mgr_thread::Handle::Impl<mgr_thread::List::Impl<is pcore::ProcessRequest> >::run() (lib/libbase.so.5.153.1 + 0x5f) [*0x7f6b7a812c8f]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO ??? (lib/libmgr.so.5.153.1 + 0x0) [*0x7f6b7f935e25]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO ??? (/lib64/libpthread.so.0 + 0x0) [*0x7f6b7f65fbad]
    Jun 5 11:00:04 [11801:8] backtrace EXTINFO ??? (/lib64/libc.so.6 + 0x6d) [*(nil)]
    Jun 5 11:00:04 [11801:8] libmgr ERROR Error: Type: 'binarymodule_parse_xml'
    Jun 5 11:00:04 [11801:8] payment WARNING Error load payment module config: Type: 'binarymodule_parse_xml' Object: '' Value: ''
    Jun 5 11:00:04 [11801:8] db EXTINFO begin transaction
    Jun 5 11:00:04 [11801:8] db EXTINFO Query: 'SELECT id FROM problems WHERE name='paymethod' AND problem_id='pmqiwipull.php''
    Jun 5 11:00:04 [11801:8] db EXTINFO Query: 'SELECT * FROM problems WHERE id='3''
    Jun 5 11:00:04 [11801:8] db EXTINFO Query: 'UPDATE problems SET date_init='2018-06-05 11:00:04' WHERE id='3''
    Jun 5 11:00:04 [11801:8] db EXTINFO Query: 'SELECT MAX(id) FROM problems_log'
    Jun 5 11:00:04 [11801:8] db EXTINFO Query: 'INSERT INTO problems_log (date, id, id_problem, owner) VALUES('2018-06-05 11:00:04', '32', '3', 'root')'
    Jun 5 11:00:04 [11801:8] db EXTINFO commit transaction
    Jun 5 11:00:04 [11801:8] proc EXTINFO Run '/bin/sh -c paymethods/pmsimplepay\ --command\ config\ ' pid 11944
    Jun 5 11:00:04 [11801:2] libmgr EXTINFO Start thread 
    Jun 5 11:00:04 [11801:20] billmgr INFO ses.auth.real(level): 31 = authenticate.billmgr, xml, 1
    Jun 5 11:00:04 [11801:20] core_module EXTINFO Internal [][] 'func=authenticate.billmgr&username=1'
    Jun 5 11:00:04 [11801:20] db EXTINFO begin transaction
    Jun 5 11:00:05 [11801:20] billmgr INFO ses.auth.real(level): 30 = paymethod, html, 0
    Jun 5 11:00:05 [11801:20] core_module INFO Request [178.155.72.96][root#admin(1)] 'clickstat=yes&func=paymethod&operafake=1528185595 670&sfrom=ajax'
    Jun 5 11:00:05 [11801:20] db EXTINFO Query: 'SELECT m.id, m.module, m.name_ru as name, m.note, m.orderpriority, m.active, c.name_ru as currency_name, (SELECT GROUP_CONCAT(p.name SEPARATOR ', ') FROM paymethod2project p2p JOIN project p ON p.id=p2p.project WHERE p2p.paymethod=m.id) AS projects, (SELECT GROUP_CONCAT(p.name SEPARATOR ', ') FROM paymethod2company p2c JOIN profile p ON p.id=p2c.company WHERE p2c.paymethod=m.id) AS companies FROM paymethod m JOIN currency c ON c.id = m.currency LEFT JOIN paymethod2project p2p ON m.id=p2p.paymethod LEFT JOIN project p ON p.id = p2p.project LEFT JOIN paymethod2company p2c ON m.id=p2c.paymethod LEFt JOIN profile pc ON pc.id = p2c.company GROUP BY m.id LIMIT 5001'
    Jun 5 11:00:05 [11801:8] proc EXTINFO Process 11944 finished with status 0
    Jun 5 11:00:05 [11801:8] db EXTINFO commit transaction
    Jun 5 11:00:05 [11801:8] libmgr EXTINFO Thread 5082df49e06752a5 finished
    Jun 5 11:00:05 [11801:20] db EXTINFO Query: 'SELECT COUNT(*) FROM project WHERE theme LIKE '%client%''
    Jun 5 11:00:05 [11801:20] db EXTINFO commit transaction
    Jun 5 11:00:05 [11801:20] libmgr EXTINFO Thread 3f9263aad82f813d finished
    Jun 5 11:00:05 [11801:2] libmgr EXTINFO Start thread 
    Jun 5 11:00:05 [11801:21] billmgr INFO ses.auth.real(level): 31 = authenticate.billmgr, xml, 1
    Jun 5 11:00:05 [11801:21] core_module EXTINFO Internal [][] 'func=authenticate.billmgr&username=1'
    Jun 5 11:00:05 [11801:21] db EXTINFO begin transaction
    Jun 5 11:00:05 [11801:21] billmgr INFO ses.auth.real(level): 30 = paymethod.filter, html, 0
    Jun 5 11:00:05 [11801:21] core_module INFO Request [178.155.72.96][root#admin(1)] 'func=paymethod.filter&operafake=1528185595836&sfr om=ajax'
    Jun 5 11:00:05 [11801:21] db EXTINFO Query: 'SELECT id, name FROM project WHERE account = 1 ORDER BY name'
    Jun 5 11:00:05 [11801:21] db EXTINFO Query: 'SELECT p.id, p.name FROM profile p JOIN account a ON a.id = p.account WHERE a.level = '29' ORDER BY p.name'
    Jun 5 11:00:05 [11801:21] db EXTINFO Query: 'SELECT id, name_ru FROM currency WHERE active = 'on''
    Jun 5 11:00:05 [11801:21] db EXTINFO Query: 'SELECT DISTINCT module FROM paymethod'
    Jun 5 11:00:05 [11801:21] core_decoration EXTINFO Sort slist 'module'
    Jun 5 11:00:05 [11801:21] core_decoration EXTINFO Sort slist 'status'
    Jun 5 11:00:05 [11801:21] db EXTINFO Query: 'SELECT * FROM autoreport WHERE user = '1' AND filter = '' AND action = 'paymethod''
    Jun 5 11:00:05 [11801:21] db EXTINFO Query: 'SELECT COUNT(*) FROM project WHERE theme LIKE '%client%''
    Jun 5 11:00:05 [11801:21] db EXTINFO commit transaction
    Jun 5 11:00:05 [11801:21] libmgr EXTINFO Thread aba6292abcaeb358 finished

  5. #5
    BILLmanager team
    Регистрация
    17.09.2010
    Сообщений
    8,501

    По умолчанию

    С виду XML корректный.
    Можете показать что выводит:
    /usr/local/mgr5/paymethods/pmqiwipull.php --command config

  6. #6
    Junior Member
    Регистрация
    24.05.2018
    Сообщений
    8

    По умолчанию

    Цитата Сообщение от Azcol Посмотреть сообщение
    С виду XML корректный.
    Можете показать что выводит:
    Вышеприведенная команда выдает следующее:

    <?xml version="1.0" encoding="UTF-8"?>
    <doc><feature><redirect>on</redirect><notneedprofile>on</notneedprofile><pmtune>on</pmtune><pmvalidate>on</pmvalidate><crvalidate>on</crvalidate><crset>on</crset><crdelete>on</crdelete></feature><param><payment_script>/mancgi/qiwipullpayment.php</payment_script></param></doc>

  7. #7
    Junior Member
    Регистрация
    24.05.2018
    Сообщений
    8

    По умолчанию

    Цитата Сообщение от PopovMaxim Посмотреть сообщение
    Вышеприведенная команда выдает следующее:
    Понял в чем проблема. Модуль ссылается на /mancgi/qiwipullpayment.php, у примере же этот скрипт находится в cgi, для теста создал директорию mancgi и переложил эти файлы в неё. Метод оплаты успешно запустился.

  8. #8
    BILLmanager team
    Регистрация
    17.09.2010
    Сообщений
    8,501

    По умолчанию

    mancgi адресуется веб серверов в cgi, из-за этого не должно возникать ошибки

  9. #9
    Junior Member
    Регистрация
    24.05.2018
    Сообщений
    8

    По умолчанию

    Цитата Сообщение от Azcol Посмотреть сообщение
    mancgi адресуется веб серверов в cgi, из-за этого не должно возникать ошибки
    Странно. Я поднял чистый сервер на CentOS7, установил туда демо версию биллинга и php. На этом манипуляции закончились.

  10. #10
    Junior Member
    Регистрация
    24.05.2018
    Сообщений
    8

    По умолчанию

    Все проблемы решены, спасибо. Тема закрыта.

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •