云端行为数据上报接口用于上传用户在使用设备时发生的身份验证事件,每次事件发生时上报一次,行为数据不涉及设备运行状况,交易状况。带SDK设备由SDK负责上传行为数据,不需要走云端行为数据上报链路。
适用于不带SDK机具,是否需要上传行为数据需跟业务方确认,带SDK直连设备由SDK自动上报,不需要走云端行为数据上传API。
1. 应用开发者根据OpenApi行为数据上报接口参数要求,获取设备发生的行为事件
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) | 场景标识,支付宝提供,本场景下固定写法school_guard_event | 不可空 | school_guard_event |
| op_code | 操作码 | String(64) | 用于标识操作类型,本场景下固定写法data_send | 不可空 | data_send |
| channel | 来源渠道 | String(32) | 场景数据来源渠道,本场景下固定写法iot_cloud | 不可空 | iot_cloud |
| target_id | 唯一标识 | String(32) | 目标用户ID | 不可空 | 20178947392794 |
| version | 版本 | String(32) | 场景数据类型版本,本场景下固定写法2.0 | 不可空 | 2.0 |
| op_data | 操作数据 | JSON | 设备行为数据,以json格式传输,具体传输内容见下表 | 不可空 | {“device_sn”:“No.37924724”,“supplier_sn”:“2088934837483”,“result”:“T”} |
op_data
| 参数 | 参数名称 | 参数类型 | 参数详细说明 | 是否可空 | 样例 |
|---|---|---|---|---|---|
| biz_type | 业务类型 | String(32) | 业务类型 可选项: [PUBLIC_TRANSPORT,GOVERNMENT_BUSINESS,FUTURE_CAMPUS] PUBLIC_TRANSPORT — 公交 GOVERNMENT_BUSINESS — 政务 FUTURE_CAMPUS — 校园 |
不可空 | FUTURE_CAMPUS |
| scene | 场景 | String(32) | 细分场景 可选项: [THRASH,BATHE,GUARD,LIBRARY] THRASH — 打水 BATHE — 洗澡 GUARD — 门禁/闸机 LIBRARY — 图书管订座/借还书 |
不可空 | GUARD |
| item_id | 物料id | String(32) | 物料ID,同设备注册物料id | 不可空 | 2017847974927 |
| supplier_sn | 设备供应商id | String(32) | 设备供应商ID,需提前向BD获取 | 不可空 | 2088934837483 |
| device_sn | 设备sn | String(32) | 设备sn,来源于设备硬件标识 | 不可空 | SN28372484_GUD |
| biz_tid | 设备统一id | String(64) | 设备统一id,暂时无法获取 | 可空 | olidjwe839238jdehbs21239dfds |
| appid | 小程序id | String(32) | 小程序id | 不可空 | 2014060600164699 |
| code_type | 码类型 | String(16) | 码类型 可选项: [ALIPAY,WEIXIN,OTHER] ALIPAY - 支付宝 WEIXIN - 微信 OTHER - 其他 |
不可空 | ALIPAY |
| uid | 用户id | String(32) | 用户id,同target_id | 不可空 | 20178947392794 |
| biz_time | 事件发生时间 | String(32) | 事件发生时间,格式要求为yyyy-MM-dd HH:mm:ss.SSS | 不可空 | 2018-09-11 12:22:22.323 |
| identify_type | 验证方法 | String(32) | 可选项: [CODE,FACE,NFC] CODE — 扫码 FACE — 刷脸 NFC-nfc识别 |
不可空 | CODE |
| result | 执行结果 | String(1) | 可选项: [T,F] T — 身份验证成功 F — 身份验证失败 |
不可空 | T |
| school_pid | 学校id | String(32) | 学校id | 不可空 | 20887286484233 |
| school_name | 学校名称 | String(32) | 学校名称 | 可空 | xx学校 |
| isv_pid | 服务商id | String(32) | 供应商id | 可空 | 2088111122223333 |
| isv_name | 服务商名称 | String(32) | 供应商名称 | 可空 | xxx公司 |
| shop_id | 门店id | String(32) | 门店id | 可空 | 22123123 |
@Test
public void deviceBehavior() throws AlipayApiException {
//实例化客户端
AlipayClient alipayClient = new DefaultAlipayClient("//openapi.sit.dl.alipaydev.com/gateway.do", APPID, privateKey, "json", "UTF-8", publicKey, "RSA");
AlipayCommerceDataSendRequest request = new AlipayCommerceDataSendRequest();
request.setBizContent("{\n" +
" \"scene_code\": \"school_guard_event\",\n" +
" \"op_code\": \"data_send\",\n" +
" \"channel\": \"iot_cloud\",\n" +
" \"version\": \"2.0\",\n" +
" \"target_id\": \"2088302060807280\",\n" +
" \"op_data\": [{\n" +
" \"biz_type\": \"FUTURE_CAMPUS\",\n" +
" \"scene\": \"BATHE\",\n" +
" \"item_id\": \"201809221239213\",\n" +
" \"supplier_sn\": \"208884983928\",\n" +
" \"device_sn\": \"20219837\",\n" +
" \"biz_tid\": \"2018029312\",\n" +
" \"biz_time\": \"2018-09-11 12:30:22.243\",\n" +
" \"appid\": \"2014060600164699\",\n" +
" \"uid\": \"2088302060807280\",\n" +
" \"identify_type\": \"CODE\",\n" +
" \"school_pid\": \"2088123412341234\",\n" +
" \"school_name\": \"xx学校\",\n" +
" \"isv_pid\": \"2088722341094817\",\n" +
" \"isv_name\": \"xxx\",\n" +
" \"shop_id\": \"2012838\",\n" +
" \"result\": \"T\",\n" +
" \"place\": \"GYM\",\n" +
" \"ext_info\": {\"xx\":\"xx\",\"xxx\":\"xxx\"}\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\": \"school_guard_event\",\n" +
" \"op_code\": \"data_send\",\n" +
" \"channel\": \"iot_cloud\",\n" +
" \"version\": \"2.0\",\n" +
" \"target_id\": \"2088302060807280\",\n" +
" \"op_data\": [{\n" +
" \"biz_type\": \"FUTURE_CAMPUS\",\n" +
" \"scene\": \"BATHE\",\n" +
" \"item_id\": \"201809221239213\",\n" +
" \"supplier_sn\": \"208884983928\",\n" +
" \"device_sn\": \"20219837\",\n" +
" \"biz_tid\": \"2018029312\",\n" +
" \"biz_time\": \"2018-09-11 12:30:22.243\",\n" +
" \"appid\": \"2014060600164699\",\n" +
" \"uid\": \"2088302060807280\",\n" +
" \"identify_type\": \"CODE\",\n" +
" \"school_pid\": \"2088123412341234\",\n" +
" \"school_name\": \"xx学校\",\n" +
" \"isv_pid\": \"2088722341094817\",\n" +
" \"isv_name\": \"xxx\",\n" +
" \"shop_id\": \"2012838\",\n" +
" \"result\": \"T\",\n" +
" \"place\": \"GYM\",\n" +
" \"ext_info\": {\"xx\":\"xx\",\"xxx\":\"xxx\"}\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\": \"school_guard_event\"," .
" \"op_code\": \"data_send\"," .
" \"channel\": \"iot_cloud\"," .
" \"version\": \"2.0\"," .
" \"target_id\": \"2088302060807280\"," .
" \"op_data\": [{" .
" \"biz_type\": \"FUTURE_CAMPUS\"," .
" \"scene\": \"BATHE\"," .
" \"item_id\": \"201809221239213\"," .
" \"supplier_sn\": \"208884983928\"," .
" \"device_sn\": \"20219837\"," .
" \"biz_tid\": \"2018029312\"," .
" \"biz_time\": \"2018-09-11 12:30:22.243\"," .
" \"appid\": \"2014060600164699\"," .
" \"uid\": \"2088302060807280\"," .
" \"identify_type\": \"CODE\"," .
" \"school_pid\": \"2088123412341234\"," .
" \"school_name\": \"xx学校\"," .
" \"isv_pid\": \"2088722341094817\"," .
" \"isv_name\": \"xxx\"," .
" \"shop_id\": \"2012838\"," .
" \"result\": \"T\"," .
" \"place\": \"GYM\"," .
" \"ext_info\": {\"xx\":\"xx\",\"xxx\":\"xxx\"}" .
" }]\n" .
" }");
$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":"data_send","op_data":[{"appid":"2014060600164699","biz_tid":"2018029312","biz_time":"2017-11-11 12:22:22.243","biz_type":"FUTURE_CAMPUS","device_sn":"20219837","ext_info":"{\"xx\":\"xx\",\"xxx\":\"xxx\"}","identify_type":"CODE","isv_name":"xxx","isv_pid":"2088722341094817","item_id":"201809221239213","place":"GYM","result":"T","scene":"BATHE","school_name":"xx学校","school_pid":"2088123412341234","shop_id":"2012838","supplier_sn":"208884983928","uid":"2088302060807280"}],"scene_code":"school_guard_event","target_id":"2088302060807280","version":"2.0"}&sign=IQHqH2el4rmDq56e2bC+g9i40mV2XwbSWeqVLXTd/LgalnGyxw80YfpYqPIyK/8wI5D55njVcPRrpwqSfcqGMtYuotc4Z6bqWf4dMD597ri7SHnqVyF3RmXB950nOcJrxkCmMgXkYcyPu6V+fCwdkxhpfyFBMZZpCBgRm451BcI=×tamp=2018-09-20 14:31:43&sign_type=RSA&charset=UTF-8&app_id=2014060600164699&method=alipay.commerce.data.send&version=1.0