diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpDeviceService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpDeviceService.java index a565011c..2580d23a 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpDeviceService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpDeviceService.java @@ -76,5 +76,24 @@ public interface WxMpDeviceService { */ WxDeviceBindResult compelUnbind(WxDeviceBind wxDeviceBind) throws WxErrorException; + /** + *
+ * 通过device type和device id 获取设备主人的openid + * 详情请见:http://iot.weixin.qq.com/wiki/new/index.html?page=3-4-11 + *+ * @param deviceType 设备类型,目前为"公众账号原始ID" + * @param deviceId 设备ID + * @return WxDeviceOpenIdResult + */ + WxDeviceOpenIdResult getOpenId(String deviceType,String deviceId) throws WxErrorException; + /** + *
+ * 通过openid获取用户在当前devicetype下绑定的deviceid列表` + * 详情请见:http://iot.weixin.qq.com/wiki/new/index.html?page=3-4-12 + *+ * @param openId 要查询的用户的openid + * @return WxDeviceBindDeviceResult + */ + WxDeviceBindDeviceResult getBindDevice(String openId) throws WxErrorException; } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpDeviceServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpDeviceServiceImpl.java index e7dbea1b..5c942365 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpDeviceServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpDeviceServiceImpl.java @@ -23,7 +23,7 @@ public class WxMpDeviceServiceImpl implements WxMpDeviceService { @Override public TransMsgResp transMsg(WxDeviceMsg msg) throws WxErrorException { String url = API_URL_PREFIX + "/transmsg"; - String response = this.wxMpService.post(url,msg.toJson()); + String response = this.wxMpService.post(url, msg.toJson()); return TransMsgResp.fromJson(response); } @@ -37,21 +37,21 @@ public class WxMpDeviceServiceImpl implements WxMpDeviceService { @Override public WxDeviceAuthorizeResult authorize(WxDeviceAuthorize wxDeviceAuthorize) throws WxErrorException { String url = API_URL_PREFIX + "/authorize_device"; - String response = this.wxMpService.post(url,wxDeviceAuthorize.toJson()); + String response = this.wxMpService.post(url, wxDeviceAuthorize.toJson()); return WxDeviceAuthorizeResult.fromJson(response); } @Override public WxDeviceBindResult bind(WxDeviceBind wxDeviceBind) throws WxErrorException { String url = API_URL_PREFIX + "/bind"; - String response = this.wxMpService.post(url,wxDeviceBind.toJson()); + String response = this.wxMpService.post(url, wxDeviceBind.toJson()); return WxDeviceBindResult.fromJson(response); } @Override public WxDeviceBindResult compelBind(WxDeviceBind wxDeviceBind) throws WxErrorException { String url = API_URL_PREFIX + "/compel_bind"; - String response = this.wxMpService.post(url,wxDeviceBind.toJson()); + String response = this.wxMpService.post(url, wxDeviceBind.toJson()); return WxDeviceBindResult.fromJson(response); } @@ -68,5 +68,19 @@ public class WxMpDeviceServiceImpl implements WxMpDeviceService { String response = this.wxMpService.post(url, wxDeviceBind.toJson()); return WxDeviceBindResult.fromJson(response); } + + @Override + public WxDeviceOpenIdResult getOpenId(String deviceType, String deviceId) throws WxErrorException { + String url = API_URL_PREFIX + "/get_openid"; + String response = this.wxMpService.get(url, "device_type=" + deviceType + "&device_id=" + deviceId); + return WxDeviceOpenIdResult.fromJson(response); + } + + @Override + public WxDeviceBindDeviceResult getBindDevice(String openId) throws WxErrorException { + String url = API_URL_PREFIX+"/get_bind_device"; + String response = this.wxMpService.get(url,"openid="+openId); + return WxDeviceBindDeviceResult.fromJson(response); + } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/BaseResp.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/BaseResp.java index 41629c55..b0dd6ec3 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/BaseResp.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/BaseResp.java @@ -38,23 +38,25 @@ public class BaseResp extends AbstractDeviceBean{ } private class BaseInfo { - private String device_type; - private String device_id; + @SerializedName("device_type") + private String deviceType; + @SerializedName("device_id") + private String deviceId; - public String getDevice_type() { - return device_type; + public String getDeviceType() { + return deviceType; } - public void setDevice_type(String device_type) { - this.device_type = device_type; + public void setDeviceType(String deviceType) { + this.deviceType = deviceType; } - public String getDevice_id() { - return device_id; + public String getDeviceId() { + return deviceId; } - public void setDevice_id(String device_id) { - this.device_id = device_id; + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; } } } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/WxDeviceBindDeviceResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/WxDeviceBindDeviceResult.java new file mode 100644 index 00000000..d0ed2dcd --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/device/WxDeviceBindDeviceResult.java @@ -0,0 +1,46 @@ +package me.chanjar.weixin.mp.bean.device; + +import com.google.gson.annotations.SerializedName; +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; + +import java.util.List; + +/** + * Created by keungtung on 16/12/2016. + */ +public class WxDeviceBindDeviceResult extends AbstractDeviceBean { + @SerializedName("resp_msg") + private RespMsg respMsg; + @SerializedName("openid") + private String openId; + @SerializedName("device_list") + private List