1, 'msg' => '获取成功', 'data' => [], ]; try { $idCard = isset($params['id_card']) ? $params['id_card'] : ''; $realName = isset($params['real_name']) ? $params['real_name'] : ''; $tencentConfig = config('tencent_im'); $sercrtId = isset($tencentConfig['SecretId']) ? $tencentConfig['SecretId'] : ''; $sercrtKey = isset($tencentConfig['SecretKey']) ? $tencentConfig['SecretKey'] : ''; //获取token $token_url = 'https://miniprogram-kyc.tencentcloudapi.com/api/oauth2/access_token?app_id='.$sercrtId.'&secret='.$sercrtKey.'&grant_type=client_credential&version=1.0.0'; $token_result = file_get_contents($token_url); if (!$token_result) { throw new Exception('您的网络开小差啦1~'); } $token_result = json_decode($token_result, true);echo '
';var_dump($token_result);exit;
            if ($token_result['code'] != 0) {
                throw new Exception('您的网络开小差啦2~');
            }
            $token = $token_result['access_token'];

            //获取签名鉴权参数ticket
            $ticket_url = 'https://miniprogram-kyc.tencentcloudapi.com/api/oauth2/api_ticket?app_id='.$sercrtId.'&access_token='.$token.'&type=SIGN&version=1.0.0';
            $ticket_result = file_get_contents($ticket_url);
            if (!$ticket_result) {
                throw new Exception('您的网络开小差啦3~');
            }
            $ticket_result = json_decode($ticket_result, true);
            if ($ticket_result['code'] != 0) {
                throw new Exception('您的网络开小差啦4~');
            }
            $ticket = $ticket_result['tickets'][0]['value'];

            //获取签名
            $sign_data = [
                'wbappid' => $sercrtId,
                'userId'  => (string)$this->auth->id,
                'version' => '1.0.0',
                'ticket'  => $ticket,
                'nonce'   => Random::alnum(32)
            ];
            asort($sign_data);//排序
            $sign_string = join('', $sign_data);
            $sign = sha1($sign_string);

            //上传身份信息
            $orderNo = getMillisecond() . $this->auth->id . mt_rand(1, 1000); //商户请求的唯一标识
            $url = 'https://miniprogram-kyc.tencentcloudapi.com/api/server/getAdvFaceId?orderNo='.$orderNo;
            $data = [
                'webankAppId' => $sercrtId,
                'orderNo' => $orderNo,
                'userId' => (string)$this->auth->id,
                'name' => $realName,//姓名
                'idNo' => $idCard,//证件号
                'version' => '1.0.0',
                'sign' => $sign,
                'nonce' => $sign_data['nonce']
            ];
            $res = curl_post($url,json_encode($data, 320), ['Content-Type: application/json']);
            echo '
';var_dump($res);exit;
            $result['data'] = $res;
        } catch (Exception $e) {
            $result['status'] = 0;
            $result['msg'] = $e->getMessage();
        }
        return $result;
    }
}