mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-05-03 20:27:46 +08:00
#516 添加WiFi门店管理查询门店Wi-Fi信息的接口
This commit is contained in:
parent
a4f5aa341b
commit
9c149bb1e2
@ -1,6 +1,7 @@
|
||||
package me.chanjar.weixin.mp.api;
|
||||
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.mp.bean.wifi.WxMpWifiShopDataResult;
|
||||
import me.chanjar.weixin.mp.bean.wifi.WxMpWifiShopListResult;
|
||||
|
||||
/**
|
||||
@ -21,8 +22,27 @@ public interface WxMpWifiService {
|
||||
* http请求方式: POST
|
||||
* 请求URL:https://api.weixin.qq.com/bizwifi/shop/list?access_token=ACCESS_TOKEN
|
||||
* </pre>
|
||||
* @param pageIndex 分页下标,默认从1开始
|
||||
*
|
||||
* @param pageIndex 分页下标,默认从1开始
|
||||
* @param pageSize 每页的个数,默认10个,最大20个
|
||||
* @return 结果
|
||||
* @throws WxErrorException 异常
|
||||
*/
|
||||
WxMpWifiShopListResult listShop(int pageIndex, int pageSize) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 查询门店Wi-Fi信息
|
||||
* 通过此接口查询某一门店的详细Wi-Fi信息,包括门店内的设备类型、ssid、密码、设备数量、商家主页URL、顶部常驻入口文案。
|
||||
*
|
||||
* http请求方式: POST
|
||||
* 请求URL:https://api.weixin.qq.com/bizwifi/shop/get?access_token=ACCESS_TOKEN
|
||||
* POST数据格式:JSON
|
||||
* </pre>
|
||||
*
|
||||
* @param shopId 门店ID
|
||||
* @return 结果
|
||||
* @throws WxErrorException 异常
|
||||
*/
|
||||
WxMpWifiShopDataResult getShopWifiInfo(int shopId) throws WxErrorException;
|
||||
}
|
||||
|
@ -5,10 +5,11 @@ import lombok.RequiredArgsConstructor;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.mp.api.WxMpService;
|
||||
import me.chanjar.weixin.mp.api.WxMpWifiService;
|
||||
import me.chanjar.weixin.mp.bean.wifi.WxMpWifiShopDataResult;
|
||||
import me.chanjar.weixin.mp.bean.wifi.WxMpWifiShopListResult;
|
||||
import me.chanjar.weixin.mp.enums.WxMpApiUrl;
|
||||
|
||||
import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Wifi.*;
|
||||
import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Wifi.BIZWIFI_SHOP_GET;
|
||||
import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Wifi.BIZWIFI_SHOP_LIST;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
@ -29,4 +30,11 @@ public class WxMpWifiServiceImpl implements WxMpWifiService {
|
||||
final String result = this.wxMpService.post(BIZWIFI_SHOP_LIST, json.toString());
|
||||
return WxMpWifiShopListResult.fromJson(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxMpWifiShopDataResult getShopWifiInfo(int shopId) throws WxErrorException {
|
||||
JsonObject json = new JsonObject();
|
||||
json.addProperty("shop_id", shopId);
|
||||
return WxMpWifiShopDataResult.fromJson(this.wxMpService.post(BIZWIFI_SHOP_GET, json.toString()));
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,114 @@
|
||||
package me.chanjar.weixin.mp.bean.wifi;
|
||||
|
||||
import com.google.gson.JsonParser;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 门店Wi-Fi信息.
|
||||
*
|
||||
* @author <a href="https://github.com/binarywang">Binary Wang</a>
|
||||
* @date 2019-06-16
|
||||
*/
|
||||
@Data
|
||||
public class WxMpWifiShopDataResult {
|
||||
public static WxMpWifiShopDataResult fromJson(String json) {
|
||||
return WxMpGsonBuilder.create().fromJson(
|
||||
new JsonParser().parse(json).getAsJsonObject().get("data"),
|
||||
WxMpWifiShopDataResult.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 门店名称.
|
||||
*/
|
||||
@SerializedName("shop_name")
|
||||
private String shopName;
|
||||
|
||||
/**
|
||||
* 无线网络设备的ssid,未添加设备为空,多个ssid时显示第一个.
|
||||
*/
|
||||
@SerializedName("ssid")
|
||||
private String ssid;
|
||||
|
||||
/**
|
||||
* 无线网络设备的ssid列表,返回数组格式.
|
||||
*/
|
||||
@SerializedName("ssid_list")
|
||||
private String[] ssidList;
|
||||
|
||||
/**
|
||||
* ssid和密码的列表,数组格式。当为密码型设备时,密码才有值.
|
||||
*/
|
||||
@SerializedName("ssid_password_list")
|
||||
private List<SsidPassword> ssidPasswordList;
|
||||
|
||||
/**
|
||||
* 设备密码,当设备类型为密码型时返回.
|
||||
*/
|
||||
@SerializedName("password")
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* 门店内设备的设备类型,0-未添加设备,4-密码型设备,31-portal型设备.
|
||||
*/
|
||||
@SerializedName("protocol_type")
|
||||
private Integer protocolType;
|
||||
|
||||
/**
|
||||
* 门店内设备总数.
|
||||
*/
|
||||
@SerializedName("ap_count")
|
||||
private Integer apCount;
|
||||
|
||||
/**
|
||||
* 商家主页模板类型.
|
||||
*/
|
||||
@SerializedName("template_id")
|
||||
private Integer templateId;
|
||||
|
||||
/**
|
||||
* 商家主页链接.
|
||||
*/
|
||||
@SerializedName("homepage_url")
|
||||
private String homepageUrl;
|
||||
|
||||
/**
|
||||
* 顶部常驻入口上显示的文本内容:0--欢迎光临+公众号名称;1--欢迎光临+门店名称;2--已连接+公众号名称+WiFi;3--已连接+门店名称+Wi-Fi.
|
||||
*/
|
||||
@SerializedName("bar_type")
|
||||
private Integer barType;
|
||||
|
||||
/**
|
||||
* 连网完成页链接.
|
||||
*/
|
||||
@SerializedName("finishpage_url")
|
||||
private String finishPageUrl;
|
||||
|
||||
/**
|
||||
* 商户自己的id,与门店poi_id对应关系,建议在添加门店时候建立关联关系,具体请参考“微信门店接口”.
|
||||
*/
|
||||
@SerializedName("sid")
|
||||
private String sid;
|
||||
|
||||
/**
|
||||
* 门店ID(适用于微信卡券、微信门店业务),具体定义参考微信门店,与shop_id一一对应.
|
||||
*/
|
||||
@SerializedName("poi_id")
|
||||
private String poiId;
|
||||
|
||||
@Data
|
||||
public static class SsidPassword {
|
||||
/**
|
||||
* 无线网络设备的ssid.
|
||||
*/
|
||||
private String ssid;
|
||||
|
||||
/**
|
||||
* 无线网络设备的password.
|
||||
*/
|
||||
private String password;
|
||||
}
|
||||
}
|
@ -23,19 +23,19 @@ public class WxMpWifiShopListResult {
|
||||
}
|
||||
|
||||
/**
|
||||
* 总数
|
||||
* 总数.
|
||||
*/
|
||||
@SerializedName("totalcount")
|
||||
private int totalCount;
|
||||
|
||||
/**
|
||||
* 分页下标
|
||||
* 分页下标.
|
||||
*/
|
||||
@SerializedName("pageindex")
|
||||
private int pageIndex;
|
||||
|
||||
/**
|
||||
* 分页页数
|
||||
* 分页页数.
|
||||
*/
|
||||
@SerializedName("pagecount")
|
||||
private int pageCount;
|
||||
@ -46,43 +46,46 @@ public class WxMpWifiShopListResult {
|
||||
public static class Record {
|
||||
|
||||
/**
|
||||
* 门店ID(适用于微信连Wi-Fi业务)
|
||||
* 门店ID(适用于微信连Wi-Fi业务).
|
||||
*/
|
||||
@SerializedName("shop_id")
|
||||
private Integer shopId;
|
||||
|
||||
/**
|
||||
* 门店名称
|
||||
* 门店名称.
|
||||
*/
|
||||
@SerializedName("shop_name")
|
||||
private String shopName;
|
||||
|
||||
/**
|
||||
* 无线网络设备的ssid,未添加设备为空,多个ssid时显示第一个
|
||||
* 无线网络设备的ssid,未添加设备为空,多个ssid时显示第一个.
|
||||
*/
|
||||
@SerializedName("ssid")
|
||||
private String ssid;
|
||||
|
||||
/**
|
||||
* 无线网络设备的ssid列表,返回数组格式
|
||||
* 无线网络设备的ssid列表,返回数组格式.
|
||||
*/
|
||||
@SerializedName("ssid_list")
|
||||
private List<String> ssidList;
|
||||
|
||||
/**
|
||||
* 门店内设备的设备类型,0-未添加设备,1-专业型设备,4-密码型设备,5-portal自助型设备,31-portal改造型设备
|
||||
* 门店内设备的设备类型.
|
||||
* 0-未添加设备,1-专业型设备,4-密码型设备,5-portal自助型设备,31-portal改造型设备
|
||||
*/
|
||||
@SerializedName("protocol_type")
|
||||
private Integer protocolType;
|
||||
|
||||
/**
|
||||
* 商户自己的id,与门店poi_id对应关系,建议在添加门店时候建立关联关系,具体请参考“微信门店接口”
|
||||
* 商户自己的id.
|
||||
* 与门店poi_id对应关系,建议在添加门店时候建立关联关系,具体请参考“微信门店接口”
|
||||
*/
|
||||
@SerializedName("sid")
|
||||
private String sid;
|
||||
|
||||
/**
|
||||
* 门店ID(适用于微信卡券、微信门店业务),具体定义参考微信门店,与shop_id一一对应
|
||||
* 门店ID(适用于微信卡券、微信门店业务).
|
||||
* 具体定义参考微信门店,与shop_id一一对应
|
||||
*/
|
||||
@SerializedName("poi_id")
|
||||
private String poiId;
|
||||
|
@ -386,7 +386,12 @@ public interface WxMpApiUrl {
|
||||
/**
|
||||
* list.
|
||||
*/
|
||||
BIZWIFI_SHOP_LIST(API_DEFAULT_HOST_URL, "/bizwifi/shop/list");
|
||||
BIZWIFI_SHOP_LIST(API_DEFAULT_HOST_URL, "/bizwifi/shop/list"),
|
||||
|
||||
/**
|
||||
* get.
|
||||
*/
|
||||
BIZWIFI_SHOP_GET(API_DEFAULT_HOST_URL, "/bizwifi/shop/get");
|
||||
|
||||
private String prefix;
|
||||
private String path;
|
||||
|
@ -4,11 +4,17 @@ import com.google.inject.Inject;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.mp.api.WxMpService;
|
||||
import me.chanjar.weixin.mp.api.test.ApiTestModule;
|
||||
import me.chanjar.weixin.mp.bean.wifi.WxMpWifiShopDataResult;
|
||||
import me.chanjar.weixin.mp.bean.wifi.WxMpWifiShopListResult;
|
||||
import org.testng.annotations.Guice;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import static org.testng.Assert.*;
|
||||
import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Wifi.BIZWIFI_SHOP_GET;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Matchers.anyString;
|
||||
import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
@ -26,6 +32,59 @@ public class WxMpWifiServiceImplTest {
|
||||
@Test
|
||||
public void testListShop() throws WxErrorException {
|
||||
final WxMpWifiShopListResult result = this.wxService.getWifiService().listShop(1, 2);
|
||||
assertThat(result).isNotNull();
|
||||
System.out.println(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetShopWifiInfo() throws WxErrorException {
|
||||
final WxMpWifiShopDataResult wifiInfo = this.wxService.getWifiService().getShopWifiInfo(123);
|
||||
assertThat(wifiInfo).isNotNull();
|
||||
System.out.println(wifiInfo);
|
||||
}
|
||||
|
||||
public static class MockTest {
|
||||
private WxMpService wxService = mock(WxMpService.class);
|
||||
|
||||
@Test
|
||||
public void testGetShopWifiInfo() throws Exception {
|
||||
String returnJson = "{\n" +
|
||||
" \"errcode\": 0,\n" +
|
||||
" \"data\": {\n" +
|
||||
" \"shop_name\": \"南山店\",\n" +
|
||||
" \"ssid\": \" WX123\",\n" +
|
||||
" \"ssid_list\": [\n" +
|
||||
" \"WX123\",\n" +
|
||||
" \"WX456\"\n" +
|
||||
" ],\n" +
|
||||
" \"ssid_password_list\": [\n" +
|
||||
" {\n" +
|
||||
" \"ssid\": \"WX123\",\n" +
|
||||
" \"password\": \"123456789\"\n" +
|
||||
" },\n" +
|
||||
" {\n" +
|
||||
" \"ssid\": \"WX456\",\n" +
|
||||
" \"password\": \"21332465dge\"\n" +
|
||||
" }\n" +
|
||||
" ],\n" +
|
||||
" \"password\": \"123456789\",\n" +
|
||||
" \"protocol_type\": 4,\n" +
|
||||
" \"ap_count\": 2,\n" +
|
||||
" \"template_id\": 1,\n" +
|
||||
" \"homepage_url\": \"http://www.weixin.qq.com/\",\n" +
|
||||
" \"bar_type\": 1,\n" +
|
||||
" \"sid\":\"\",\n" +
|
||||
" \"poi_id\":\"285633617\"\n" +
|
||||
" }\n" +
|
||||
"}";
|
||||
|
||||
when(wxService.post(eq(BIZWIFI_SHOP_GET), anyString())).thenReturn(returnJson);
|
||||
when(wxService.getWifiService()).thenReturn(new WxMpWifiServiceImpl(wxService));
|
||||
|
||||
final WxMpWifiShopDataResult wifiInfo = this.wxService.getWifiService().getShopWifiInfo(123);
|
||||
assertThat(wifiInfo).isNotNull();
|
||||
System.out.println(wifiInfo);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user