Skip to content

Commit 37f5e59

Browse files
committed
#516 实现修改门店网络WiFi信息的接口
1 parent 7ac670b commit 37f5e59

File tree

4 files changed

+49
-3
lines changed

4 files changed

+49
-3
lines changed

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpWifiService.java

+18
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,22 @@ public interface WxMpWifiService {
4545
* @throws WxErrorException 异常
4646
*/
4747
WxMpWifiShopDataResult getShopWifiInfo(int shopId) throws WxErrorException;
48+
49+
/**
50+
* <pre>
51+
* 修改门店网络信息.
52+
* 通过此接口修改门店的网络信息,包括网络名称(ssid)或密码。需注意:
53+
* 只有门店下已添加Wi-Fi网络信息,才能调用此接口修改网络信息;添加方式请参考“添加密码型设备”和"添加portal型设备”接口文档。
54+
* 网络信息修改后,密码型设备需同步修改所有设备的ssid或密码;portal型设备需修改所有设备的ssid,并按照《硬件鉴权协议接口》修改“第二步:改造移动端portal页面”中的ssid参数,否则将无法正常连网。
55+
* 文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1457435413
56+
* </pre>
57+
*
58+
* @param shopId 门店ID
59+
* @param oldSsid 旧的ssid
60+
* @param ssid 无线网络设备的ssid。32个字符以内;ssid支持中文,但可能因设备兼容性问题导致显示乱码,或无法连接等问题,相关风险自行承担! 当门店下是portal型设备时,ssid必填;当门店下是密码型设备时,ssid选填,且ssid和密码必须有一个以大写字母“WX”开头
61+
* @param password 无线网络设备的密码。8-24个字符;不能包含中文字符; 当门店下是密码型设备时,才可填写password,且ssid和密码必须有一个以大写字母“WX”开头
62+
* @return 是否更新成功
63+
* @throws WxErrorException .
64+
*/
65+
boolean updateShopWifiInfo(int shopId, String oldSsid, String ssid, String password) throws WxErrorException;
4866
}

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImpl.java

+18-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
import me.chanjar.weixin.mp.bean.wifi.WxMpWifiShopDataResult;
99
import me.chanjar.weixin.mp.bean.wifi.WxMpWifiShopListResult;
1010

11-
import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Wifi.BIZWIFI_SHOP_GET;
12-
import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Wifi.BIZWIFI_SHOP_LIST;
11+
import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Wifi.*;
1312

1413
/**
1514
* <pre>
@@ -37,4 +36,21 @@ public WxMpWifiShopDataResult getShopWifiInfo(int shopId) throws WxErrorExceptio
3736
json.addProperty("shop_id", shopId);
3837
return WxMpWifiShopDataResult.fromJson(this.wxMpService.post(BIZWIFI_SHOP_GET, json.toString()));
3938
}
39+
40+
@Override
41+
public boolean updateShopWifiInfo(int shopId, String oldSsid, String ssid, String password) throws WxErrorException {
42+
JsonObject json = new JsonObject();
43+
json.addProperty("shop_id", shopId);
44+
json.addProperty("old_ssid", oldSsid);
45+
json.addProperty("ssid", ssid);
46+
if (password != null) {
47+
json.addProperty("password", password);
48+
}
49+
try {
50+
this.wxMpService.post(BIZWIFI_SHOP_UPDATE, json.toString());
51+
return true;
52+
} catch (WxErrorException e) {
53+
throw e;
54+
}
55+
}
4056
}

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,12 @@ enum Wifi implements WxMpApiUrl {
391391
/**
392392
* get.
393393
*/
394-
BIZWIFI_SHOP_GET(API_DEFAULT_HOST_URL, "/bizwifi/shop/get");
394+
BIZWIFI_SHOP_GET(API_DEFAULT_HOST_URL, "/bizwifi/shop/get"),
395+
396+
/**
397+
* upadte.
398+
*/
399+
BIZWIFI_SHOP_UPDATE(API_DEFAULT_HOST_URL, "/bizwifi/shop/update");
395400

396401
private String prefix;
397402
private String path;

weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImplTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,13 @@ public void testGetShopWifiInfo() throws WxErrorException {
4343
System.out.println(wifiInfo);
4444
}
4545

46+
@Test
47+
public void testUpdateShopWifiInfo() throws WxErrorException {
48+
final boolean result = this.wxService.getWifiService()
49+
.updateShopWifiInfo(123, "123", "345", null);
50+
assertThat(result).isTrue();
51+
}
52+
4653
public static class MockTest {
4754
private WxMpService wxService = mock(WxMpService.class);
4855

0 commit comments

Comments
 (0)