正式环境地址: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清单说明。
附,SHA-256算法代码举例:
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查询接口为例调用如下:
API服务平台SDK提供了API的请求封装和响应解释,使用SDK可以轻松完成API的调用和API结果的获取,可实现在用户无感知的情况下查询API数据。
SDK包含更多API接口能力,可以更方便直接地调用API能力,SDK详细使用方式可以参见SDK工具下载页面:SDK工具下载