我正在尝试使用 PHP 中的 XMLRPC 在 Magneto 中创建一个用户。直接从页面调用时调用成功,但是,如果我在函数中放置相同的调用,则根本不会发生。有任何想法吗?
直接在页面上编码:[工作完美]
<?php
require 'Zend/XmlRpc/Client.php';
$client = new Zend_XmlRpc_Client('myclient.com/api/xmlrpc/');
$session = $client->call('login', array('myuser', 'mypass'));
$new_customer = array('email' => 'nasr@di91.com','firstname' => 'Nair','lastname' => 'Perwaiz','password' => '123456','website_id' => 1,'store_id' => 1,'group_id' => 1);
$zendSpecificArray =array(Zend_XmlRpc_Value::getXmlRpcValue($new_customer,Zend_XmlRpc_Value::XMLRPC_TYPE_STRUCT));
$rArray = array($session,'customer.create',$zendSpecificArray);
$new_customer_id = $client->call('call',$rArray);
$rtnval='<?xml version="1.0"?>'.PHP_EOL;
$rtnval.='<root>'.PHP_EOL;
$rtnval.='<result>'.'Customer created with ID :'.$new_customer_id .'</result>'.PHP_EOL;
$rtnval.='</root>'.PHP_EOL;
$client->endSession($session);
header('Content-Type:','Application/xml');
echo $rtnval;
?>
函数内的代码:[未收到输出]
function registerUser($email,$firstname,$lastname,$password)
{
$client = new Zend_XmlRpc_Client('myclient.com/api/xmlrpc/');
$session = $client->call('login', array('myuser', 'mypass'));
$new_customer = array('email' => $email,'firstname' => $firstname,'lastname' => $lastname, 'password' => $password,'website_id' => 1,'store_id' => 1,'group_id' => 1);
$zendSpecificArray =array(Zend_XmlRpc_Value::getXmlRpcValue($new_customer,Zend_XmlRpc_Value::XMLRPC_TYPE_STRUCT));
$rArray = array($session,'customer.create',$zendSpecificArray);
$new_customer_id = $client->call('call',$rArray);
$rtnval='<?xml version="1.0"?>'.PHP_EOL;
$rtnval.='<root>'.PHP_EOL;
$rtnval.='<result>'.'Customer created with ID :'.$new_customer_id .'</result>'.PHP_EOL;
$rtnval.='</root>'.PHP_EOL;
$client->endSession($session);
header('Content-Type:','Application/xml');
echo $rtnval;
}
称呼 :http://localhost/xxx/rpcclient/rpc.php?methodname=registeruser&em=uuuy@gmail.com&f=ab&l=ty&p=kaddoo