house-middleware-sdk
Version:
58 hosue rn native sdk
219 lines (205 loc) • 7.22 kB
JavaScript
/*
* @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)
}
});
}