瀏覽代碼

接口对接

cqpCow 9 月之前
父節點
當前提交
3e892ead7f

+ 11 - 0
app/Http/Controllers/Api/JRFIDController.php

@@ -61,6 +61,17 @@ class JRFIDController extends BaseController
         }
     }
 
+    public function getPrintData2(Request $request){
+        list($bool, $data) = (new JRFIDServerService())->getPrintData2($request->all());
+
+        if($bool){
+            return $this->json_return(200,'',$data);
+        }else{
+            if($bool === 0) return $this->json_return(401,$data);
+            return $this->json_return(201,$data);
+        }
+    }
+
     public function getTeam(Request $request){
         list($bool, $data) = (new JRFIDServerService())->getTeam($request->all(),$request->common_param);
 

+ 93 - 0
app/Http/Controllers/WeixinController.php

@@ -0,0 +1,93 @@
+<?php
+
+namespace App\Http\Controllers\Api;
+
+use App\Service\Weixin\WeixinService;
+use App\Service\Weixin\WxEmployeeService;
+use Illuminate\Http\Request;
+
+class WeixinController extends BaseController
+{
+    //开发者密码:
+    /**
+     * 用于微信token验证,全部通用,前提token都为qingyao
+     * @param Request $request
+     * @return void
+     */
+    public function weixin(Request $request)
+    {
+        file_put_contents('1.txt',json_encode($request->all()));
+
+        $data = $request->all();
+        $signature = $data["signature"];
+        $timestamp = $data["timestamp"];
+        $nonce = $data["nonce"];
+
+        $token = 'qingyao';
+        $tmpArr = array($token, $timestamp, $nonce);
+        sort($tmpArr, SORT_STRING);
+        $tmpStr = implode( $tmpArr );
+        $tmpStr = sha1( $tmpStr );
+
+        if( $tmpStr == $signature ){
+            echo $data['echostr'];die;
+        }else{
+            die('fail');
+        }
+    }
+
+    public function setWebHook(Request $request){
+        $service = new WeixinService();
+        list($status,$msg) = $service->setWebHook($request->all());
+        return $this->json_return($status,$msg,'');
+    }
+
+    /**
+     * 重定向获取unionid
+     * @param Request $request
+     * @return void
+     */
+    public function getUnionid(Request $request){
+        $service = new WeixinService();
+        $res = $service->getUnionid($request->all());
+    }
+
+    /**
+     * 获取openid
+     * @param Request $request
+     * @return void
+     */
+    public function getOpenid(Request $request){
+        $service = new WeixinService();
+        list($status,$data) = $service->getOpenid($request->all());
+        if ($status) {
+            return $this->json_return(200, '', $data);
+        } else {
+            return $this->json_return(201, $data);
+        }
+    }
+
+    public function setUser(Request $request)
+    {
+        $service = new WxEmployeeService();
+        list($status, $data) = $service->setUser($request->all());
+
+        if ($status) {
+            return $this->json_return(200, '', $data);
+        } else {
+            return $this->json_return(201, $data);
+        }
+    }
+
+    public function login(Request $request)
+    {
+        $service = new WxEmployeeService();
+        list($status, $data) = $service->login($request->all(),$request->header('ciphertext'));
+
+        if ($status) {
+            return $this->json_return(200, '', $data);
+        } else {
+            return $this->json_return(201, $data);
+        }
+    }
+}

+ 33 - 0
app/Http/Middleware/CheckWeinxin.php

@@ -0,0 +1,33 @@
+<?php
+
+namespace App\Http\Middleware;
+
+use Closure;
+use Illuminate\Http\Request;
+
+class CheckWeinxin
+{
+    /**
+     * Handle an incoming request.
+     *
+     * @param  Request  $request
+     * @param Closure $next
+     * @return mixed
+     */
+    public function handle($request, Closure $next)
+    {
+//        $token = $request->header('ciphertext');
+//        if (empty($token)) return response()->json(['code'=>401,'msg'=>'缺少openid','data'=>null]);
+
+        $token = $request->header('Authorization');
+//        if(empty($token)) return response()->json(['code'=>401,'msg'=>'缺少登录凭证','data'=>null]);
+
+        if(strpos($token, "Bearer ") === false) $token = "Bearer " . $token;
+        $data['token'] = $token;
+        $data['header'] = ["Authorization: {$token}",'Content-Type:application/json'];
+
+        $request->common_param = $data;
+
+        return $next($request);
+    }
+}

+ 41 - 0
app/Service/JRFIDServerService.php

@@ -143,6 +143,47 @@ class JRFIDServerService extends Service
         return [true, $result];
     }
 
+    public function getPrintData2($data){
+        if(empty($data['id'])) return [false, '数据ID不能为空'];
+        if(empty($data['type'])) return [false, '打印数据类型不能为空'];
+
+        $size = $data['size'] ?? 9;
+        $number = $data['number'] ?? 1;
+
+        $rsaService = new RsaEncryptionService();
+        $dataToEncrypt = [
+            'id' => $data['id'],
+            'type' => $data['type'],
+            'size' => $size,
+            'number' => $number,
+        ];
+        $this->recKSort($dataToEncrypt);
+
+        //加密
+        $encryptedData = $rsaService->encrypt2($dataToEncrypt);
+
+        $url = config("j_rfid.get_sep_order_dt_data");
+
+        Log::channel('apiLog')->info('工装云POST:源数据', ["api" => $url , "param" => $dataToEncrypt]);
+
+        $post = [
+            'body' => $encryptedData,
+        ];
+
+        list($status,$result) = $this->post_helper($url,$post,['Content-Type:application/json']);
+        if(! $status) return [$status, $result];
+
+        if(! empty($result['status']) && $result['status'] == 'error') return [false, $result['message']];
+        if(! empty($result['type']) && $result['type'] == 'errorVm') return [false, $result['message']];
+
+        if(! isset($result['furn_sep_order_dt_prod'])) {
+            $error = $result[0]['message'] ?? "操作失败,请刷新页面";
+            return [false, $error];
+        }
+
+        return [true, $result];
+    }
+
     // 关联数组排序,递归
     public function recKSort(&$arr)
     {

+ 68 - 0
app/Service/Weixin/WeixinService.php

@@ -0,0 +1,68 @@
+<?php
+
+namespace App\Service\Weixin;
+
+use App\Service\Service;
+use Illuminate\Support\Facades\Redis;
+
+class WeixinService extends Service
+{
+    const APPID = '';
+    const APPSECRET = '';
+    const ACCESS_URL = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s';
+    const OPENID = '';
+    const TOKEN = '';
+    const KEY = 'weixingzy';
+
+    public function getToken(){
+        $token_key = self::KEY.'_'.'token';
+        $token = Redis::get($token_key);
+        if(! $token){
+            $url = sprintf(self::ACCESS_URL,self::APPID,self::APPSECRET);
+            $res = $this->curlOpen($url);
+            $res = json_decode($res,true);
+            if(isset($res['errmsg'])) return [false,$res['errmsg']];
+            if(!isset($res['access_token'])) return [false,'request error'];
+            $token = $res['access_token'];
+            $expire_time = $res['expires_in']-300;
+            Redis::set($token_key,$token);
+            Redis::expire($token_key, $expire_time);
+            return [true,$token];
+        }
+        return [true,$token];
+    }
+
+    public function getOpenid($data){
+        if(empty($data['code'])) return [false, 'code不能为空'];
+        $code = $data['code'];
+        $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code';
+        $url = sprintf($url,self::APPID,self::APPSECRET,$code);
+        $res = $this->curlOpen($url);
+        $res = json_decode($res,true);
+        if(!isset($res['openid'])) return [false,$res['errmsg']??'request error'];
+        $openid = $res['openid'];
+        return [true,['openid' => $openid]];
+    }
+
+    public function setWebHook($data){
+        $uri = isset($data['uri']) ? $data['uri'] : '';
+        $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
+        $param = isset($data['param']) ? $data['param'] : '';
+        $redirect_uri = urlencode('https://t9api.qingyaokeji.com/wxapi/getUnionid?uri='.$uri.'&param='.$param);
+        $url = sprintf($url,self::APPID,$redirect_uri);
+        header("Location:".$url);exit;
+        echo 'ok';die;
+    }
+
+    public function getUnionid($data){
+        if(isset($data['code'])) {
+            list($status,$openid) = $this->getOpenid($data);
+            if(!$status) return [false,$openid];
+            $uri = $data['uri'];
+            $openid = $openid['openid'];
+            $param = isset($data['param']) ? $data['param'] : '';
+            $url = 'https://t9.qingyaokeji.com/#/wxGet?uri='.$uri.'&openid='.$openid.'&param='.$param;
+            header('Location:'.$url);exit();
+        }
+    }
+}

+ 2 - 0
config/j_rfid.php

@@ -17,6 +17,8 @@ return [
     'get_produce_by_contract' => 'https://gzy.qingyaokeji.com/api/module-data/produce_order/produce_order/diy/get_produce_by_contract',
     //打印数据获取接口
     'get_print_data' => 'https://gzy.qingyaokeji.com/api/module-data/process_flow/process_flow/diy/get_process_data',
+    //查询拆单以及拆单详情分页数据
+    'get_sep_order_dt_data' => 'https://gzy.qingyaokeji.com/api/module-data/separate_order/separate_order/diy/get_sep_order_dt_data',
     //班组查询
     'get_team' => 'https://gzy.qingyaokeji.com/api/module-data/teams_group_list/page',
     //部门查询

+ 1 - 0
routes/api.php

@@ -21,6 +21,7 @@ Route::any('login', 'Api\LoginController@login');
 //站点获取
 Route::any('getSite', 'Api\JRFIDController@getSite');
 Route::any('getPrintData', 'Api\JRFIDController@getPrintData');
+Route::any('getSepOrderDtData', 'Api\JRFIDController@getPrintData2');
 Route::any('screenPrint', 'Api\JRFIDController@screenPrint');
 Route::any('pdfLogo', 'Api\ThirdController@pdfLogo');
 Route::any('pdfData', 'Api\ThirdController@pdfData');