startDeviceScan 函数
调用
要使用设备扫描模块,需要调用 startDeviceScan 函数,它接受以下位置参数:
await startDeviceScan(
token,
document_number,
session_id,
event_id,
event_type,
environment
);
| 参数 | 类型 | 作用 | 必填 |
|---|---|---|---|
| token | string | 通过服务器到服务器请求向设备扫描 API 获取的临时认证 token。必须使用与本函数相同的 session_id 生成。 | 是。 |
| document_number | string | 用户的证件号(CPF/CNPJ,不含点、横线和斜杠)。 | 是。 |
| session_id | string | 标识所采集数据来源会话的密钥。必须使用小写字母发送。 | 是。 |
| event_id | string | 所上报事件的标识符。 | 是。 |
| event_type | string | 定义所上报事件类型的枚举(例如 'onboarding')。请注意将非常相似的事件使用相同的枚举上报,以便在这些数据之上构建智能分析。 | 是。 |
| environment | CAAS_ENVIRONMENT | 用于将运行环境设置为 SANDBOX 或 PRODUCTION 的枚举。 | 是。 |
注意
参数顺序很重要。请注意在函数签名中,session_id 位于 event_id 和 event_type 之前,尽管原生模块内部接收这些值的顺序有所不同。
CAAS_ENVIRONMENT
enum CAAS_ENVIRONMENT {
PRODUCTION = 'production',
SANDBOX = 'sandbox',
}
返回值
该函数返回一个 Promise,成功时解析为表示采集成功的字符串。
成功
Success collecting device scan data
错误
采集失败时,Promise 会被 reject:
There was an error collecting DeviceScan data
当原生模块未正确链接时,调用会抛出:
The package '@qitech/react-native-device-scan' doesn't seem to be linked. Make sure:
- You have run 'pod install'
- You rebuilt the app after installing the package
- You are not using Expo managed workflow
示例
try {
const result = await startDeviceScan(
token,
'<CPF_NUMBER>',
'<SESSION_ID>',
'1',
'onboarding',
CAAS_ENVIRONMENT.SANDBOX
);
console.log(result); // "Success collecting device scan data"
} catch (error) {
console.log('Error executing device scan: ' + error);
}
使用完整包
如果您的应用使用 @qitech/react-native-caas,startDeviceScan 函数的签名和行为完全相同——只需修改 import 路径:
import { CAAS_ENVIRONMENT, startDeviceScan } from '@qitech/react-native-caas';