OTP 验证系统
OTP 验证系统提供一个 API,包括 发送 OTP 和 验证 OTP,以将 OTP 验证应用于游戏。
URL
认证方法
要实现OTP发送系统提供的API,需要一个授权令牌(API KEY)。在您的游戏在AppCenter注册后,认证令牌会自动发放。遵循JWT(JSON Web Token: https://jwt.io)规范的授权令牌没有过期时间限制,因此可以继续使用此令牌。
发送 OTP
发送 OTP 短信
字段 | 类型 |
内容类型 | application/json |
授权 | bearer |
主题 | Hive 控制台 > 通知 > 短信 OTP > 发送信息设置 > 注册或修改 > 发送 ID |
如果 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 邮件
字段 | 类型 |
内容类型 | 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
字段 | 类型 |
内容类型 | application/json |
授权 | bearer |
主题 | Hive 控制台 > 通知 > 短信 OTP > 发送信息设置 > 注册或修改 > 发送 ID |
字段 | 类型 | 必需 | 描述 |
toCountryNo | 字符串 | X | 接收的国家代码(如果通过短信接收OTP,则必需) |
to | 字符串 | X | 接收的电话号码(如果通过短信接收OTP,则必需) |
receiver | 字符串 | X | 接收的电子邮件地址(如果通过电子邮件接收OTP,则必需) |
otp | 字符串 | O | 接收的OTP |
字段 | 类型 |
内容类型 | application/json |
字段 | 类型 | 描述 |
result | 布尔值 | OTP 验证结果 |
// 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"
}'
//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)
}