load->helper('dingtools'); $this->AppKey = 'dingjcbxgidah9uspeuc'; $this->AppSecret = 'C4-8rUDK1u5Twpsw7U3yo42s_bbYxFIqzLMp2j7uI80Sa8D-OPbtSoCMgZxHxo2d'; } public function index(){ echo json_encode(array('https://data.chinahighlights.com/pic/logo/logo-132x104.png','https://data.chinahighlights.com/image/homepage/holding-panda.jpg')); exit('前方高能!!!'); } public function sendApproval(){ header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:POST, GET'); header('Access-Control-Max-Age:0'); header('Access-Control-Allow-Headers:x-requested-with, Content-Type'); header('Access-Control-Allow-Credentials:true'); //接收数据 $img = $this->input->post('img'); $money = $this->input->post('money'); $postunionid = $this->input->post('postunionid'); $approvers = $this->input->post('approvers'); if(empty($postunionid)){ exit('参数错误'); } //获取access_token $access_url = 'https://oapi.dingtalk.com/gettoken?appkey='.$this->AppKey.'&appsecret='.$this->AppSecret; $access_token = GetPost_http($access_url,'',''); $access_token = json_decode($access_token)->access_token; $url = 'https://oapi.dingtalk.com/topapi/processinstance/create?access_token='.$access_token; $originator_user_id = $this->getuserid($postunionid); $dept_id = $this->getdeptid($originator_user_id); $approversid = $this->getuserid($approvers); $postData = array(); //表单code $postData['process_code'] = 'PROC-9D90693F-DE34-423C-9B92-A19FFFC87577'; //发起人id $postData['originator_user_id'] = $originator_user_id; //发起人部门id $postData['dept_id'] = $dept_id; //审批人id $postData['approvers'] = $approversid; $postData['form_component_values'] = array(); $postData['form_component_values']['0']['name'] = '报账金额'; $postData['form_component_values']['0']['value'] = $money; $postData['form_component_values']['1']['name'] = '附件'; $postData['form_component_values']['1']['value'] = json_decode($img); //print_r(json_encode($postData));die(); $approoval = GetPost_http($url,json_encode($postData),'json'); print_r($approoval); } public function sendRefund(){ //获取access_token $access_url = 'https://oapi.dingtalk.com/gettoken?appkey='.$this->AppKey.'&appsecret='.$this->AppSecret; $access_token = GetPost_http($access_url,'',''); $access_token = json_decode($access_token)->access_token; $url = 'https://oapi.dingtalk.com/topapi/processinstance/create?access_token='.$access_token; $postData = array(); $postData['process_code'] = 'PROC-95F150AE-A2A9-4B99-B2D6-C26F62EC1E06'; //发起人id $postData['originator_user_id'] = '103218225237808971'; //发起人部门id $postData['dept_id'] = '111848239'; //审批人id $postData['approvers'] = '011702444537734182'; $postData['form_component_values'] = array(); $postData['form_component_values']['0']['name'] = '退款金额'; $postData['form_component_values']['0']['value'] = 1000; $approoval = GetPost_http($url,json_encode($postData),'json'); print_r($approoval); } //获取用户id function getuserid($unionid){ if(empty($unionid)){ exit('参数为空'); }else{ $access_url = 'https://oapi.dingtalk.com/gettoken?appkey='.$this->AppKey.'&appsecret='.$this->AppSecret; $access_token = GetPost_http($access_url,'',''); $access_token = json_decode($access_token)->access_token; $listurl = 'https://oapi.dingtalk.com/user/getUseridByUnionid?access_token='.$access_token.'&unionid='.$unionid; $userlist = GetPost_http($listurl,'',''); $userid = json_decode($userlist)->userid; return $userid; } } //获取部门列表 function getdeptid($userid){ if(empty($userid)){ exit('参数错误'); }else{ $access_url = 'https://oapi.dingtalk.com/gettoken?appkey='.$this->AppKey.'&appsecret='.$this->AppSecret; $access_token = GetPost_http($access_url,'',''); $access_token = json_decode($access_token)->access_token; $detailurl = 'https://oapi.dingtalk.com/user/get?access_token='.$access_token.'&userid='.$userid; $userdetail = GetPost_http($detailurl,'',''); $departid = json_decode($userdetail)->department; return $departid['0']; } } //创建回调 public function registercallback(){ $access_url = 'https://oapi.dingtalk.com/gettoken?appkey='.$this->AppKey.'&appsecret='.$this->AppSecret; $access_token = GetPost_http($access_url,'',''); $access_token = json_decode($access_token)->access_token; //ca4f05c2ab663cd2a65f2c50366bf8a9 $callback_url = 'https://oapi.dingtalk.com/call_back/register_call_back?access_token='.$access_token; $post_data = array(); $post_data['call_back_tag'] = ['bpms_task_change','bpms_instance_change']; $post_data['token'] = '123456'; $post_data['aes_key'] = 'abcdefgABCDEFG0123456789hHiIjJKkLlMmnNOpQrs'; $post_data['url'] = 'http://www.mycht.cn/webht.php/apps/dingtools/index/recivecallback'; $register = GetPost_http($callback_url,json_encode($post_data),'json'); print_r($register); } public function recivecallback(){ $recivejson = file_get_contents('php://input'); log_message('error','dingding回调:'.$recivejson); log_message('error','signature:'.$_GET['signature']); log_message('error','timestamp:'.$_GET['timestamp']); log_message('error','nonce:'.$_GET['nonce']); log_message('error','get:'.$_GET); } }