设备心跳数据上报接口用于上传设备在线情况,开发者可在设备在线状态变更或定时策略上传心跳数据。
适用于不带SDK机具,是否需要上传行为数据需跟业务方确认,带SDK直连设备由SDK自动上报,不需要走云端行为数据上传API。
1. 应用开发者根据设备在线状态,构建心跳上报数据
2. 通过支付宝SDK,AlipayCommerceDataSendRequest服务接口,上传心跳数据。
快速接入文档参考《蚂蚁平台快速接入》。
alipay-sdk-JAVA-3.3.93.ALL 及更新版本
alipay-sdk-NET-3.2.71.ALL及更新版本
alipay-sdk-PHP-3.3.93.ALL及更新版本
参数 | 参数名称 | 参数类型 | 参数详细说明 | 是否可空 | 样例 |
---|---|---|---|---|---|
scene_code | 场景标识 | String(100) | 场景标识,支付宝提供,本场景下固定写法iot_heartbeat_event | 不可空 | iot_heartbeat_event |
op_code | 操作码 | String(64) | 用于标识操作类型,本场景下固定写法data_send | 不可空 | data_send |
channel | 来源渠道 | String(32) | 场景数据来源渠道,本场景下固定写法iot_cloud | 不可空 | iot_cloud |
version | 版本 | String(32) | 场景数据类型版本,本场景下固定写法2.0 | 不可空 | 2.0 |
op_data | 操作数据 | JSON | 心跳日志,以json格式传输,具体传输内容见下表 | 不可空 | {“device_sn”:“No.37924724”,“supplier_sn”:“2088934837483”} |
op_data
参数 | 参数名称 | 参数类型 | 参数详细说明 | 是否可空 | 样例 |
---|---|---|---|---|---|
supplier_sn | 设备供应商id | String(32) | 设备供应商ID,需提前向BD获取 | 不可空 | 2088934837483 |
device_sn | 设备sn | String(32) | 设备sn,来源于设备硬件标识 | 不可空 | SN28372484_GUD |
biz_tid | 设备统一id | String(64) | 设备统一id,暂时无法获取 | 可空 | olidjwe839238jdehbs21239dfds |
log_version | 日志版本 | String(8) | 日志版本 | 不可空 | 1 |
os_version | 设备操作系统(或程序)、版本号 | String(32) | 设备操作系统(或程序)、版本号 | 可空 | linux_v2.6 |
net_type | 网络类型 | String(16) | 网络类型,可选项: [2G,3G,4G,WIRED,BT,OTHER,NONE] 2G — 2G网路 3G — 3G网路 4G — 4G网路 WIFI-wifi无线网络 WIRED — 有线网络 BT — 蓝牙 OTHER — 其他 NONE — 无 |
不可空 | 2G |
biz_time | 事件发生时间 | String(32) | 事件发生时间,格式要求为yyyy-MM-dd HH:mm:ss.SSS | 不可空 | 2018-09-11 12:22:22.323 |
poi | 位置信息 | String(64) | 位置信息 | 可空 | xx学校图书馆 |
online_status | 在线状态 | String(16) | 在线状态 可选项:[ONLINE,OFFLINE] ONLINE - 在线 OFFLINE - 离线 |
不可空 | ONLINE |
signal_intensity | 信号强度 | String(8) | 信号强度 可选项:[H,M,L] H - 强 M - 中 L - 弱 |
可空 | H |
@Test public void heartbeatlog() throws AlipayApiException { //实例化客户端 AlipayClient alipayClient = new DefaultAlipayClient("//openapi.sit.dl.alipaydev.com/gateway.do", APPID, privateKey, "json", "GBK", publicKey, "RSA"); AlipayCommerceDataSendRequest request = new AlipayCommerceDataSendRequest(); request.setBizContent("{\n" + " \"scene_code\": \"data_send\",\n" + " \"op_code\": \"heartbeat_send\",\n" + " \"channel\": \"iot_cloud\",\n" + " \"version\": \"2.0\",\n" + " \"op_data\": [\n" + " {\n" + " \"supplier_sn\": \"1\",\n" + " \"device_sn\": \"20219837\",\n" + " \"biz_tid\": \"2018029312\",\n" + " \"log_version\": \"1\",\n" + " \"os_version\": \"linux\",\n" + " \"net_type\": \"2G\",\n" + " \"biz_time\": \"2017-11-11 12:22:22.243\",\n" + " \"poi\":\"xx地点\",\n" + " \"online_status\": \"ONLINE\",\n" + " \"signal_intensity\": \"H\"\n" + " }\n" + " ]\n" + " }"); AlipayCommerceDataSendResponse response = alipayClient.execute(request); if(response.isSuccess()) { System.out.println("调用成功"); }else{ System.out.println("调用失败"); } }
//实例化客户端 IAopClient client = new DefaultAopClient("//openapi.sit.dl.alipaydev.com/gateway.do", APPID, privateKey, "json", "1.0", "RSA",publicKey,"GBK",false); AlipayCommerceDataSendRequest request= new AlipayCommerceDataSendRequest(); request.BizContent="{\n" + " \"scene_code\": \"iot_heartbeat_event\",\n" + " \"op_code\": \"data_send\",\n" + " \"channel\": \"iot_cloud\",\n" + " \"version\": \"2.0\",\n" + " \"op_data\": [\n" + " {\n" + " \"supplier_sn\": \"1\",\n" + " \"device_sn\": \"20219837\",\n" + " \"biz_tid\": \"2018029312\",\n" + " \"log_version\": \"1\",\n" + " \"os_version\": \"linux\",\n" + " \"net_type\": \"2G\",\n" + " \"biz_time\": \"2017-11-11 12:22:22.243\",\n" + " \"poi\":\"xx地点\",\n" + " \"online_status\": \"ONLINE\",\n" + " \"signal_intensity\": \"H\"\n" + " }\n" + " ]\n" + " }"; AlipayCommerceDataSendResponse response=client.execute(request); Console.WriteLine(response.Body);
$aop = new AopClient (); $aop->gatewayUrl = '//openapi.sit.dl.alipaydev.com/gateway.do'; $aop->appId = APPID; $aop->rsaPrivateKey = '请填写开发者私钥去头去尾去回车,一行字符串'; $aop->alipayrsaPublicKey='请填写支付宝公钥,一行字符串'; $aop->apiVersion = '1.0'; $aop->signType = 'RSA2'; $aop->postCharset='GBK'; $aop->format='json'; $request = new AlipayCommerceDataSendRequest (); $request->setBizContent("{" . " \"scene_code\": \"iot_heartbeat_event\"," . " \"op_code\": \"data_send\"," . " \"channel\": \"iot_cloud\"," . " \"version\": \"2.0\"," . " \"op_data\": [" . " {" . " \"supplier_sn\": \"1\"," . " \"device_sn\": \"20219837\"," . " \"biz_tid\": \"2018029312\"," . " \"log_version\": \"1\"," . " \"os_version\": \"linux\"," . " \"net_type\": \"2G\"," . " \"biz_time\": \"2017-11-11 12:22:22.243\"," . " \"poi\":\"xx地点\"," . " \"online_status\": \"ONLINE\"," . " \"signal_intensity\": \"H\"" . " }" . " ]" . " }"); $result = $aop->execute ($request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code; if(!empty($resultCode)&&$resultCode == 10000){ echo "成功"; } else { echo "失败"; }
<!--http请求原文,url必须经过转义后进行POST请求--> POST //openapi.sit.dl.alipaydev.com/gateway.do?biz_content={"channel":"iot_cloud","op_code":"heartbeat_send","op_data":[{"biz_tid":"2018029312","biz_time":"2017-11-11 12:22:22.243","device_sn":"20219837","log_version":"1","net_type":"2G","online_status":"ONLINE","os_version":"linux","poi":"xx地点","signal_intensity":"H","supplier_sn":"1"}],"scene_code":"iot_heartbeat_event","version":"2.0"}&sign=CtDTp80gm3x9E/OzCcdfY1fCnRJ3EIZpusyVMFvk1nEnvxeteJD1nrzKfzciVFt463OBiB93YiSCDjfkB3RFMyCKfAqfT0RZ6Ig/gYy2PPWgelLL0dOLTgvEHQdZFf+IY2i1aJa6uEjWu7nmvL7R+sYRyXl1MlCgEwgYhbmU73I=×tamp=2018-09-20 20:57:37&sign_type=RSA&charset=UTF-8&app_id=2014060600164699&method=alipay.commerce.data.send&version=1.0