/*****=======================================对接金蝶需要用到的方法==========================================================******/
/**
* 利用curl函数来获取接口数据
* @param $url
* @param $post_content
* @param $cookie_jar
* @param $isLogin
* @return bool|string
*/
function invoke_post($url,$post_content,$cookie_jar,$isLogin)
{
$ch = curl_init($url);
$this_header = array(
'Content-Type: application/json',
'Content-Length: '.strlen($post_content)
);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $this_header);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_content);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if($isLogin){
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
}
else{
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);
}
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
//构造Web API请求格式
function create_postdata($args) {
$postdata = array(
'format'=>1,
'useragent'=>'ApiClient',
'rid'=>create_guid(),
'parameters'=>$args,
'timestamp'=>date('Y-m-d'),
'v'=>'1.0'
);
return json_encode($postdata);
}
//生成guid
function create_guid() {
$charid = strtoupper(md5(uniqid(mt_rand(), true)));
$hyphen = chr(45);// "-"
$uuid = chr(123)// "{"
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"
return $uuid;
}
//登陆
function invoke_login($cloudUrl,$post_content,$cookie_jar)
{
$loginurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc';
return invoke_post($loginurl,$post_content,$cookie_jar,TRUE);
}
//保存
function invoke_save($cloudUrl,$post_content,$cookie_jar)
{
$invokeurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc';
return invoke_post($invokeurl,$post_content,$cookie_jar,FALSE);
}
//审核
function invoke_audit($cloudUrl,$post_content,$cookie_jar)
{
$invokeurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc';
return invoke_post($invokeurl,$post_content,$cookie_jar,FALSE);
}
//查看
function invoke_view($cloudUrl,$post_content,$cookie_jar)
{
$invokeurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.View.common.kdsvc';
return invoke_post($invokeurl,$post_content,$cookie_jar,FALSE);
}
//查询
function GetSysReportData($cloudUrl,$post_content,$cookie_jar)
{
$invokeurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.GetSysReportData.common.kdsvc';
return invoke_post($invokeurl,$post_content,$cookie_jar,FALSE);
}
//查询订单ExecuteBillQuery
function ExecuteBillQuery($cloudUrl,$post_content,$cookie_jar)
{
$invokeurl = $cloudUrl.'Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc';
return invoke_post($invokeurl,$post_content,$cookie_jar,FALSE);
}
/*****************************************对接金蝶的方法结束************************************************************/
protected $model = null;
protected $login = array('','','',2052);
protected $cloudUrl = 'http://****/k3cloud/';
$cookie_jar = tempnam('./tmp','CloudSession');//保存登录后的session
$post_content = create_postdata($this->login);
/*返回登录信息如果 LoginResultType == 1 说明登录成功*/
$result = json_decode(invoke_login($this->cloudUrl,$post_content,$cookie_jar),true);
/*判断成功之后在进行其他操作*/
if($result['LoginResultType'] == 1){
/在这里面进行金蝶报表的生成操作/
$data_model_month = "{
'FieldKeys': 'FDEPARTMENTID,FEMPLOYEEID,FREALSETTIME,FREALPROCESSTIME',
'SchemeId': '',
'StartRow': 0,
'Limit': 9999,
'IsVerifyBaseDataField': 'true',
'Model': {
'FProcessOrgId': {
'FNumber': '100'
},
'FBeginDate': '$firstday',
'FEndDate': '$nowdatetime',
'FTimeUnit': 'B'
}
}";
$kingdee_info_month = array(
'SFC_OperationReportRpt',//业务对象标识FormId
$data_model_month//具体Json字串
);
$post_content_month = create_postdata($kingdee_info_month);
$res_month = json_decode(GetSysReportData($this->cloudUrl,$post_content_month,$cookie_jar),true);
$res_month = $res_month['Result']['Rows'];
}