Как показать возвращаемые значения для вызова PHP XML -RP C? - PullRequest
0 голосов
/ 20 апреля 2020

Я не могу найти какой-либо код для отображения возвращаемых значений из вызова.

Я запускаю xml -lib от поставщика программного обеспечения по следующей ссылке

https://support.sippysoft.com/support/solutions/articles/3000013653-xml-rpc-api-sign-up-html-page-fresh-version-

<?php

include 'xmlrpc/xmlrpc.inc';


function listAccounts()
{
   //$params = array(new xmlrpcval(array("i_account"=> new xmlrpcval('14719', "string")), 'struct'));

    $msg = new xmlrpcmsg('listAccounts');

    /* replace here URL  and credentials to access to the API */
    $cli = new xmlrpc_client('https://DOMAINHERE/xmlapi/xmlapi');
    $cli->setSSLVerifyPeer(false);
    $cli->setSSLVerifyHost(false);
    $cli->setCredentials('USERNAME', 'PASSWORD', CURLAUTH_DIGEST);

    $r = $cli->send($msg, 20);
    if ($r->faultCode()) {
      error_log("Fault. Code: " . $r->faultCode() . ", Reason: " . $r->faultString());
      print_r ($r->faultString());
      return false;
    }
    else
    {
    return $r->value();

    // I need something here to write returned values to normal PHP variable

    }
}

1 Ответ

0 голосов
/ 22 апреля 2020

Хорошо, благодаря комментарию от Halfer.

Мне удалось выяснить проблему, и, покопавшись в коде библиотеки, я нашел функцию, которая добивается цели.

Спасибо за миллион за Ваш указатель это действительно помогло.

Я новичок в php и xml, и кривая обучения довольно высокая, но спасибо.

за кого-то еще, может быть, в будущем вот исправил код с двумя последними строками, которые делают магию c для меня.

<?php
include 'xmlrpc/xmlrpc.inc';


        // $params = array(new xmlrpcval(array("offset"=> new xmlrpcval("1", "int")
        //                                ,"i_customer"=> new xmlrpcval("321", "int")
        //                                 ), 'struct'));

       $params = array(new xmlrpcval(array("i_customer"=> new xmlrpcval("321", "int")

                                           ), 'struct'));

       $msg = new xmlrpcmsg('listAccounts', $params);

       /* replace here URL  and credentials to access to the API */
       $cli = new xmlrpc_client('DOMAIN');
       $cli->setSSLVerifyPeer(false);
       $cli->setdebug(0);
       $r = $cli->send($msg, 20);       /* 20 seconds timeout */

       if ($r->faultCode()) {
         error_log("Fault. Code: " . $r->faultCode() . ", Reason: " . $r->faultString());
         echo $r->faultString();
       }

       // now lets decode the xml response..
        $values=php_xmlrpc_decode($r->value());
        var_dump ($values['accounts'][0][username]);

?>
...