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
}
}