Add license check user info
这个提交包含在:
父节点
8cf7ebb317
当前提交
2577d6e3e2
@ -46,6 +46,21 @@ LicenseSDK.checkLicense { isValid ->
|
||||
}
|
||||
```
|
||||
|
||||
Optional user metadata can be uploaded during the same check. All fields are optional.
|
||||
|
||||
```kotlin
|
||||
LicenseSDK.checkLicense(
|
||||
userInfo = LicenseUserInfo(
|
||||
userId = "u_10001",
|
||||
name = "张三",
|
||||
email = "zhangsan@example.com",
|
||||
phone = "13800000000",
|
||||
),
|
||||
) { isValid ->
|
||||
// allow or block app usage
|
||||
}
|
||||
```
|
||||
|
||||
### Get Status (no network)
|
||||
|
||||
```kotlin
|
||||
|
||||
@ -7,6 +7,7 @@ import com.xuqm.sdk.license.internal.LicenseContextHolder
|
||||
import com.xuqm.sdk.license.internal.LicenseFileReader
|
||||
import com.xuqm.sdk.license.internal.LicenseHttpClient
|
||||
import com.xuqm.sdk.license.model.RegisterRequest
|
||||
import com.xuqm.sdk.license.model.LicenseUserInfo
|
||||
import com.xuqm.sdk.license.model.VerifyRequest
|
||||
import com.xuqm.sdk.license.store.LicenseStore
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@ -68,9 +69,10 @@ object LicenseSDK {
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun checkLicense(callback: LicenseCallback) {
|
||||
@JvmOverloads
|
||||
fun checkLicense(userInfo: LicenseUserInfo? = null, callback: LicenseCallback) {
|
||||
sdkScope.launch {
|
||||
val valid = when (checkLicense()) {
|
||||
val valid = when (checkLicense(userInfo)) {
|
||||
is LicenseResult.Success -> true
|
||||
is LicenseResult.Error -> false
|
||||
}
|
||||
@ -88,7 +90,8 @@ object LicenseSDK {
|
||||
*
|
||||
* @return LicenseResult.Success if license is valid, LicenseResult.Error otherwise
|
||||
*/
|
||||
suspend fun checkLicense(): LicenseResult = withContext(Dispatchers.IO) {
|
||||
@JvmStatic
|
||||
suspend fun checkLicense(userInfo: LicenseUserInfo? = null): LicenseResult = withContext(Dispatchers.IO) {
|
||||
ensureInitialized()
|
||||
|
||||
// Check cached status
|
||||
@ -109,6 +112,7 @@ object LicenseSDK {
|
||||
companyId = config.appKey,
|
||||
deviceId = deviceId,
|
||||
token = token,
|
||||
userInfo = userInfo,
|
||||
)
|
||||
)
|
||||
|
||||
@ -130,6 +134,7 @@ object LicenseSDK {
|
||||
deviceModel = DeviceInfoProvider.getDeviceModel(),
|
||||
deviceVendor = DeviceInfoProvider.getDeviceVendor(),
|
||||
osVersion = DeviceInfoProvider.getOsVersion(),
|
||||
userInfo = userInfo,
|
||||
)
|
||||
)
|
||||
|
||||
@ -153,12 +158,12 @@ object LicenseSDK {
|
||||
/**
|
||||
* Force re-register the device (e.g., after token revocation).
|
||||
*/
|
||||
suspend fun reRegister(): LicenseResult = withContext(Dispatchers.IO) {
|
||||
suspend fun reRegister(userInfo: LicenseUserInfo? = null): LicenseResult = withContext(Dispatchers.IO) {
|
||||
requireInit()
|
||||
store.token = null
|
||||
store.status = null
|
||||
store.statusTime = 0
|
||||
checkLicense()
|
||||
checkLicense(userInfo)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -9,6 +9,7 @@ data class RegisterRequest(
|
||||
@SerializedName("deviceModel") val deviceModel: String? = null,
|
||||
@SerializedName("deviceVendor") val deviceVendor: String? = null,
|
||||
@SerializedName("osVersion") val osVersion: String? = null,
|
||||
@SerializedName("userInfo") val userInfo: LicenseUserInfo? = null,
|
||||
)
|
||||
|
||||
data class RegisterResponse(
|
||||
@ -21,6 +22,7 @@ data class VerifyRequest(
|
||||
@SerializedName("companyId") val companyId: String,
|
||||
@SerializedName("deviceId") val deviceId: String,
|
||||
val token: String,
|
||||
@SerializedName("userInfo") val userInfo: LicenseUserInfo? = null,
|
||||
)
|
||||
|
||||
data class VerifyResponse(
|
||||
@ -34,3 +36,10 @@ data class ApiResponse<T>(
|
||||
val data: T? = null,
|
||||
val message: String? = null,
|
||||
)
|
||||
|
||||
data class LicenseUserInfo(
|
||||
@SerializedName("userId") val userId: String? = null,
|
||||
@SerializedName("name") val name: String? = null,
|
||||
@SerializedName("email") val email: String? = null,
|
||||
@SerializedName("phone") val phone: String? = null,
|
||||
)
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户