QR Code 解析
当商户店员直接扫描客人的 QR code 时,可调用此 endpoint。商户只需要把扫描器读到的原始字符串传给 Yuter,Yuter 会验证 QR token、解析 booking,并确认该 booking 属于此商户。
POST
/api/integrations/merchant/bookings/resolve-qr把已扫描的 Yuter QR code 解析成此商户可处理的 booking。
Request 字段
字段
类型
必填
说明
qrCodestring
是
QR 扫描器读出的原始字符串,请原样发送。
Response 字段
字段
类型
说明
codenumber
返回代码。
successboolean
QR code 成功解析时会出现。
messagestring
可读消息。
bookingIdstring
解析后的 MongoDB booking id,可用于后续 validate 或 redeem。
bookingobject
QR code 解析成功后返回的订单摘要。
qrobject
QR 相关数据,例如 tokenAgeMs。
reasonstring
code 4 时的受控错误原因。
返回代码
为了让商户文档及收银员界面更简单,Yuter 将此集成返回统一成四个顶层代码。
代码
含义
备注
1
成功
订单验证成功或已成功核销。
2
已核销
此订单在本次请求前已完成核销。
3
无效订单
booking id 无效,或找不到相关订单。
4
其他错误
认证失败、不可核销、商户无权限,或其他受控错误。
QR Code 解析示例
QR Code 解析 endpoint 的 request 与 response 示例。
cURL 示例
API_KEY='<raw merchant api key>'
SCANNED_QR='<扫描器读到的原始 qr 字符串>'
TIMESTAMP=$(($(date +%s) * 1000))
NONCE=$(uuidgen)
BODY='{"qrCode":"'"$SCANNED_QR"'"}'
PATH='/api/integrations/merchant/bookings/resolve-qr'
PAYLOAD="POST
$PATH
$TIMESTAMP
$NONCE
$BODY"
SIGNATURE=$(printf "%s" "$PAYLOAD" | openssl dgst -sha256 -hmac "$API_KEY" -hex | sed 's/^.* //')
curl -X POST "https://www.yuterwellness.com$PATH" \
-H "Content-Type: application/json" \
-H "x-api-key: $API_KEY" \
-H "x-timestamp: $TIMESTAMP" \
-H "x-nonce: $NONCE" \
-H "x-signature: $SIGNATURE" \
-d "$BODY"响应示例
{
"code": 1,
"success": true,
"message": "QR code resolved successfully",
"bookingId": "69ce982e96a5b33a356abab0",
"booking": {
"_id": "69ce982e96a5b33a356abab0",
"programTitle": "Private Merchant Test Event",
"userName": "Test User",
"userEmail": "test@example.com",
"quantity": 1,
"date": "2026-04-10",
"status": "paid"
},
"qr": {
"tokenAgeMs": 1834
}
}