You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/webht/third_party/dingtools/controllers/index.php

148 lines
5.7 KiB
PHTML

<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class index extends CI_Controller {
function __construct() {
parent::__construct();
$this->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'];
}
}
6 years ago
//创建回调
6 years ago
public function registercallback(){
$access_url = 'https://oapi.dingtalk.com/gettoken?appkey='.$this->AppKey.'&appsecret='.$this->AppSecret;
6 years ago
$access_token = GetPost_http($access_url,'','');
$access_token = json_decode($access_token)->access_token;
6 years ago
//ca4f05c2ab663cd2a65f2c50366bf8a9
$callback_url = 'https://oapi.dingtalk.com/call_back/register_call_back?access_token='.$access_token;
6 years ago
$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/dingdingcallback/receive.php';
6 years ago
$register = GetPost_http($callback_url,json_encode($post_data),'json');
print_r($register);
}
6 years ago
public function recivecallback(){
/*$recivejson = file_get_contents('php://input');
$encrypt = json_decode($recivejson)->encrypt;
$signature = $_GET['signature'];
$timestamp = $_GET['timestamp'];
$nonce = $_GET['nonce'];
log_message('error','dingding回调'.$recivejson);
6 years ago
log_message('error','signature'.$_GET['signature']);
log_message('error','timestamp'.$_GET['timestamp']);
log_message('error','nonce'.$_GET['nonce']);*/
6 years ago
}
}