支付寶小程序:人臉采集
小編:啊南 3380閱讀 2020.12.28
產品介紹
人臉識別是解決在公共服務場所提升商家效率和用戶體驗的新方式,其中人臉采集是指在獲得用戶充分授權和認可,且充分保護用戶隱私的前提下,獲取到符合質量要求的活體人臉圖片,用于后續的對比、識別等操作,以此來提升商家的服務質量。核心功能包括:
-
活體檢測:證明當前用戶是真人。采用全球首創非配合式活體檢測技術,無需用戶做任何動作,極速通過檢測。
-
圖像質量檢測:判斷采集到的人臉是否符合標準質量要求。采用多維度質量判斷模型,找出一張高質量的人臉照片。該質量監測模型,通過遮擋(人臉各部位的遮擋比例)、模糊度(人臉的清晰度)、光照(人臉的光照強度)、完整性(人臉的完整性)、姿態(人臉在三維空間的角度分布)、表情(人臉表情的正常度)等多個維度進行綜合判斷。
調用流程
應用場景
人臉應用廣泛,可適用于以下多個場景:
場景 |
描述 |
拍攝證件照 |
小程序提供拍攝光照角度良好的證件照的功能。 |
團餐 | 校園點餐場景錄入學生人臉,用于刷臉代扣點餐。 |
通過人臉采集小程序返回給開發者的活體照片,不建議使用在安全性較差的比對算法下,和開發者自有的比對源圖片進行比對,用于核實本人。如果開發者有核實本人的場景需求,請使用 支付寶身份驗證?或者其他開放渠道的刷臉認證產品。因為 支付寶身份驗證 產品在后端具備完善的風控體系以及更加安全的活體檢測算法,具有非常強的防攻擊防誤識能力。
注意:
小程序“刷臉認證”開放能力已經全面升級為“支付寶身份驗證”,推薦開發者使用“支付寶身份驗證”能力;已經簽約并上線“刷臉認證”的小程序可以繼續使用。
準入條件-
該能力僅對企業支付寶賬戶開放。
-
申請前必須擁有經過實名認證的支付寶賬戶。
-
需提供真實有效的營業執照,且支付寶賬戶名稱需與營業執照主體一致。
注意:
-
若支付寶發現信息存在超出約定范圍使用或者不合理使用等情況,支付寶有權永久收回該小程序的人臉采集接口權限。
免費
接入指引第一步:創建小程序要在您的小程序內使用?人臉采集功能,您需要首先完成 開發者入駐 并 創建小程序。
第二步:添加能力小程序創建完成后,開發者在?能力列表?部分可以點擊?添加能力?來給創建的小程序添加能力,如下圖所示;開發者勾選 人臉采集 能力后,點擊右下角 確定 即完成添加。
第三步:簽約能力
人臉采集 功能需要簽約才能生效,請點擊功能列表右側“立即簽約”,簽約成功后,狀態置為“已生效”,即可調用人臉采集接口。
第四步:集成并配置 SDK服務端 SDK 需要商戶集成在自己的服務端系統中,用于后續的服務端接口調用。
下載服務端 SDK為了幫助開發者調用開放接口,我們提供了 開放平臺服務端 SDK ,包含 JAVA、PHP、NodeJS、Python 和 .NET 五種語言,封裝了簽名 & 驗簽、HTTP 接口請求等基礎功能。請先下載對應語言版本的 SDK 并引入您的開發工程。
接口調用配置在 SDK 調用前需要進行初始化,以 JAVA 代碼為例:
AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,ALIPAY_PUBLIC_KEY,SIGN_TYPE);
關鍵參數說明:
配置參數 | 示例值解釋 | 獲取方式/示例值 |
URL | 支付寶網關(固定) | ?https://openapi.alipay.com/gateway.do? |
APPID | APPID 即創建應用后生成 | 獲取見創建應用 |
APP_PRIVATE_KEY | 開發者私鑰,由開發者自己生成 | 獲取見配置密鑰 |
FORMAT | 參數返回格式,只支持 json | json(固定) |
CHARSET | 編碼集,支持 GBK/UTF-8 | 開發者根據實際工程編碼配置 |
ALIPAY_PUBLIC_KEY | 支付寶公鑰,由支付寶生成 | 獲取詳見配置密鑰 |
SIGN_TYPE | 商戶生成簽名字符串所使用的簽名算法類型,目前支持 RSA2 和 RSA,推薦使用 RSA2 | RSA2 |
接下來,就可以用 alipayClient 來調用具體的 API 了。alipayClient 只需要初始化一次,后續調用不同的 API 都可以使用同一個 alipayClient 對象。
注意:
ISV /開發者可以通過 第三方應用授權 得到商戶授權令牌(app_auth_token)作為請求參數傳入,實現代商戶發起請求的能力。
第五步:調用接口調用流程圖
-
調用 JSAPI(faceVerify)喚起人臉采集,整個采集過程完全由人臉內部實現,采集完成后,通過回調函數返回采集結果。采集過程中,客戶端完成人臉采集過程以及活體檢測,然后將采集的人臉特征數據上傳到服務端進行進一步的活體檢測,最終返回采集結果到客戶端。
-
調用查詢接口(zoloz.identification.user.web.query)獲取可信的采集結果,如果采集成功,可通過此接口獲取采集的人臉照片。
主要步驟
版本要求:
-
支付寶最低版本要求:10.1.52
-
小程序 基礎庫 最低版本要求:1.14.0
-
調用接口 my.ap.faceVerify,傳入參數 bizId 和 bizType 喚起人臉采集,采集結束后,通過回調函數得到采集結果。
請注意,在一次 my.ap.faceVerify 調用沒有返回之前,切記不能發起第二次 faceVerify 調用,否則會產生異常。例如,在你的小程序中通過點擊一個頁面上的按鈕來觸發 my.ap.faceVerify 的調用,請確保在該次調用返回之前,將按鈕禁用,不允許用戶進行多次點擊。
代碼示例
my.ap.faceVerify({ bizId: '545689787654767653', //業務流水號,商戶自行生成,需要保證唯一性,不超過64位 bizType: '1', //業務場景參數,‘1’代表人臉采集,請務必填寫 useBackCamera: true, //傳入此參數會喚起后置攝像頭;非必填,不傳默認喚起前置攝像頭 success: (res) => { my.alert({ content: JSON.stringify(res), }); }, fail: (res) => { my.alert({ content: JSON.stringify(res), }); }});
認證成功結果示例
faceRetCode = 1000 代表人臉采集成功,并且調用 查詢接口(zoloz.identification.user.web.query)能夠成功獲取照片,證明人臉采集成功。
{ faceRetCode: "1000", retCode: "OK_SUCCESS", retCodeSub: "Z5100", retMessageSub: "成功 (Z5100)", zimId: "7b6b72be1493cab72dd0a25877de329dd00"}undefined
注意,retCode代表的是刷臉可用性成功,刷臉可用,才可進行人臉采集。
-
調用人臉采集查詢接口(zoloz.identification.user.web.query)獲取人臉照片,以下請求示例代碼以 JAVA 為例:
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");ZolozIdentificationUserWebQueryRequest request = new ZolozIdentificationUserWebQueryRequest();request.setBizContent("{" +""biz_id":"5456897876546767654"," +""zim_id":"731be7f204a962b0486a9b64ea3050ae"," +""extern_param":"{"bizType":"1"}"" +"}");ZolozIdentificationUserWebQueryResponse response = alipayClient.execute(request);if(response.isSuccess()){System.out.println("調用成功");} else {System.out.println("調用失敗");}undefined
成功響應示例
如果采集成功,imgStr對象中的值即為人臉照片的base64編碼字符串。
{ "zoloz_identification_user_web_query_response": { "code": "10000", "msg": "Success", "extern_info": "{"imgStr":"ApA4VVwOP1rqp8sotrcimna3c__9k","bizId":"5456897876546767654-doucao.wjp","zimMsg":"成功","zimCode":"Z5130"}" }, "sign": "SL1dSiE6XKKIta5w3ge3VSZE+71CdBtr8Ocw9WvRSZD3Tz6/vNaA2pWLBYdZcvrAHaMYa6J8V9c4nY3kdBK0EeU2afh+8CLTw6dnZfkO8tR5NOtJUb+M6qhxl0xKhpE+2GUonpCcJg1MHS0aMVXa/b6dhK/yZJQCdO1YnVNuzs8="}
失敗響應示例
{ "zoloz_identification_user_web_query_response": { "code": "40004", "msg": "Business Failed", "sub_code": "INVALID_PARAMETER", "sub_msg": "參數有誤抱歉,系統出錯了,請您稍后再試 (Z5132)" }, "sign": "v/DjkviKs2ja3HO9ZZ94W8bcfAsLyRuGrZT/TlFm6FgGQv4qSm/94o1FjOaMCl/t8XIm89bBhk03PBJ099alDzjnj4RD6S9FYDV7CfjvHYjrzvVJzn47Gc1mWdOHZ38DFQLWIg1IbNKFmYdoR+NdY5nY/cwz3Al2wfEylvN1cbs="}
接口英文名稱 |
接口描述 |
my.ap.faceVerify |
人臉采集 |
zoloz.identification.user.web.query |
人臉采集結果查詢 |
A:會優先返回用戶最近一次使用的支付寶賬號對應的 user_id 。
Q:真機調試報錯 "retMessageSub":"{"error":4,"errorMessage":"無權調用","message":"無權調用","signature":"N22104"} 怎么辦?
A:人臉采集功能需要在小程序后臺添加 人臉采集 功能包并 簽約 通過才能使用。請參本文檔 接入指引
相關推薦