跳轉至

OTP 验证系统

OTP 驗證系統提供一個 API,包括 發送 OTP 和 驗證 OTP,以將 OTP 驗證應用於遊戲。

網址

伺服器 URL
生產環境 https://otp.qpyou.cn
沙盒環境 https://sandbox-otp.qpyou.cn

認證方法

要實現OTP發送系統提供的API,需要一個授權令牌(API KEY)。在您的遊戲在AppCenter註冊後,身份驗證令牌會自動發放。授權令牌遵循JWT(JSON Web Token: https://jwt.io)規範,不限制過期時間,因此可以繼續使用此令牌。


發送 OTP

發送 OTP 短信

  • 基本信息
方法 POST
URL /otp/sms
  • 請求標頭
欄位 類型
內容類型 application/json
授權 bearer
主題 Hive 控制台 > 通知 > 簡訊 OTP > 發送資訊設定 > 註冊或修改 > 發送 ID
  • 發送 OTP 短信時需要回調

如果 OTP 短信不是直接由 OTP 發送,而是由您自己發送,您可以通過回調接收發送 OTP 短信所需的信息。在 Hive 控制台 > 通知 > 短信 OTP > 發送信息設置 中,選擇 直接發送,以下數據將以 JSON 格式發送到註冊的回調 URL 的請求主體中。請參考 回調請求示例 和 回調數據。

  • 請求主體
字段 类型 必需 描述
to 字符串 O 接收者的电话号码
toCountryNo 字符串 O 接收者的国家代码
retry 布尔值 X 此字段指示您尝试通过此 API 向同一接收者发送 OTP 短信的存在。如果此字段留空,则如果在过去 5 分钟内对同一接收者调用此 API 超过一次,则设置为 true,否则设置为 false。
lookup 布尔值 X 此字段指示是否验证 to 是否为有效的电话号码格式,默认值为 false。如果为 true,则由于验证过程,API 响应时间大约为 250 毫秒 ~ 2000 毫秒,如果为 false,通常在 200 毫秒内。
lang 字符串 X 这是语言代码,默认值为 en。
有效的语言代码:
  • ko
  • en
  • ja
  • zh-cn
  • zh-tw
  • zh-hans
  • zh-hant
  • de
  • fr
  • ru
  • es
  • pt
  • id
  • th
  • vi
  • it
  • tr
  • ar
  • 回應標頭
欄位 類型
內容類型 application/json
  • 回應主體
欄位 類型 描述
otp 字串 OTP號碼
provider 字串 簡訊提供者
expiry 字串 OTP有效時間
  • 請求範例
//sample 1
curl --location 'https://otp.qpyou.cn/otp/send' 
--header 'Authorization: Bearer AUTH_TOKNE_VALUE' 
--header 'Topic: testTopicName' 
--header 'Content-Type: application/json' 
--data '{
    "to" : "01012345678",
    "toCountryNo" : "82",
    "lang" : "ko"
}'
//sample 2
curl --location 'https://otp.qpyou.cn/otp/send' 
--header 'Authorization: Bearer AUTH_TOKNE_VALUE' 
--header 'Topic: testTopicName' 
--header 'Content-Type: application/json' 
--data '{
    "to" : "01012345678",
    "toCountryNo" : "82",
    "lang" : "ko",
    "retry" : true,
    "lookup" : true
}'
  • 回應範例
{
    "otp" : "123456",
    "provider" : "YOUR SMS PROVIDER",
    "expiry" : "2022-07-20T15:18:06.885195100+09:00[Asia/Seoul]"
}

回調範例

curl --location 'https://{your_callback_url}' 
--header 'Content-Type: application/json' 
--data '{
"to":"01012345678",
"toCountryNo":"82",
"lang":"en",
"retry":null,
"lookup":false,
"serviceName":"LocalTest",
"otp":"809881",
"provider":"DIRECTSEND",
"expiry":"2024-06-26T11:36:29.680680500+09:00[Asia/Seoul]",
"expiryTimestamp":1719369389680
}'

回調數據資訊

名稱 類型 必填 描述
expiry 字串 是 OTP 有效期(例如:2024-06-25T11:39:43.076573600+09:00[Asia/Seoul])
expiryTimestamp 長整數 是 OTP 有效時間戳(例如:1719283183076)
lang 字串 否 語言代碼,默認為 en
lookup 布林值 否 驗證 to 值是否為有效的電話號碼格式,默認為 false
otp 字串 是 OTP 數字
provider 字串 是 短信提供者,固定值 DIRECTSEND 用於直接發送
retry 布林值 否 重試選項
serviceName 字串 是 在發送信息設置菜單中設置的服務名稱(英文)
to 字串 是 收件人電話號碼
toCountryNo 字串 是 收件人國家代碼

發送 OTP 電郵

方法 POST
URL /otp/email
  • 請求標頭
欄位 類型
內容類型 application/json
授權 bearer
主題 Hive 控制台 > 通知 > 短信 OTP > 發送信息設置 > 註冊或修改 > 發送 ID
  • 請求主體
字段 类型 必需 描述
sender 字符串 O 发件人的电子邮件地址
senderName 字符串 O 发件人在电子邮件上的名称
receiver 字符串 O 收件人的电子邮件地址
subject 字符串 O 电子邮件标题
lang 字符串 X 这是语言代码,默认值为 en。
有效的语言代码:
  • ko
  • en
  • ja
  • zh-cn
  • zh-tw
  • zh-hans
  • zh-hant
  • de
  • fr
  • ru
  • es
  • pt
  • id
  • th
  • vi
  • it
  • tr
  • ar
  • 回應標頭
欄位 類型
內容類型 application/json
  • 回應主體
欄位 類型 描述
otp 字串 OTP號碼
expiry 字串 OTP有效時間
  • 請求範例
//sample
curl --location 'https://otp.qpyou.cn/otp/email/send' 
--header 'Authorization: bearer AUTH_TOKEN_VALUE' 
--header 'Topic: testTopicName' 
--header 'Content-Type: application/json' 
--data-raw '{
    "sender" : "staging-no-reply@withhive.com",
    "senderName" : "YOUR SERVICE NAME",
    "receiver" : "com2us@com2us.com",
    "subject" : "OTP EMAIL SEND",
    "lang" : "ko"
}'
  • 回應範例
{
    "otp" : "123456",
    "expiry" : "2022-07-20T15:19:19.305116+09:00[Asia/Seoul]"
}

驗證 OTP

方法 POST
URL /otp/verify
  • 請求標頭
欄位 類型
內容類型 application/json
授權 bearer
主題 Hive 控制台 > 通知 > 簡訊 OTP > 發送資訊設定 > 註冊或修改 > 發送 ID
  • 請求主體
欄位 類型 必需 描述
toCountryNo 字串 X 收到的國家代碼(如果通過 SMS 接收 OTP,則必需)
to 字串 X 收到的電話號碼(如果通過 SMS 接收 OTP,則必需)
receiver 字串 X 收到的電子郵件地址(如果通過電子郵件接收 OTP,則必需)
otp 字串 O 收到的 OTP
  • 回應標頭
欄位 類型
內容類型 application/json
  • 回應主體
欄位 類型 描述
result 布林值 OTP 驗證結果
  • 請求範例 1
// sample 1
curl --location 'https://otp.qpyou.cn/otp/verify' 
--header 'Authorization: bearer AUTH_TOKEN_VALUE' 
--header 'Topic: testTopicName' 
--header 'Content-Type: application/json' 
--data '{
    "toCountryNo" : "82",
    "to" : "01036012891",
    "otp" : "123456"
}'
  • 請求範例 2
//sample 2
curl --location 'https://otp.qpyou.cn/otp/verify' 
--header 'Authorization: bearer AUTH_TOKEN_VALUE' 
--header 'Topic: testTopicName' 
--header 'Content-Type: application/json' 
--data-raw '{
    "receiver" : "com2us@com2us.com",
    "otp" : "123456"
}'
  • 回應範例
{
    "result" : true (or false)
}