From 37f5e59fbd8f1af211d0807d8bfd57bd1b788fe5 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Sun, 30 Jun 2019 23:14:21 +0800 Subject: [PATCH] =?UTF-8?q?#516=20=E5=AE=9E=E7=8E=B0=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=97=A8=E5=BA=97=E7=BD=91=E7=BB=9CWiFi=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/mp/api/WxMpWifiService.java | 18 +++++++++++++++++ .../mp/api/impl/WxMpWifiServiceImpl.java | 20 +++++++++++++++++-- .../chanjar/weixin/mp/enums/WxMpApiUrl.java | 7 ++++++- .../mp/api/impl/WxMpWifiServiceImplTest.java | 7 +++++++ 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpWifiService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpWifiService.java index 1ba40a77..b0876c76 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpWifiService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpWifiService.java @@ -45,4 +45,22 @@ public interface WxMpWifiService { * @throws WxErrorException 异常 */ WxMpWifiShopDataResult getShopWifiInfo(int shopId) throws WxErrorException; + + /** + *
+   * 修改门店网络信息.
+   * 通过此接口修改门店的网络信息,包括网络名称(ssid)或密码。需注意:
+   * 只有门店下已添加Wi-Fi网络信息,才能调用此接口修改网络信息;添加方式请参考“添加密码型设备”和"添加portal型设备”接口文档。
+   * 网络信息修改后,密码型设备需同步修改所有设备的ssid或密码;portal型设备需修改所有设备的ssid,并按照《硬件鉴权协议接口》修改“第二步:改造移动端portal页面”中的ssid参数,否则将无法正常连网。
+   * 文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1457435413
+   * 
+ * + * @param shopId 门店ID + * @param oldSsid 旧的ssid + * @param ssid 无线网络设备的ssid。32个字符以内;ssid支持中文,但可能因设备兼容性问题导致显示乱码,或无法连接等问题,相关风险自行承担! 当门店下是portal型设备时,ssid必填;当门店下是密码型设备时,ssid选填,且ssid和密码必须有一个以大写字母“WX”开头 + * @param password 无线网络设备的密码。8-24个字符;不能包含中文字符; 当门店下是密码型设备时,才可填写password,且ssid和密码必须有一个以大写字母“WX”开头 + * @return 是否更新成功 + * @throws WxErrorException . + */ + boolean updateShopWifiInfo(int shopId, String oldSsid, String ssid, String password) throws WxErrorException; } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImpl.java index 636ba4fe..0b75bb99 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImpl.java @@ -8,8 +8,7 @@ import me.chanjar.weixin.mp.api.WxMpWifiService; import me.chanjar.weixin.mp.bean.wifi.WxMpWifiShopDataResult; import me.chanjar.weixin.mp.bean.wifi.WxMpWifiShopListResult; -import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Wifi.BIZWIFI_SHOP_GET; -import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Wifi.BIZWIFI_SHOP_LIST; +import static me.chanjar.weixin.mp.enums.WxMpApiUrl.Wifi.*; /** *
@@ -37,4 +36,21 @@ public class WxMpWifiServiceImpl implements WxMpWifiService {
     json.addProperty("shop_id", shopId);
     return WxMpWifiShopDataResult.fromJson(this.wxMpService.post(BIZWIFI_SHOP_GET, json.toString()));
   }
+
+  @Override
+  public boolean updateShopWifiInfo(int shopId, String oldSsid, String ssid, String password) throws WxErrorException {
+    JsonObject json = new JsonObject();
+    json.addProperty("shop_id", shopId);
+    json.addProperty("old_ssid", oldSsid);
+    json.addProperty("ssid", ssid);
+    if (password != null) {
+      json.addProperty("password", password);
+    }
+    try {
+      this.wxMpService.post(BIZWIFI_SHOP_UPDATE, json.toString());
+      return true;
+    } catch (WxErrorException e) {
+      throw e;
+    }
+  }
 }
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java
index e6f529d2..22aeaa0b 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/enums/WxMpApiUrl.java
@@ -391,7 +391,12 @@ public interface WxMpApiUrl {
     /**
      * get.
      */
-    BIZWIFI_SHOP_GET(API_DEFAULT_HOST_URL, "/bizwifi/shop/get");
+    BIZWIFI_SHOP_GET(API_DEFAULT_HOST_URL, "/bizwifi/shop/get"),
+
+    /**
+     * upadte.
+     */
+    BIZWIFI_SHOP_UPDATE(API_DEFAULT_HOST_URL, "/bizwifi/shop/update");
 
     private String prefix;
     private String path;
diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImplTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImplTest.java
index 9ef98f77..d9225c7b 100644
--- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImplTest.java
+++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImplTest.java
@@ -43,6 +43,13 @@ public class WxMpWifiServiceImplTest {
     System.out.println(wifiInfo);
   }
 
+  @Test
+  public void testUpdateShopWifiInfo() throws WxErrorException {
+    final boolean result = this.wxService.getWifiService()
+      .updateShopWifiInfo(123, "123", "345", null);
+    assertThat(result).isTrue();
+  }
+
   public static class MockTest {
     private WxMpService wxService = mock(WxMpService.class);