跳转到内容

凭扫描到的令牌记录一次入场登记(会员卡或活动报名)

POST
/v1/checkins
curl --request POST \
--url https://api.vimine.network/v1/checkins \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "token": "example", "card": "example" }'

核验令牌(签名、时间窗口),确认该记录属于您的协会,记录入场登记并返回判定结果。会员卡令牌(kind: card)为会员资格办理入场登记;报名令牌(kind: registration)为活动报名办理入场登记——当报名类型要求有效会员卡时,也同时为该报名所关联的会员资格办理。不含个人数据。

媒体类型application/json
object
token

扫描到的令牌(vmt_…):会员卡或报名

string
card

token 的别名(会员卡令牌)

string
示例自动生成
{
"token": "example",
"card": "example"
}

已记录入场登记

媒体类型application/json
object
kind
string
允许的值: card registration
verdict
string
允许的值: valid expired not_yet_valid statuto_required inactive already_checked_in not_confirmed cancelled event_cancelled membership_invalid
status
string
membership_id
string
可为 null
valid_until
string 格式: date-time
可为 null
valid_from

判定为 not_yet_valid 时:会员卡何时可以使用(协会设定的可用间隔)

string 格式: date-time
可为 null
registration_id
string
可为 null
event
object
slug
string
title
string
starts_at
string 格式: date-time
registration_type
string
可为 null
membership_verdict
string
可为 null
identity_check

仅限会员卡。pending:该会员没有可核实的税号,协会中也还没有人查看过其证件——请把它显示给入口值守人员。它只是一条提示,绝不属于 verdict:不限制任何操作。由协会在管理后台中清除

string
可为 null
允许的值: pending verified flagged
first
boolean
checked_in_at
string 格式: date-time
可为 null
示例
{
"kind": "card",
"verdict": "valid",
"identity_check": "pending"
}

请求无效

媒体类型application/problem+json
object
type
必填
string 格式: uri
title
必填
string
status
必填
integer
detail
string
code
必填
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
示例自动生成
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

缺少凭据或凭据无效

媒体类型application/problem+json
object
type
必填
string 格式: uri
title
必填
string
status
必填
integer
detail
string
code
必填
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
示例自动生成
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

无权操作

媒体类型application/problem+json
object
type
必填
string 格式: uri
title
必填
string
status
必填
integer
detail
string
code
必填
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
示例自动生成
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

该会员卡属于其他协会,或不存在

令牌格式错误或系伪造,或者报名令牌尚未生效或已超出其时间窗口(invalid_card、reason)。会员卡则不同:真实的会员卡即使超出时间窗口也不会被拒绝,而是以 expired 判定完成入场登记(会员资格已失效时,判定也为失效)

已触发速率限制

媒体类型application/problem+json
object
type
必填
string 格式: uri
title
必填
string
status
必填
integer
detail
string
code
必填
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
示例自动生成
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

内部错误

媒体类型application/problem+json
object
type
必填
string 格式: uri
title
必填
string
status
必填
integer
detail
string
code
必填
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
示例自动生成
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}