WSDL文件位于:http://www.rasd.ro/BSEFinancialsWS/financials.asmx?WSDL 这是操作页面:http://www.rasd.ro/BSEFinancialsWS/financials.asmx?op=GetCompanyBalance
对于 IdentityType ,请尝试符号
对于身份,请尝试 BVB
对于 ReportType ,请尝试 Q1
年度尝试 2011
基本上,你会得到的是:
> <CompanyBalance>
> <Company>
> <CompanyName>SC BURSA DE VALORI BUCURESTI SA</CompanyName>
> <FiscalCode>17777754</FiscalCode>
> </Company>
> <LastYear>2011</LastYear>
> <ReportType>Q1</ReportType>
> <NetCrtLiab>64931998</NetCrtLiab>
> <CrtAssets>67220118</CrtAssets>
> <FixedAssets>25299375</FixedAssets>
> <PaidUpCap>76741980</PaidUpCap>
> <ShahEqy>90231373</ShahEqy>
> <OpExp>2975724</OpExp>
> <ExtrExp>0</ExtrExp>
> <FinExp>1411570</FinExp>
> <TotExp>4387294</TotExp>
> <NetTurn>5977651</NetTurn>
> <Debt1>0</Debt1>
> <Debt2>2086920</Debt2>
> <TotLiab>2086920</TotLiab>
> <BackPay>0</BackPay>
> <NoPaidTax>0</NoPaidTax>
> <Empl>57</Empl> <BackLiab>0</BackLiab>
> <BackPaym>0</BackPaym>
> <Gross>2624119</Gross>
> <OpRes>3002199</OpRes>
> <ExtrRes>0</ExtrRes>
> <FinRes>-378080</FinRes>
> <NetRes>2196413</NetRes>
> <CurrRes>2624119</CurrRes>
> <ResPerShare xsi:nil="true"/>
> <TotAssets>90231373</TotAssets>
> <TotReceiv>3368756</TotReceiv>
> <RevInAdv>584055</RevInAdv>
> <OpIncome>5977923</OpIncome>
> <ExIncome>0</ExIncome>
> <FinInc>1033490</FinInc>
> <TotRev>**7011413**</TotRev>
> </CompanyBalance>
注意 TotRev 值?好吧,它应该是s exactly how it
。
现在,在我的SoapClient实现中,我有:
...
static $WSConf=array(
'financials'=>array('host'=>'rasd.ro','port'=>80,'wsdlURL'=>'http://www.rasd.ro/BSEFinancialsWS/financials.asmx?WSDL'),
'companies'=>array('host'=>'rasd.ro','port'=>80,'wsdlURL'=>'http://www.rasd.ro/BSEFinancialsWS/companiesandsecurities.asmx?WSDL'),);
...
private static function S($name) {
$name=strtolower($name);
if(!is_object(self::$soapClients[$name])) {
self::$soapClients[$name] = new SoapClient(self::$WSConf[$name]['wsdlURL']);
}
if(is_object(self::$soapClients[$name])) {
self::Delay();
return self::$soapClients[$name];
}
error_log('site.ro '.__FILE__.' error'."\n\n".__FILE__.': '.__CLASS___.'::'.__METHOD__."\n\n msc_WebServBVB2 ".date('Y-M-d H:i:s')."\nCannot init webservice {$name}", 3, WSBVBExtLOG);
}
...
public static function RaportareFinanciara($simbol,$timestampOrAn,$trimestru=false){
self::timerReset();
if(empty($trimestru)) {
$trimestru=utilsDT::Quarter($timestampOrAn);
$an=date('Y',$timestampOrAn);
}else{
$an=$timestampOrAn;
}
$IdentityType='Symbol';
$Identity=$simbol;
$Year=$an;
$ReportType=strtr($trimestru,array('1'=>'Q1','2'=>'Semestrial','3'=>'Q3','4'=>'Annual'));
$balanceType=self::GetBalanceType($IdentityType,$Identity,$ReportType,$Year);
$type=$balanceType['BalanceType'];
if(!empty($type)) {
switch($type) {
case 'Company':
$balance=self::GetCompanyBalance($IdentityType,$Identity,$ReportType,$Year);
break;
case 'Bank':
$balance=self::GetBankBalance($IdentityType,$Identity,$ReportType,$Year);
break;
case 'Assurance':
$balance=self::GetInsuranceBalance($IdentityType,$Identity,$ReportType,$Year);
break;
case 'Fund':
$balance=self::GetInvestmentFundsBalance($IdentityType,$Identity,$ReportType,$Year);
break;
default:
return false;
}
if(!empty($balance)) {
if(self::$debug) {
self::timerAddAction("Mapping balance fields to compatibility names for ".strtolower($type));
}
if(isset(self::$BVBROAPI_FldCorespCustom[strtolower($type)])) {
$FldCoresp=array_merge(self::$BVBROAPI_FldCoresp,self::$BVBROAPI_FldCorespCustom[strtolower($type)]);
}else{
$FldCoresp=self::$BVBROAPI_FldCoresp;
}
if(self::$debug) {
print_r($FldCoresp);
}
$result=array();
foreach($FldCoresp as $compat_name=>$wsname) {
if(isset($balance[$wsname])) {
$result[$compat_name]=$balance[$wsname];
}
}
$result['BallanceType']=$type;
if(!empty($result)) {
if(self::$debug) {
self::timerPrintInfo();
}
return $result;
}
}
if(self::$debug) {
self::timerAddAction("Balance empty");
}
}
if(self::$debug) {
self::timerPrintInfo();
}
return false;
}
...
公共静态函数GetCompanyBalance($ IdentityType,$ Identity,$ ReportType,$ Year){ 自:: timerReset();
if(self::$debug) {
self::timerAddAction("Called GetCompanyBalance ($IdentityType,$Identity,$ReportType,$Year) Method");
}
$cacheid='webservbvbext_balance'.$IdentityType.$Identity.$ReportType.$Year;
if(self::$debug) {
self::timerAddAction("Checking cache");
}
if(self::CM()->cacheIsExpired($cacheid)) {
if(self::$debug) {
self::timerAddAction("Calling webservice Method");
}
try{
$rawresult=self::S('Financials')->GetCompanyBalance(array('IdentityType'=>$IdentityType,'Identity'=>$Identity,'ReportType'=>$ReportType,'Year'=>$Year));
} catch (Exception $e) {
if(self::$debug) {
self::timerAddAction('Caught exception: ', $e->getMessage());
}
return false;
}
if(self::$debug) {
echo '<pre>';
print_r($rawresult);
echo '</pre>';
}
if(self::$debug) {
self::timerAddAction("Mapping array fields");
}
if(!empty($rawresult) && sizeof($rawresult)>=1) {
$fields=array();
foreach($rawresult->GetCompanyBalanceResult as $key=>$Field) {
$Field=(is_object($Field) ? (array) $Field : $Field);
$fields[$key]=$Field;
}
if($fields['LastYear']!=$Year || $fields['ReportType']!=$ReportType) {
return false;
}
if(self::$debug) {
self::timerAddAction("Caching results");
}
self::CM()->cacheThis($cacheid,'',self::$cacheTime['Ballance'],$fields,true);
if(self::$debug) {
self::timerAddAction("Finished caching. Return data");
}
if(self::$debug) {
self::timerPrintInfo();
}
if(!empty($fields)) {
return $fields;
}
}
return false;
}else{
$out=self::CM()->getCached($cacheid);
if(is_array($out) && !empty($out)) {
if(self::$debug) {
self::timerAddAction("Cached Request Details: ".date('Y.m.d H:i:s',self::CM()->cacheTimeStmp($cacheid)));
self::timerPrintInfo();
}
return $out;
}
return false;
}
...
所以运行这样的事情:
$result=msc_WebServBVBExt::GetCompanyBalance('Symbol','BVB','Q1',2011);
echo "<pre>";
print_r($result);
echo "</pre>";
返回:
Array
( [公司] =&gt;排列 ( [CompanyName] =&gt; SC BURSA DE VALORI BUCURESTI SA [FiscalCode] =&gt; 17777754 )
[LastYear] => 2011
[ReportType] => Q1
[NetCrtLiab] => 6493199800
[CrtAssets] => 6722011800
[FixedAssets] => 2529937500
[PaidUpCap] => 7674198000
[ShahEqy] => 9023137300
[OpExp] => 297572400
[ExtrExp] => 0
[FinExp] => 141157000
[TotExp] => 438729400
[NetTurn] => 597765100
[Debt1] => 0
[Debt2] => 208692000
[TotLiab] => 208692000
[BackPay] => 0
[NoPaidTax] => 0
[Empl] => 57
[BackLiab] => 0
[BackPaym] => 0
[Gross] => 262411900
[OpRes] => 300219900
[ExtrRes] => 0
[FinRes] => -37808000
[NetRes] => 219641300
[CurrRes] => 262411900
[ResPerShare] =>
[TotAssets] => 9023137300
[TotReceiv] => 336875600
[RevInAdv] => 58405500
[OpIncome] => 597792300
[ExIncome] => 0
[FinInc] => 103349000
**[TotRev] => 701141300**
)
}
从最后一个值开始注意到,它在值的末尾附加了2个零。 有什么想法吗?
答案 0 :(得分:1)
也许这个价值应该是美元和美分。许多金融系统旨在以整数格式存储货币,以整数形式存储,以美元或密尔为单位反对美元。