diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java index 33a4066b..71a54135 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java @@ -409,6 +409,12 @@ public interface WxMpService { */ WxMpDeviceService getDeviceService(); + /** + * 返回摇一摇周边相关接口方法的实现类对象,以方便调用其各个接口 + * + * @return WxMpShakeService + */ + WxMpShakeService getShakeService(); /** * 初始化http请求对象 diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpShakeService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpShakeService.java new file mode 100644 index 00000000..87a6747a --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpShakeService.java @@ -0,0 +1,27 @@ +package me.chanjar.weixin.mp.api; + +import me.chanjar.weixin.common.exception.WxErrorException; +import me.chanjar.weixin.mp.bean.WxMpShakeInfoResult; +import me.chanjar.weixin.mp.bean.WxMpShakeQuery; + +/** + * 摇一摇周边的相关接口 + * + * @author rememberber + */ +public interface WxMpShakeService { + + /** + *
+ * 获取设备及用户信息+ * + * @param wxMpShakeQuery 查询参数 + */ + WxMpShakeInfoResult getShakeInfo(WxMpShakeQuery wxMpShakeQuery) throws WxErrorException; + +} diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/AbstractWxMpServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/AbstractWxMpServiceImpl.java index 527f6fe2..e1dfd83f 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/AbstractWxMpServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/AbstractWxMpServiceImpl.java @@ -41,6 +41,7 @@ public abstract class AbstractWxMpServiceImpl
+ * 获取设备信息,包括UUID、major、minor,以及距离、openID等信息。 + * 详情请见: https://mp.weixin.qq.com/wiki?action=doc&id=mp1443447963 + * http请求方式: POST(请使用https协议) + * 接口地址:https://api.weixin.qq.com/shakearound/user/getshakeinfo?access_token=ACCESS_TOKE + *
+ * 获取设备及用户信息+ * + * @param wxMpShakeQuery 查询参数 + */ + @Override + public WxMpShakeInfoResult getShakeInfo(WxMpShakeQuery wxMpShakeQuery) throws WxErrorException { + String url = "https://api.weixin.qq.com/shakearound/user/getshakeinfo"; + String postData = wxMpShakeQuery.toJsonString(); + String responseContent = this.wxMpService.post(url, postData); + return WxMpShakeInfoResult.fromJson(responseContent); + } +} diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpShakeInfoResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpShakeInfoResult.java new file mode 100644 index 00000000..ac94b457 --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpShakeInfoResult.java @@ -0,0 +1,164 @@ +package me.chanjar.weixin.mp.bean; + +import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; + +import java.io.Serializable; + +/** + * 摇一摇周边:获取设备及用户信息接口返回JSON数据接收类 + * Created by rememberber on 2017/6/5. + * + * @author rememberber + */ +public class WxMpShakeInfoResult implements Serializable { + + private Integer errcode; + + private String errmsg; + + private Data data; + + public static WxMpShakeInfoResult fromJson(String json) { + return WxMpGsonBuilder.INSTANCE.create().fromJson(json, WxMpShakeInfoResult.class); + } + + public class Data { + + private String page_id; + + private String openid; + + private String poi_id; + + private String brand_userame; + + private BeaconInfo beacon_info; + + public class BeaconInfo { + + private double distance; + + private Integer major; + + private Integer measure_power; + + private Integer minor; + + private Integer rssi; + + private String uuid; + + public double getDistance() { + return distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public Integer getMajor() { + return major; + } + + public void setMajor(Integer major) { + this.major = major; + } + + public Integer getMeasure_power() { + return measure_power; + } + + public void setMeasure_power(Integer measure_power) { + this.measure_power = measure_power; + } + + public Integer getMinor() { + return minor; + } + + public void setMinor(Integer minor) { + this.minor = minor; + } + + public Integer getRssi() { + return rssi; + } + + public void setRssi(Integer rssi) { + this.rssi = rssi; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + } + + public String getPage_id() { + return page_id; + } + + public void setPage_id(String page_id) { + this.page_id = page_id; + } + + public String getOpenid() { + return openid; + } + + public void setOpenid(String openid) { + this.openid = openid; + } + + public String getPoi_id() { + return poi_id; + } + + public void setPoi_id(String poi_id) { + this.poi_id = poi_id; + } + + public BeaconInfo getBeacon_info() { + return beacon_info; + } + + public void setBeacon_info(BeaconInfo beacon_info) { + this.beacon_info = beacon_info; + } + + public String getBrand_userame() { + return brand_userame; + } + + public void setBrand_userame(String brand_userame) { + this.brand_userame = brand_userame; + } + } + + public Integer getErrcode() { + return errcode; + } + + public void setErrcode(Integer errcode) { + this.errcode = errcode; + } + + public String getErrmsg() { + return errmsg; + } + + public void setErrmsg(String errmsg) { + this.errmsg = errmsg; + } + + public Data getData() { + return data; + } + + public void setData(Data data) { + this.data = data; + } +} diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpShakeQuery.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpShakeQuery.java new file mode 100644 index 00000000..bb9d326f --- /dev/null +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpShakeQuery.java @@ -0,0 +1,41 @@ +package me.chanjar.weixin.mp.bean; + +import com.google.gson.Gson; + +import java.util.HashMap; +import java.util.Map; + +/** + * Created by rememberber on 2017/6/5. + * + * @author rememberber + */ +public class WxMpShakeQuery { + + private String ticket; + + private int needPoi; + + public String toJsonString() { + Map
+ * 获取设备信息,包括UUID、major、minor,以及距离、openID等信息。 + * 详情请见: https://mp.weixin.qq.com/wiki?action=doc&id=mp1443447963 + * http请求方式: POST(请使用https协议) + * 接口地址:https://api.weixin.qq.com/shakearound/user/getshakeinfo?access_token=ACCESS_TOKE + *