携帯電話の回線状態照会とは、指定した電話番号が現在アクティブかどうか(通話・SMS 受信可能か)、あるいは停波・解約・未使用などの状態にあるかを判定する機能である。この情報はユーザーバリデーション、マーケティング、リスク管理など多くのシーンで活用される。
本記事では、Alibaba Cloud Marketplace で提供されている無料トライアル可能な API を利用し、Java および C# で回線状態を照会する具体的な実装例を紹介する。API は POST リクエストで電話番号を送信し、ステータスコードやメッセージを含む JSON 応答を返す。
Java 実装例
import java.util.HashMap;
import java.util.Map;
public class MobileStatusChecker {
public static void main(String[] args) {
String baseUrl = "https://kzmstatev1.market.alicloudapi.com";
String endpoint = "/api-mall/api/mobile_status/check";
String authCode = "YOUR_APPCODE_HERE";
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "APPCODE " + authCode);
headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
Map<String, String> payload = new HashMap<>();
payload.put("mobile", "13800138000"); // 実際の電話番号に置き換える
try {
HttpResponse response = HttpUtils.doPost(baseUrl, endpoint, "POST", headers, new HashMap<>(), payload);
System.out.println(response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
※
HttpUtilsクラスは Alibaba Cloud 公式 GitHub リポジトリから取得可能:
https://github.com/aliyun/api-gateway-demo-sign-java
C# 実装例
using System;
using System.IO;
using System.Net;
using System.Text;
class MobileStatusClient
{
const string Host = "https://kzmstatev1.market.alicloudapi.com";
const string Path = "/api-mall/api/mobile_status/check";
const string AppCode = "YOUR_APPCODE_HERE";
static void Main()
{
string requestBody = "mobile=13800138000"; // 実際の番号に変更
string fullUrl = Host + Path;
ServicePointManager.ServerCertificateValidationCallback = (_, _, _, _) => true;
var request = (HttpWebRequest)WebRequest.Create(fullUrl);
request.Method = "POST";
request.Headers["Authorization"] = "APPCODE " + AppCode;
request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
using (var stream = request.GetRequestStream())
using (var writer = new StreamWriter(stream, Encoding.UTF8))
{
writer.Write(requestBody);
}
try
{
using (var response = (HttpWebResponse)request.GetResponse())
using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
Console.WriteLine(reader.ReadToEnd());
}
}
catch (WebException ex)
{
using (var response = (HttpWebResponse)ex.Response)
using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
Console.WriteLine(reader.ReadToEnd());
}
}
}
}
API 応答例
{
"msg": "成功",
"success": true,
"code": 200,
"data": {
"orderNo": "202406282055560705659",
"result": "1",
"province": "北京",
"city": "北京",
"channel": "移動",
"resultMsg": "正常"
}
}
result フィールドの値により、以下の状態を判別可能:
"1":正常(在网正常使用)"2":停機"3":在网だが一時的に利用不可"4":不在网(解約・未開通・異常)"5":解約予定(プレ解約)
この API は高精度(99.99%)かつリアルタイムでステータスを返すため、ユーザー登録時の電話番号検証や不正アクセス防止などに有効である。Alibaba Cloud Marketplace にて AppCode を取得すれば、無料枠内で試用可能である。