mtl-js-sdk
Version:
ynf-fw-mtl-api
136 lines (125 loc) • 3.89 kB
JavaScript
const orcBaseUrl = "ht" + "tps://bip-dai" + "ly.yonyoucloud.com/iuap-yonbuilder-mobile"
export function scanInvoice(object={}) {
_getOcrImageInfo(object, "invoice");
}
export function recognizeInvoice(object={}) {
let ocrImage = object.image;
if (ocrImage.startsWith("/9j/")) {
openScan(object, ocrImage, "invoice");
return;
}
if (ocrImage.startsWith("data:image/")) {
ocrImage = ocrImage.split(";base64,")[1];
openScan(object, ocrImage, "invoice");
return;
}
_chooseOcrImage(object, "invoice");
}
export function scanIDCard(object={}) {
_getOcrImageInfo(object, "id");
}
export function recognizeIDCard(object={}) {
let ocrImage = object.image;
if (ocrImage.startsWith("/9j/")) {
openScan(object, ocrImage, "id");
return;
}
if (ocrImage.startsWith("data:image/")) {
ocrImage = ocrImage.split(";base64,")[1];
openScan(object, ocrImage, "id");
return;
}
_chooseOcrImage(object, "id");
}
function _recognizeIDCard(object) {
let { appCode, side, type, localData, url = orcBaseUrl} = object;
let path;
if (type === "invoice") {
path = `${url}/rest/v1/api/apilink/ocr/invoice/vat/base64`;
} else if (type === "id") {
path = `${url}/rest/v1/api/apilink/ocr/card/id/base64`;
} else if (type === "bank") {
path = `${url}/rest/v1/api/apilink/ocr/card/bank/base64`;
}
let params = {
image: localData,
apiCode: appCode,
isFront: side === 'back' ? false : true
};
mtl.request({
method: "POST",
url: path,
params: params,
headers: { 'Content-Type': 'application/json;' },
success:function(res) {
object.success && object.success(res.data);
object.complete && object.complete(res);
},
fail:function(err) {
object.fail && object.fail(err);
object.complete && object.complete(err);
}
});
}
export function scanBankCard(object={}) {
_getOcrImageInfo(object, "bank");
}
export function recognizeBankCard(object={}) {
let ocrImage = object.image;
if (ocrImage.startsWith("/9j/")) {
openScan(object, ocrImage, "bank");
return;
}
if (ocrImage.startsWith("data:image/")) {
ocrImage = ocrImage.split(";base64,")[1];
openScan(object, ocrImage, "bank");
return;
}
_chooseOcrImage(object, "bank");
}
// export function scanBusinessCard(object={}) {
// _getOcrImageInfo(object, "business");
// }
//
// export function recognizeBusinessCard(object={}) {
// let ocrImage = object.image;
// if (ocrImage.startsWith("/9j/")) {
// openScan(object, ocrImage, "business");
// return;
// }
// if (ocrImage.startsWith("data:image/")) {
// ocrImage = ocrImage.split(";base64,")[1];
// openScan(object, ocrImage, "business");
// return;
// }
// _chooseOcrImage(object, "business");
// }
function _getOcrImageInfo(object, type) {
let sourceType = object.sourceType;
mtl.chooseImage({
count: 1, // 默认9
sizeType: ["original", "compressed"],
sourceType: sourceType || ["album", "camera"],
success: res => {
let localIds = res.localIds;
_chooseOcrImage({...object, image:localIds[0]}, type);
},
fail: object.fail
});
}
function _chooseOcrImage(object, type) {
mtl.getLocalImgData({
localId:object.image,
success: function (res) {
let localData = res.localData;
if (localData.startsWith("data:image/")) {
localData = localData.split(";base64,")[1];
}
openScan(object, localData, type);
},
fail: object.fail
});
}
function openScan(object, localData, type) {
_recognizeIDCard({...object, localData, type});
}