UNPKG

house-middleware-sdk

Version:

58 hosue rn native sdk

219 lines (205 loc) 7.22 kB
/* * @method certify 认证 * @param type 3:人脸认证,7:银行卡认证,100:法人认证,501:普通营业执照认证 * @param callback 回调 0:成功 -1:失败 * @param confirm confirm */ export function certify(type, callback, confirm, url) { if (!type) { console.error("type不能为空"); return; } if (type !== "3" && type !== "7" && type !== "100" && type !== "501") { console.error("目前只支持type 3:人脸认证 7:银行卡认证 100:法人认证 501:普通营业执照认证"); return; } if (!confirm) { if (type === "7" || type === "100" || type === "501") { console.warn("安居客只支持人脸认证"); } } require("../utils/findImpl") .default( () => certifyWbImpl(type, callback), () => certifyAjkImpl(type, callback), () => { }, () => certifyWbtzImpl(type, url, callback) ); } function certifyWbImpl(type, callback) { require("@w/wbapp").userinfo((res) => { if (res.uid !== "") { require("@w/wbapp").authSdk.open({ type: type }, (res) => { // setTimeout(() => { // 无线module,ios没code,安卓有code if (res.code === 0 || res === 0) { callback(0); } else { callback(-1); } // }, 50); }); } else { require("@w/wbapp").login((res) => { if (res.code === 0) { require("@w/wbapp").authSdk.open({ type: type }, (res) => { // setTimeout(() => { // 无线module,ios没code,安卓有code if (res.code === 0 || res === 0) { callback(0); } else { callback(-1); } // }, 50); }); } }); } }); } function certifyAjkImpl(type, callback) { if (type !== "3") { return; } require("ajkapp").certify("face", (res) => { // '0'认证成功'1'认证失败 if (res === '0') { callback(0) } else { callback(-1) } }); } function certifyWbtzImpl(type, url, callback) { require('react-native').NativeModules?.WBUserInfo?.getUserInfo(res => { if (res.uid !== "") { require('react-native').NativeModules?.WBOpenAuthSdk?.openAuthSdk(type, url, (res) => { if (res.code === 0 || res === 0) { callback(0); } else { callback(-1); } }); } else { require("@w/wbapp").login((res) => { if (res.code === 0) { require('react-native').NativeModules?.WBOpenAuthSdk?.openAuthSdk(type, url, (res) => { if (res.code === 0 || res === 0) { callback(0); } else { callback(-1); } }); } }); } }); } /* * @method queryCertifyStatus 获取认证状态 * @param type 3:人脸认证,7:银行卡认证,100:法人认证,501:普通营业执照认证 * @param callback -2:其他错误 -1:未登录 0:未认证 1:已认证 * @param confirm confirm */ export function queryCertifyStatus(type, callback, confirm) { if (!type) { console.error("type不能为空"); return; } if (type !== "3" && type !== "7" && type !== "100" && type !== "501") { console.error("目前只支持type 3:人脸认证 7:银行卡认证 100:法人认证 501:普通营业执照认证"); return; } if (!confirm) { if (type === "7" || type === "100" || type === "501") { console.warn("安居客只支持人脸认证"); } } require("../utils/findImpl") .default( () => queryCertifyStatusWbImpl(type, callback), () => queryCertifyStatusAjkImpl(type, callback), () => { }, () => queryCertifyStatusWbtzImpl(type, callback) ); } function queryCertifyStatusWbImpl(type, callback) { require("@w/wbapp").userinfo((res) => { if (res.uid !== "") { const query = new Promise(function (resolve) { require("@w/wbapp").authSdk.query((res) => { if (res.authList && res.authList.length > 0) { res.authList.map((item) => { if (String(item.id) === type) { if (item.status === 2) { resolve(0) } else if (item.status === 1) { resolve(1) } else { resolve(-2) } } }) } else { resolve(-1) } }); }); const timeout = new Promise(resolve => setTimeout(() => resolve(-1), 2000) ) Promise.race([query, timeout]).then((res) => { callback(res); }) } else { callback(-1) } }); } function queryCertifyStatusAjkImpl(type, callback) { if (type !== "3") { return; } require("ajkapp").queryCertifyStatus("face", (res) => { // '1'已认证'0'未认证 if (res === '1') { callback(1) } else { callback(0) } }); } //TODO:{58同镇 查询证书状态...} function queryCertifyStatusWbtzImpl(type, callback) { require('react-native').NativeModules?.WBUserInfo?.getUserInfo(res => { if (res.uid !== "") { const query = new Promise(function (resolve) { require('react-native').NativeModules?.WBOpenAuthSdk?.queryAuthList((res) => { if (res.authList && res.authList.length > 0) { res.authList.map((item) => { if (String(item.id) === type) { if (item.status === 2) { resolve(0) } else if (item.status === 1) { resolve(1) } else { resolve(-2) } } }) } else { resolve(-1) } }); }); const timeout = new Promise(resolve => setTimeout(() => resolve(-1), 2000) ) Promise.race([query, timeout]).then((res) => { callback(res); }) } else { callback(-1) } }); }