<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        tp5利用釘釘進行工作流審批

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-03 12:31:34
        文檔

        tp5利用釘釘進行工作流審批

        tp5利用釘釘進行工作流審批:在各類管理平臺的開發(fā)過程中,審批是一個沒法規(guī)避的問題。審批問題,不僅僅要考慮技術(shù)實現(xiàn),還要考慮用戶的使用頻率,易用性。如果使用軟件的公司利用釘釘進行審批考核,管理系統(tǒng)的審批完全可以考慮接入直接釘釘。話不多說,直接進入實現(xiàn)過程。釘釘權(quán)限設(shè)置創(chuàng)
        推薦度:
        導(dǎo)讀tp5利用釘釘進行工作流審批:在各類管理平臺的開發(fā)過程中,審批是一個沒法規(guī)避的問題。審批問題,不僅僅要考慮技術(shù)實現(xiàn),還要考慮用戶的使用頻率,易用性。如果使用軟件的公司利用釘釘進行審批考核,管理系統(tǒng)的審批完全可以考慮接入直接釘釘。話不多說,直接進入實現(xiàn)過程。釘釘權(quán)限設(shè)置創(chuàng)
        在各類管理平臺的開發(fā)過程中,審批是一個沒法規(guī)避的問題。審批問題,不僅僅要考慮技術(shù)實現(xiàn),還要考慮用戶的使用頻率,易用性。如果使用軟件的公司利用釘釘進行審批考核,管理系統(tǒng)的審批完全可以考慮接入直接釘釘。話不多說,直接進入實現(xiàn)過程。

        釘釘權(quán)限設(shè)置

        創(chuàng)建應(yīng)用,如果不是做外包業(yè)務(wù),選擇企業(yè)內(nèi)部開發(fā)即可,選擇小程序按步驟填寫

        1588814536(1).png1588814573(1).png

        值得注意的是,要填寫合法的ip地址作為服務(wù)地址,該地址會在你的post請求和回調(diào)請求中使用到

        1588814635(1).png

        創(chuàng)建成功后,可以需要設(shè)置安全域名,開通需要的接口權(quán)限,釘釘包含微應(yīng)用的高級權(quán)限,看你開發(fā)需求選取,就不贅述了。

        1588814662(1).png

        ACCESS_TOKEN的獲取

        在你的小程序創(chuàng)建完成后,可以查看到AppKey和AppSecret,利用curl的get請求,我們可以輕松獲取到ACCESS_TOKEN。ACCESS_TOKEN有效時間為7200秒,可以做用服務(wù)器緩存,減少重復(fù)請求。

         /**
         * 釘釘access_token獲取
         * @param 
         * @return access_token
         */
         public static function getAccessToken(){
         if(empty(cache('dd_access_token'))){
         $AppKey = config('ding_app_key');
         $AppSecret = config('ding_app_secret');
         $url = "https://oapi.dingtalk.com/gettoken?appkey=".$AppKey."&appsecret=".$AppSecret;
         $re = file_get_contents($url);
         $obj=json_decode($re);
         //dump($obj);
         $access_token = $obj->access_token;
         cache('dd_access_token', $access_token,7200);
         }else{
         $access_token = cache('dd_access_token');
         }
         return $access_token;
         }

        發(fā)起審批

        審批流發(fā)起前,我們需要先到釘釘工作臺創(chuàng)建新審批

        1588755604(1).png

        審批內(nèi)容按照流程提示完成填寫表單,填寫審批過程即可,這一過程,也可以依靠釘釘?shù)拈_發(fā)接口,直接完成,有需要的朋友可以查看釘釘開發(fā)文檔學(xué)習(xí)。創(chuàng)建完成后,你可以在url內(nèi)獲取到該審批的processCode和corpId這兩個關(guān)鍵信息,用于審批的后臺操作。

        1588757630(1).png

        創(chuàng)建釘釘審批的post請求如下,

         public function index()
         {
         $access_token = ApiService::getAccessToken();
         //通過審批創(chuàng)建的url獲得
         $data['process_code'] = 'PROC-VFYJYF2V-84X3UYTT455XP7KENI603-0EWMMGTJ-I';
         $data['originator_user_id'] = '093208556229304103';
         //部門id
         $data['dept_id'] = '105672100';
         $form_component_values=array();
         $form_component_values[]=['name'=>'單行輸入框','value'=>'123']
         $form_component_values[]=['name'=>['開始時間','結(jié)束時間'],'value'=>['2019-02-19','2019-02-25']];
         $form_component_values[]=['name'=>'圖片','value'=>['http://pic.58pic.com/58pic/15/68/59/71X58PICNjx_1024.jpg','http://img.juimg.com/tuku/yulantu/140218/330598-14021R23A410.jpg']];
         $data['form_component_values'] = $form_component_values;
         $data= json_encode($data);
         $timeout = 5000;
         $http_header = [
         'Content-Type: application/json;'
         ];
         $ch = curl_init();
         curl_setopt ($ch, CURLOPT_URL, $token);
         curl_setopt ($ch, CURLOPT_POST, 1);
         curl_setopt ($ch, CURLOPT_POSTFIELDS, $data);
         curl_setopt ($ch, CURLOPT_HEADER, false);
         curl_setopt ($ch, CURLOPT_HTTPHEADER,$http_header);
         curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER,false);
         curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
         curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
         $result = curl_exec($ch);
         if (false === $result) {
         $result = curl_errno($ch);
         }
         curl_close($ch);
         return $result;
         }

        表單(form_component_values)注意

        表單控件采用key/value的形式,其中key是每個控件對應(yīng)的名字,value可以是普通字符串,也可以是json字符串。http_header選擇'Content-Type: application/json;'當(dāng)你需要填寫部門的時候,可以使用釘釘自帶的部門下拉組件,傳值傳部門id(dept_id)即可,可以利用獲取部門id接口獲取

        回調(diào)變更

        配置和編寫回調(diào)接口,是實現(xiàn)本地數(shù)據(jù)和釘釘審批數(shù)據(jù)同步的重要方法。必須要通過回到注冊才能使用。注冊事件回調(diào)接口的時候,釘釘服務(wù)器會向您“注冊回調(diào)接口”時候設(shè)置的url(接收回調(diào)的url)發(fā)起POST請求,用來測試url的合法性。收到消息后,需要返回經(jīng)過加密后的字符串“success”的json數(shù)據(jù),否則釘釘服務(wù)器將認(rèn)為url不合法,居然實現(xiàn)在后面會提到。

         /**
         * 注冊回調(diào)
         * 
         * @param 
         * @return 
         */
         public static function register_call_back(){
         $token = config('ding_token');
         $aes_key = config('ding_aes_key');
         //獲取access_token
         $token = self::getAccessToken();
         //注冊url
         $url = "https://oapi.dingtalk.com/call_back/register_call_back?access_token=".$token;
         // call_back_tag:需要注冊的內(nèi)容
         // token:加解密需要用到的token,自定義
         // aes_key:數(shù)據(jù)加密密鑰。用于回調(diào)數(shù)據(jù)的加密,長度固定為43個字符,從a-z, A-Z, 0-9共62個字符中選取,您可以隨機生成
         // url:你本地的回調(diào)地址,必須是可以外網(wǎng)訪問
         $data = array('call_back_tag'=>['bpms_task_change','bpms_instance_change'],'token'=> $token,'aes_key'=> $aes_key,'url'=>config('ding_callback'));
         return self::curl_post($url,$data);
         } 
        類似的,你還可以進行回調(diào)地址注冊的查詢和內(nèi)容
         /**
         * 查詢回調(diào)
         * 
         * @param 
         * @return 
         */
         public static function get_call_back(){
         $token = self::getAccessToken();
         $url = "https://oapi.dingtalk.com/call_back/get_call_back?access_token=".$token;
         $re = file_get_contents($url);
         return $re;
         } 
         /**
         * 更新回調(diào)
         * 
         * @param 
         * @return 
         */
         public static function update_call_back(){
         $token = self::getAccessToken();
         $url = "https://oapi.dingtalk.com/call_back/update_call_back?access_token=".$token;
         $data = array('call_back_tag'=>['bpms_instance_change'],'token'=>'123456','aes_key'=>'lfqrojwt31jnvdb5li2arj0f1qz4g8g6eqw45swgyak','url'=>config('ding_callback'));
         return self::curl_post($url,$data);
         }

        在完成注冊后,釘釘就回會在審批的過程事件中訪問我們設(shè)置的url地址,后臺開發(fā)者可以通過解析過濾推送過來的內(nèi)容完成本地服務(wù)器審批數(shù)據(jù)同步。

        解析數(shù)據(jù)過程,需要用到加解密庫,釘釘官方提供下載地址如下https://github.com/injekt/openapi-demo-php/tree/master/isv/crypto

        回調(diào)地址實現(xiàn)

         public function callback(){
         //token和aes_key就是你注冊地址的時填寫的內(nèi)容
         $token = config('ding_token');
         $aes_key = config('ding_aes_key');
         //suite_key在內(nèi)部應(yīng)用使用CorpId即可,官方文檔沒有明確說明
         $suite_key = config('ding_suite_key');
         $signature = $_GET["signature"];
         $timeStamp = $_GET["timestamp"];
         $nonce = $_GET["nonce"];
         $postdata = file_get_contents("php://input");
         $postList = json_decode($postdata,true);
         $encrypt = $postList['encrypt'];
         //使用官方提供的加解密
         $crypt = new DingtalkCrypt();
         $crypt->DingtalkCrypt($token, $aes_key, $suite_key);
         $msg = "";
         $errCode = $crypt->DecryptMsg($signature, $timeStamp, $nonce, $encrypt, $msg);
         if ($errCode != 0){
         }else{
         /**
         * 創(chuàng)建成功后的回調(diào)推送
         */
         $eventMsg = json_decode($msg);
         $eventType = $eventMsg->EventType;
         /**
         * 工作流變動
         */
         if("bpms_instance_change" === $eventType){
         /**
         * 編寫你需要的內(nèi)容
         */ 
         } 
         $res = "success";
         $encryptMsg = "";
         $errCode = $crypt->EncryptMsg($res, $timeStamp, $nonce, $encryptMsg);
         if ($errCode == 0){
         echo $encryptMsg;
         } 
         }
         }

        接受到釘釘?shù)姆祷財?shù)據(jù)如下:

        1588816992(1).png

        encrypt即為加密過的內(nèi)容。

        總結(jié)

        通過此類方式,我們可以容易的完成數(shù)據(jù)和釘釘?shù)耐健a斸斶€提供的很多其他的人員管理,考勤等功能,有興趣的可以瀏覽官方是文檔學(xué)習(xí),值得一提的是官方的文檔對很多功能的接口二次開發(fā)的具體實現(xiàn)沒有說明的很清楚,但是在附錄中提供了sdk,需要的朋友可以下載學(xué)習(xí)使用。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        tp5利用釘釘進行工作流審批

        tp5利用釘釘進行工作流審批:在各類管理平臺的開發(fā)過程中,審批是一個沒法規(guī)避的問題。審批問題,不僅僅要考慮技術(shù)實現(xiàn),還要考慮用戶的使用頻率,易用性。如果使用軟件的公司利用釘釘進行審批考核,管理系統(tǒng)的審批完全可以考慮接入直接釘釘。話不多說,直接進入實現(xiàn)過程。釘釘權(quán)限設(shè)置創(chuàng)
        推薦度:
        標(biāo)簽: 利用 工作 釘釘
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲首页国产精品丝袜| 亚洲系列国产精品制服丝袜第| 亚洲国产无线乱码在线观看 | 8x成人永久免费视频| 亚洲日本va中文字幕久久| 一本一道dvd在线观看免费视频 | 久久亚洲精精品中文字幕| 中文字幕免费不卡二区| 国产成人免费a在线资源| 无码一区二区三区亚洲人妻| 国产区卡一卡二卡三乱码免费| 免费国产草莓视频在线观看黄| 亚洲中文字幕无码专区| 三年片在线观看免费观看大全动漫| 久久亚洲日韩精品一区二区三区| 最近最新高清免费中文字幕| 一本色道久久88—综合亚洲精品| 日本不卡在线观看免费v| 一级毛片aa高清免费观看| 国产成人精品日本亚洲网站| 91免费在线播放| 亚洲精品国产综合久久久久紧| 免费大黄网站在线观看| 97人妻精品全国免费视频 | 免费人成视网站在线观看不卡| 中国毛片免费观看| 91亚洲精品麻豆| 少妇亚洲免费精品| 免费无码又爽又刺激高潮视频| 亚洲精品理论电影在线观看| 中文字幕无码精品亚洲资源网| 67pao强力打造高清免费| 亚洲av成人一区二区三区在线播放| 亚洲人成网77777亚洲色| 色窝窝免费一区二区三区| 日本激情猛烈在线看免费观看| 亚洲无线电影官网| 免费看国产一级片| xxxxx免费视频| 国产黄色片免费看| 亚洲永久网址在线观看|