Java と C# を使った携帯電話の回線状態照会 API の無料実装方法

携帯電話の回線状態照会とは、指定した電話番号が現在アクティブかどうか(通話・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 を取得すれば、無料枠内で試用可能である。

タグ: Java C# AlibabaCloud API MobileVerification

6月21日 22:31 投稿