Add Verification Code Application

POST

https://api.itniotech.com/otp/app/add

Create the verification code application through the API.
 
Request Parameters
Parameters Description Required Type
name Application name, 4-32 characters, not allow to duplicate No String
codeExpiry The validity period of the sent verification code is 1-60 minutes, the integer value can be selected, and it is 5 minutes by default. No Int
periodTotalSendLimit The limit on the number sent in a period No JSONObject
enabled Enable switch, and off by default No Boolean
unit Period unit: 1-day, 2-hour, 3-minute, 4-second, when enabled is on, this parameter becomes required No Int
period The period is 1-90, when enabled is on, this parameter becomes required No Int
limit The limit is 1-10 billion. When enabled is on, this parameter becomes required No Int
periodPhoneSendLimit Frequent limit sent to the same number in the period No JSONObject
enabled Enable switch, and off by default No Boolean
unit Period unit: 1-day, 2-hour, 3-minute, 4-second, when enabled is on, this parameter becomes required No Int
period The period is 1-90, when enabled is on, this parameter becomes required No Int
limit The limit is 1-10 billion. When enabled is on, this parameter becomes required No Int
 
Request Sample
Request URL:
    https://api.itniotech.com/otp/app/add
Request Method:
    POST
Request Headers:
    Content-Type: application/json;charset=UTF-8
    Sign: 05d7a50893e22a5c4bb3216ae3396c7c
    Timestamp: 1630468800
    Api-Key: bDqJFiq9
Request Body:
{
    "name":"test_app",
    "codeExpiry":5,
    "periodTotalSendLimit":{
        "enabled":true,
        "unit":1,
        "period":1,
        "limit":1
    },
    "periodPhoneSendLimit":{
        "enabled":true,
        "unit":1,
        "period":1,
        "limit":1
    }
}
 
Response Parameters
Parameters Description Type
status Status code, 0 is successful, other failures refer to description of Status Code String
reason Description of failure reason String
data Details of response parameters JSONObject
name Application name String
codeExpiry The validity period of the sent verification code Int
appId Application id String
createTime Create time String
periodTotalSendLimit Details of the number limit sent in the period JSONObject
unit Period unit Int
period Period Int
limit Limit Int
enabled Enable switch Boolean
periodPhoneSendLimit DDetails of frequent limit sent to the same number in the period JSONObject
unit Period unit Int
period Period Int
limit Limit Int
enabled Enable switch Boolean
 
Response Status Code
status Description
0 success
-1 Authentication error
-2 Restricted IP access
-16 Timestamp expires
-18 Port program unusual
-20 Data existing
-22 Parameter exception
-23 Data caps
 

language

Java

PHP

REQUEST

import cn.hutool.crypto.SecureUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

private void addOtpApp() {
    final String baseUrl = "https://api.itniotech.com/otp";
    final String apiKey = "your api key";
    final String apiPwd = "your api secret";
    final String appId = "your appid"; //Application ID

    final String url = baseUrl.concat("/app/add");
    final String name = "your application name"; //Application name
    final Map periodTotalSendLimit = new HashMap<>();
    periodTotalSendLimit.put("enabled", true);
    periodTotalSendLimit.put("unit", 1);
    periodTotalSendLimit.put("period", 1);
    periodTotalSendLimit.put("limit", 1);
    final Map periodPhoneSendLimit = new HashMap<>();
    periodPhoneSendLimit.put("enabled", true);
    periodPhoneSendLimit.put("unit", 1);
    periodPhoneSendLimit.put("period", 1);
    periodPhoneSendLimit.put("limit", 1);
    final Integer codeExpiry = 5;

    System.out.println(url);
    HttpRequest request = HttpRequest.post(url);

    // currentTime
    final String datetime = String.valueOf(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().getEpochSecond());
    // generate md5 key
    final String sign = SecureUtil.md5(apiKey.concat(apiPwd).concat(datetime));
    request.header(Header.CONNECTION, "Keep-Alive")
            .header(Header.CONTENT_TYPE, "application/json;charset=UTF-8")
            .header("Sign", sign)
            .header("Timestamp", datetime)
            .header("Api-Key", apiKey);

    final String params = JSONUtil.createObj()
            .set("name", name)
            .set("appId", appId)
            .set("periodTotalSendLimit", periodTotalSendLimit)
            .set("periodPhoneSendLimit", periodPhoneSendLimit)
            .set("codeExpiry", codeExpiry)
            .toString();
    HttpResponse response = request.body(params).execute();
    if (response.isOk()) {
        String result = response.body();
        System.out.println(result);
    }
}
        
                

REQUEST

header('content-type:text/html;charset=utf8');

$apiKey = "your api key";
$apiSecret = "your api secret";
$url = "https://api.itniotech.com/otp/app/add";
$timeStamp = time();
$sign = md5($apiKey.$apiSecret.$timeStamp);

$dataArr['name'] = 'your application name';
$dataArr['codeExpiry'] = '5';
$dataArr['periodTotalSendLimit'] = array(
    "enabled"=>true,
    "unit"=>1,
    "period"=>1,
    "limit"=>1
);
$dataArr['periodPhoneSendLimit'] = array(
    "enabled"=>true,
    "unit"=>1,
    "period"=>1,
    "limit"=>1
);

$data = json_encode($dataArr);
$headers[] = 'Content-Type: application/json;charset=UTF-8';
$headers[] = "Sign: $sign";
$headers[] = "Timestamp: $timeStamp";
$headers[] = "Api-Key: $apiKey";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 600);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch, CURLOPT_POSTFIELDS , $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

$output = curl_exec($ch);
curl_close($ch);

var_dump($output);
        
                
 

RESPONSEEXAMPLE

{
    "status": "0",
    "reason": "success",
    "data": {
    "name": "test_app",
        "appId": "mRELxtHc",
        "periodTotalSendLimit": {
        "unit": 1,
            "period": 1,
            "limit": 1,
            "enabled": true
        },
        "periodPhoneSendLimit": {
        "unit": 1,
            "period": 1,
            "limit": 1,
            "enabled": true
        },
        "codeExpiry": 5,
        "createTime": "2022-01-01T00:00:00+08:00"
    }
}