react-native使用Face++識別身份證,讀取信息展示

文檔中心地址/OCR ID Card API:
https://console.faceplusplus.com.cn/documents/5671702

下面是實現的效果圖:
在這裏插入圖片描述
在這裏插入圖片描述
按照官方文檔的調用實例:

curl -X POST “https://api-cn.faceplusplus.com/cardpp/v1/ocridcard
-F “api_key=<api_key>”
-F “api_secret=<api_secret>”
-F “image_file=@image_file.jpg”

在這裏插入圖片描述

api_key、 api_secret
官網的 應用管理裏面創建API Key 生成
根據需要,選擇類型,這邊文檔裏樓主用的是試用的
在這裏插入圖片描述
創建成功,下面圈出來的就是上面對應兩個參數的值在這裏插入圖片描述

image_file.jpg
是傳入的身份證照片
樓主用的是formData方式上傳的

代碼塊:

引入react-native-image-picker獲取圖片

 import ImagePicker from 'react-native-image-picker';


    getImage() {
        const options = {
            quality: 0.4,
            maxWidth: 500,
            maxHeight: 500,
            noData: true,
            storageOptions: {//是否做爲臨時圖片存儲
                skipBackup: true//在手機相冊存儲圖片
            }
        };
        ImagePicker.launchImageLibrary(options, (response) => {
            console.log('Response = ', response);
            if (response.didCancel) {
                console.log('User cancelled photo picker');
            }
            else if (response.error) {
                console.log('ImagePicker Error: ', response.error);
            }
            else if (response.customButton) {
                console.log('User tapped custom button: ', response.customButton);
            }
            else {
                console.log('response==== ', response);

                let formData = new FormData();
                let file = {uri: response.uri, type: 'multipart/form-data', name: Date.parse(new Date()) + ".jpg"};
                this.setState({
                    CardImage: file,
                });
                formData.append('image_file', file);
                let url = 'https://api-cn.faceplusplus.com/cardpp/v1/ocridcard' + '?api_key=' + '**********' + '&api_secret=' + '*********';
                console.log('formData--', formData);
                RTRequest.uploadPhoto(url, formData).then((responseText) => {
                    if (responseText) {
                        console.log('圖片識別成功,返回數據:====', responseText);
                        if (responseText) {
                            this.setState({
                                cardsData: responseText.cards[0],
                            });
                        }
                    }
                })
                console.log('url==== ', this.state.url);
                console.log('cardsData==== ', this.state.cardsData);
            }
        });
    }
返回值示例
正面示例
{
	"cards": [{
		"gender": "女",
		"name": "牛XX",
		"id_card_number": "XXXXXX19841013XXXX",
		"birthday": "1984-10-13",
		"race": "漢",
		"address": "廣東省深圳市XXXXXXXX",
		"legality": {
			"Edited": 0.001,
			"Photocopy": 0.0,
			"ID Photo": 0.502,
			"Screen": 0.496,
			"Temporary ID Photo": 0.0
		},
		"type": 1,
		"side": "front"
	}],
	"time_used": 2151,
	"request_id": "1473759244,40dfde25-6d1a-4c90-a994-813556c81e30"
}

背面示例
{
	"cards": [{
		"issued_by": "北京市公安局海淀分局",
		"side": "back",
		"valid_date": "2010.11.13-2020.11.13"
	}],
	"time_used": 2151,
	"request_id": "1473759244,40dfde25-6d1a-4c90-a994-813556c81e30"
}

請求失敗返回示例

{
	"time_used": 3,
	"error_message": "MISSING_ARGUMENTS: image_url, image_file, image_base64",
	"request_id": "1470378968,c6f50ec6-49bd-4838-9923-11db04c40f8d"
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章