跳转至

OTP 验证系统

OTP 验证系统提供一个 API,包括 发送 OTP验证 OTP,以将 OTP 验证应用于游戏。

URL

服务器 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 响应时间大约为 250ms ~ 2000ms,通常在 false 时在 200ms 内。
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 接收的国家代码(如果通过短信接收OTP,则必需)
to 字符串 X 接收的电话号码(如果通过短信接收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)
}