跳转至

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