1. 程式人生 > >微信小程式人工智慧之刷臉登入

微信小程式人工智慧之刷臉登入

首先是小程式使用者端的頁面

<camera device-position="{{position}}" flash="off" binderror="error" style="width: 100%; height: 300px;"></camera>
<view class="weui-cell__ft" >
  <switch checked bindchange='switch1Change' style='margin:20rpx;'/>
</view>
<button type="primary" bindtap="takePhoto">刷臉登入</button>

接下來就是當點選刷臉登入時,可以看到綁定了一個事件  takePhone  此時在此事件中呼叫已經寫好的介面在  .js中實現登入

js程式碼

takePhoto() {
    const ctx = wx.createCameraContext()
    ctx.takePhoto({
      quality: 'high',
      success: (res) => {
        var tempImagePath = res.tempImagePath;
        // console.log(tempImagePath);

        wx.showLoading({
          title: '正在核驗身份....',
        })
        this.setData({logindisabled:true})
        wx.uploadFile({
          url: app.globalData.url.login, //僅為示例,非真實的介面地址
          filePath: tempImagePath,
          header:{
            Cookie: wx.getStorageSync('session_id')
          },
          name: 'file',
          success: (res)=> {
            wx.hideLoading();
            this.setData({logindisabled:false});

            var data = res.data;
            console.log(data);
            wx.showModal({
              title: '提示',
              content: data,
              showCancel:false
            })
            //do something
          }
        })
      }
    })
  },

呼叫的介面

//刷臉登入
    public function login(){
        $dir = "./Uploads/temp/";
        if(!file_exists($dir)){
            mkdir($dir, 0777, true);
        }
        $upload = new \Think\Upload();// 例項化上傳類
        $upload->maxSize = 3145728 ;// 設定附件上傳大小
        $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設定附件上傳型別
        $upload->rootPath = $dir; // 設定附件上傳根目錄
        $upload->savePath = ''; // 設定附件上傳(子)目錄
        $upload->autoSub = false;
        // 上傳檔案
        $info = $upload->uploadOne($_FILES['file']);
        if(!$info) {// 上傳錯誤提示錯誤資訊
            // return $this->ajaxReturn(array('error'=>true,'msg'=>$upload->getError()));
            return json_encode(array('error'=>true,'msg'=>$upload->getError()),JSON_UNESCAPED_UNICODE);
        }else{// 上傳成功 獲取上傳檔案資訊
            // return $this->ajaxReturn(array('error'=>false,'msg'=>'ok'));
            $file = $dir . $info['savepath'] . $info['savename'];
            $image = base64_encode(file_get_contents($file));
            // 呼叫人臉檢測
            $client = $this->init_face();
            $options['liveness_control']='NORMAL';
            $options["max_face_num"] = 1;
            
            $ret = $client->search($image,'BASE64','pingjiao',$options);
            // echo json_encode($ret,JSON_UNESCAPED_UNICODE);
            // exit;

             if($ret['error_code']==0){
                $user=$ret['result']['user_list'][0];
                $no=$user['user_id'];
                $score=$user['score'];

                if(!empty('no')){
                    $data=M('student')->field('no,name,sex')->where("no='{$no}'")->find();

                    if($data){
                        $data['score']=$score;
                        if($score>95){
                            echo '姓名:'.$data['name'];
                        }else{
                            echo json_encode($data,JSON_UNESCAPED_UNICODE);
                        }
                    }else{
                        echo "本地資料庫沒有該學生,百度雲資訊:個人資訊:{$no}, 分值:{$score}";
                    }
                }


            }else{
                echo '活體檢驗失敗,'.json_encode($ret,JSON_UNESCAPED_UNICODE);
            }

        }
    }

相關推薦

程式人工智慧登入

首先是小程式使用者端的頁面 <camera device-position="{{position}}" flash="off" binderror="error" style="width: 100%; height: 300px;"></camera&

程式人工智慧新增學生資訊

我們需要根據學生的基本資訊來識別人臉wxml<!--pages/add/add.wxml--> <form bindsubmit='formSubmit'> <view class="weui-cells__title">填寫個人資訊&

程式學習路】----使用globalData函式設定全域性變數

我們在app.js中設定需要的全域性變數的引數,比如公司名稱等 //app.js App({ globalData: { title: 'tomatocc' } }) 然後我們就可以在某個頁面的js檔案中(比如index.js)的data數組裡面去直

程式學習路】----使用template模板所遇到的問題

官方文件的demo過於簡單,本人嘗試幾次也沒有弄懂,找了幾個demo後才漸漸瞭解清楚小程式的模板是怎麼玩的。並且展示一個簡單的demo 首先來看我們的專案結構:主要用到index.js,index.wxml,temp.js,temp.wxml 首先,我

程式專案失物招領平臺-1.專案的建立

1.開發工具:微信web開發者工具 2.相關文件:微信公共平臺 3.使用到的微信小程式UI元件庫:wuss-weapp 4.使用微信web開發者工具建立一個小程式專案,專案名:lostandfound(appId可到微信公眾平臺申請,若沒有appId小程式的一些相關的功能無法使用) 5.將wus

程式——元件swiper

大家看到許多網頁的首頁面都會有圖片的輪播,圖片輪播:既能通過圖片增加整個頁面的美觀程度,又能讓客戶一眼看出網頁想要表達的內容。那麼,今天我們就通過swiper實現圖片的輪播效果,簡單又好看。 /**wxml**/ <swiper  indicator={{是否顯示面板指示點}}

程式入門使用者登陸態

微信小程式的設定是不支援session,那麼cookie之流肯定是用不了的。微信對wx.request這個API做了修改,小程式發起的請求並不是直接請求我們的後臺伺服器,而是先通過微信的伺服器再發送到我們的後臺伺服器,既然請求都是要通過微信的伺服器傳送到我們的伺服器,那麼我們的伺服器也就無從識別請求

未明學院學員報告:「最強程式打造路」

報告作者:鄒格格、馮雨晴、劉儼黎      未明學院商業資料分析訓練營9月班學員 報告名稱:《最強微信小程式打造之路-微信小程式專案分析報告》 自2017年1月9日小程式正式上線後,微信以不斷的開放平臺能力,極有耐心地在為小程式逐步加溫。在

程式開發小米商城(一)

小程式開發之小米商城Lite 剛接觸小程式不久,感覺相對來說比較簡單,就自己花了五六天做了一個專案,因為本身也是米粉,就看中了小米的微信小程式(可憐國慶擼了幾天的程式碼,哈哈),話不多說,先上效果圖吧。 算了算了。本來還打算上gif圖,但是太難搞了,說明一下吧。

程式CSSFlex佈局

相信剛開始學習開發小程式的初學者一定對介面的佈局很困擾,不知道怎麼佈局,怎麼擺放位置,其原因是不瞭解CSS樣式的屬性,所以,今天程式碼君打算寫一篇關於CSS的教程,給大家普及一下。 說起CSS佈局,首先要講解的就是FLex佈局,這個可以說是一個萬能鑰匙,遇到什麼

程式裡面的標籤和html標籤的對比、程式基礎常用控制元件

微信小程式和html5標籤的區別: HTML5 微信小程式 <h1></h1>...<h6></h6> <p>&l

程式學習路(一)

1、前言 微信小程式所使用的是騰訊自己開發的MINA框架,MINA框架跟主流框架有很大的相似之處,是一個MVVM框架,很慶幸本人先前有學過一點點VUE所以入門MINA框架還算比較順利,由於需要完全熟悉MINA框架我還需要學習很多,所以微信小程式學習之路篇打算一

[程式]商城購買商品數量實現

正文: 這裡有三種變更數量的方式, 加號,減號,input輸入 , 這裡做了限制,數量不能小於等於0並且不能超過現有庫存,下面是功能實現程式碼。     <view class="dian">       <view class="cun page

程式學習路——頁面跳轉

前言 本以為微信小程式的頁面跳轉只是幾個簡單的api,一開始就沒太留意,在實際工作中發現,微信小程式的頁面跳轉也有很多地方應該注意,其中之一就是因為頁面跳轉而觸發的生命週期函式,這個點我認為是很重要的一個點,因此,本篇就把這兩個點放在一起記錄起來,方便日後翻閱

程式開發rpx 的使用說明

最近正著手開發微信小程式,才發現自己差的還是有點遠的。因為在之前的工作中,也都是在閒魚時間通過瀏覽官網api,寫點簡單的demo#hello world#。當我真正去使用它開發專案時,才發現其奧祕頗深。

程式開發SSL證書相關問題

最重要的放最上面:阿里雲CDN 使用的是 Nginx (.crt為證書,.key為私鑰) 阿里雲證書格式說明地址 ssl證書其實本站有很多相關的文章,但是沒有針對ssl證書做過專門的說明,最近發現,還是有很多同學,困擾在這個地方;所以特整理一些有用的知識放在

程式開發路上遇到的那些坑

微信野心越來越大,如今已經從開始簡單的聊天工具發展成了一個網際網路生態系統,網羅了目前各大網際網路平臺所具備的功能,最近iOS端微信上線的“搜一搜”和“看一看”更加證實了這一點,直接看下面這張圖吧: 好了,今天繼續給大家分享這個牛逼的“削蘋果”的小程式的相

程式開發返回重新整理

小程式返回是不會重新重新整理頁面的,因此要事件控制才能人為重新整理頁面 前提:假設是a頁面 跳轉到 b頁面,在b頁面修改後返回 a頁面,要使得a頁面中相關資料進行重新整理 首先,我們在a頁面中寫一個

程式開發get請和post請求的兩種用法

我們在開發微信小程式,需要進行資料請求,這裡只有get和post兩種.get請求,如下圖 但是呢,在很多情況下光只有get請求是不行的,還必須要有post請求,那麼post請求怎麼寫呢,如下圖 這

程式開發城市選擇器 城市切換

移動開發中城市選擇器必不可少.  空白造了個.  gif:  這裡只上部分js程式碼: var city = require('../../utils/city.js'); //歡迎關注:http://www.wxapp-union.com/portal.php //