快速入门
API调用说明

调用入口地址:

正式环境地址:https://api.iot.10086.cn/v2/

公共参数:

参数 是否必须 默认值 含义

appid

应用编码,第三方应用唯一标识。由物联卡集团客户向中国移动提出API接入申请,中国移动物联网全网管理员在运营管理平台上分配并反馈给集团客户(反馈方式:邮箱),appid样例:100001

transid

事务编码,由物联卡集团客户按照相应规则自主生成。生成规则:appid+YYYYMMDDHHMISS+8位数字序列(此序列由集团客户自主生成,比如从00000001开始递增等等),transid样例:1000012014101615303080000001

ebid

能力编码,同appid一起由中国移动反馈给集团客户,ebid样例:2300000000000001

token

令牌,appid+password+transid(password同appid、ebid一起由中国移动反馈给集团客户)并使用64位SHA-256算法进行加密,token样例: 4962ad69adcbf490c9f749fff734b 5706a874ebab1120aaa23c9d288290534ca


业务参数:

API调用除了必须包含公共参数外,如果API本身有业务级的参数也必须传入,每个API的业务参数请参考API清单说明。

token生成方式:

  1. 生成规则:appid+password+transid
  2. appid获取方式:请参照申请接入章节,提出接入申请,申请完成之后会得到中国移动反馈的appid。
  3. transid生成规则:appid+YYYYMMDDHHMISS+8位数字序列(此序列由集团客户自主生成,比如从00000001开始递增等等。)
  4. password获取方式:请参照申请接入章节,提出接入申请,申请完成之后会得到中国移动反馈的password。
  5. 按照生成规则使用64位SHA-256算法进行加密。
  6. 通过token生成工具生成,toekn工具使用请参照token工具使用说明

附,SHA-256算法代码举例:

  • Java
  • PHP
  • Python
  • C#
复制代码

package com.iot;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class GenerateToken {
   /**
    * 传入文本内容,返回 SHA-256 串
    *
    * @param strText
    * @return
    */
    public static String SHA256(final String strText)
    {
        return SHA(strText, "SHA-256");
    }


    /**
    * 字符串 SHA 加密
    *
    * @param strSourceText
    * @return
    */
    private static String SHA(final String strText, final String strType)
    {
    // 返回值
    String strResult = null;

    // 是否是有效字符串
    if (strText != null && strText.length() > 0)
    {
    try
    {
    // SHA 加密开始
    // 创建加密对象并转入加密类型
    MessageDigest messageDigest = MessageDigest.getInstance(strType);
    // 传入要加密的字符串
    messageDigest.update(strText.getBytes());
    // 得到 byte 类型结果
    byte byteBuffer[] = messageDigest.digest();

    // 将 byte 转换为string
    StringBuffer strHexString = new StringBuffer();
    // 遍历 byte buffer
    for (int i = 0; i < byteBuffer.length; i++)
    {
    String hex = Integer.toHexString(0xff & byteBuffer[i]);
    if (hex.length() == 1)
        {
            strHexString.append('0');
        }
        strHexString.append(hex);
    }
        // 得到返回结果
        strResult = strHexString.toString();
    }
    catch (NoSuchAlgorithmException e)
    {
        e.printStackTrace();
    }
    }

    return strResult;
    }

    public static void main(String args[]){
        //APPID
        String APPID="A0B40MY";
        //PASSWORD
        String PASSWORD="1234";
        //TRANSID
        String TRANSID="A0B40MY2016101711070753214709";
        String token=GenerateToken.SHA256(APPID+PASSWORD+TRANSID);
        System.out.println(token);
    }

}

<?php
        //APPID
        $APPID="A0B40MY";
        //PASSWORD
        $PASSWORD="1234";
        //TRANSID
        $TRANSID="A0B40MY2016101711070753214709";

        //SHA-256算法生成token
        function SHA256Hex($str){
            $re=hash('sha256', $str, false);
            return $re;
        }
        //调用SHA256Hex函数生成token
        $token=SHA256Hex($APPID.$PASSWORD.$TRANSID);
        echo $token;
?>

                    

# -*- coding: utf-8 -*-
'''
@author IOT Python2.79生成token
'''

import hashlib

def generate_token(appid,transid,app_pwd='123456'):
    '''
    根据APPID和APP Password来生成Token
    :param appid: 应用ID
    :param transid: transid
    :param app_pwd: 应用密码
    :return: token字符串
    '''

    token_decode = appid + app_pwd + transid
    SHA256 = hashlib.sha256()
    SHA256.update(token_decode)
    return SHA256.hexdigest()
                    

using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;

namespace HttpDemo
{
    class EncryptUtil
    {
        //sha256加密方法
        //str=APPID+PASSWORD+TRANSID,如:APPID=A0B40MY,PASSWORD=1234,TRANSID=A0B40MY2016101711070753214709;则参数str=A0B40MY1234A0B40MY2016101711070753214709
        public static string SHA256Encrypt(string str)
        {
            //string strIN = getstrIN(strIN);
            byte[] tmpByte;
            SHA256 sha256 = new SHA256Managed();
            tmpByte = sha256.ComputeHash(GetKeyByteArray(str));
            sha256.Clear();
            return GetHexString(tmpByte);
        }

        private static string GetHexString(byte[] Byte)
        {
            StringBuilder stringBuilder = new StringBuilder();
            //逐字节变为16进制字符
            for (int i = 0; i < Byte.Length; i++)
            {
                stringBuilder.Append(Convert.ToString(Byte[i], 16));
            }
            return stringBuilder.ToString();
        }

        private static byte[] GetKeyByteArray(string strKey)
        {
            ASCIIEncoding Asc = new ASCIIEncoding();
            int tmpStrLen = strKey.Length;
            byte[] tmpByte = new byte[tmpStrLen - 1];
            tmpByte = Asc.GetBytes(strKey);
            return tmpByte;

        }

    }
}

                    

调用示例:

以CMIOT_API2005-用户当月GPRS查询接口为例调用如下:

  1. 封装公共参数:
    • appid:100001
    • transid:1000012014101615303080000001
    • ebid:2300000000000001(获取方式参照申请接入,由中国移动反馈)
    • token:0c06c913f3b01b2e73cb79bef5297b7cf7d8bae43dc7b473bea0319647caaa736b
  2. 封装业务参数:
    • msisdn:14765004176
  3. 接口入口地址:https://api.iot.10086.cn/v2/gprsusedinfosingle,请参照API清单中的API详情获取。
  4. 拼接URL(通过接入入口地址和参数拼接而成):https://api.iot.10086.cn/v2/gprsusedinfosingle?appid=xxx&transid=xxx&ebid=xxx&token=xxx&msisdn=xxx
  5. 通过HTTP客户端,使用拼接URL调用API

SDK使用说明

API服务平台SDK提供了API的请求封装和响应解释,使用SDK可以轻松完成API的调用和API结果的获取,可实现在用户无感知的情况下查询API数据。

SDK包含更多API接口能力,可以更方便直接地调用API能力,SDK详细使用方式可以参见SDK工具下载页面:SDK工具下载


token生成工具使用说明

常见问题使用说明