@@ -415,6 +415,13 @@ public interface WxMpService { | |||
*/ | |||
WxMpAiOpenService getAiOpenService(); | |||
/** | |||
* 返回WIFI接口方法的实现类对象,以方便调用其各个接口 | |||
* | |||
* @return WxMpWifiService | |||
*/ | |||
WxMpWifiService getWifiService(); | |||
void setKefuService(WxMpKefuService kefuService); | |||
void setMaterialService(WxMpMaterialService materialService); | |||
@@ -0,0 +1,28 @@ | |||
package me.chanjar.weixin.mp.api; | |||
import me.chanjar.weixin.common.error.WxErrorException; | |||
import me.chanjar.weixin.mp.bean.wifi.WxMpWifiShopListResult; | |||
/** | |||
* <pre> | |||
* 微信连接WI-FI接口. | |||
* Created by BinaryWang on 2018/6/10. | |||
* </pre> | |||
* | |||
* @author <a href="https://github.com/binarywang">Binary Wang</a> | |||
*/ | |||
public interface WxMpWifiService { | |||
/** | |||
* <pre> | |||
* 获取Wi-Fi门店列表. | |||
* 通过此接口获取WiFi的门店列表,该列表包括公众平台的门店信息、以及添加设备后的WiFi相关信息。创建门店方法请参考“微信门店接口”。 | |||
* 注:微信连Wi-Fi下的所有接口中的shop_id,必需先通过此接口获取。 | |||
* | |||
* http请求方式: POST | |||
* 请求URL:https://api.weixin.qq.com/bizwifi/shop/list?access_token=ACCESS_TOKEN | |||
* </pre> | |||
* @param pageIndex 分页下标,默认从1开始 | |||
* @param pageSize 每页的个数,默认10个,最大20个 | |||
*/ | |||
WxMpWifiShopListResult listShop(int pageIndex, int pageSize) throws WxErrorException; | |||
} |
@@ -53,6 +53,7 @@ public abstract class BaseWxMpServiceImpl<H, P> implements WxMpService, RequestH | |||
private WxMpMemberCardService memberCardService = new WxMpMemberCardServiceImpl(this); | |||
private WxMpMassMessageService massMessageService = new WxMpMassMessageServiceImpl(this); | |||
private WxMpAiOpenService aiOpenService = new WxMpAiOpenServiceImpl(this); | |||
private WxMpWifiService wifiService = new WxMpWifiServiceImpl(this); | |||
private int retrySleepMillis = 1000; | |||
private int maxRetryTimes = 5; | |||
@@ -501,4 +502,9 @@ public abstract class BaseWxMpServiceImpl<H, P> implements WxMpService, RequestH | |||
public void setAiOpenService(WxMpAiOpenService aiOpenService) { | |||
this.aiOpenService = aiOpenService; | |||
} | |||
@Override | |||
public WxMpWifiService getWifiService() { | |||
return this.wifiService; | |||
} | |||
} |
@@ -0,0 +1,31 @@ | |||
package me.chanjar.weixin.mp.api.impl; | |||
import com.google.gson.JsonObject; | |||
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.WxMpWifiShopListResult; | |||
/** | |||
* <pre> | |||
* Created by BinaryWang on 2018/6/10. | |||
* </pre> | |||
* | |||
* @author <a href="https://github.com/binarywang">Binary Wang</a> | |||
*/ | |||
public class WxMpWifiServiceImpl implements WxMpWifiService { | |||
private WxMpService wxMpService; | |||
public WxMpWifiServiceImpl(WxMpService wxMpService) { | |||
this.wxMpService = wxMpService; | |||
} | |||
@Override | |||
public WxMpWifiShopListResult listShop(int pageIndex, int pageSize) throws WxErrorException { | |||
JsonObject json = new JsonObject(); | |||
json.addProperty("pageindex", pageIndex); | |||
json.addProperty("pagesize", pageSize); | |||
final String result = this.wxMpService.post("https://api.weixin.qq.com/bizwifi/shop/list", json.toString()); | |||
return WxMpWifiShopListResult.fromJson(result); | |||
} | |||
} |
@@ -0,0 +1,90 @@ | |||
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; | |||
/** | |||
* <pre> | |||
* Created by BinaryWang on 2018/6/10. | |||
* </pre> | |||
* | |||
* @author <a href="https://github.com/binarywang">Binary Wang</a> | |||
*/ | |||
@Data | |||
public class WxMpWifiShopListResult { | |||
public static WxMpWifiShopListResult fromJson(String json) { | |||
return WxMpGsonBuilder.create().fromJson( | |||
new JsonParser().parse(json).getAsJsonObject().get("data"), | |||
WxMpWifiShopListResult.class); | |||
} | |||
/** | |||
* 总数 | |||
*/ | |||
@SerializedName("totalcount") | |||
private int totalCount; | |||
/** | |||
* 分页下标 | |||
*/ | |||
@SerializedName("pageindex") | |||
private int pageIndex; | |||
/** | |||
* 分页页数 | |||
*/ | |||
@SerializedName("pagecount") | |||
private int pageCount; | |||
private List<Record> records; | |||
@Data | |||
public static class Record { | |||
/** | |||
* 门店ID(适用于微信连Wi-Fi业务) | |||
*/ | |||
@SerializedName("shop_id") | |||
private Integer shopId; | |||
/** | |||
* 门店名称 | |||
*/ | |||
@SerializedName("shop_name") | |||
private String shopName; | |||
/** | |||
* 无线网络设备的ssid,未添加设备为空,多个ssid时显示第一个 | |||
*/ | |||
@SerializedName("ssid") | |||
private String ssid; | |||
/** | |||
* 无线网络设备的ssid列表,返回数组格式 | |||
*/ | |||
@SerializedName("ssid_list") | |||
private List<String> ssidList; | |||
/** | |||
* 门店内设备的设备类型,0-未添加设备,1-专业型设备,4-密码型设备,5-portal自助型设备,31-portal改造型设备 | |||
*/ | |||
@SerializedName("protocol_type") | |||
private Integer protocolType; | |||
/** | |||
* 商户自己的id,与门店poi_id对应关系,建议在添加门店时候建立关联关系,具体请参考“微信门店接口” | |||
*/ | |||
@SerializedName("sid") | |||
private String sid; | |||
/** | |||
* 门店ID(适用于微信卡券、微信门店业务),具体定义参考微信门店,与shop_id一一对应 | |||
*/ | |||
@SerializedName("poi_id") | |||
private String poiId; | |||
} | |||
} |
@@ -0,0 +1,31 @@ | |||
package me.chanjar.weixin.mp.api.impl; | |||
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.WxMpWifiShopListResult; | |||
import org.testng.annotations.Guice; | |||
import org.testng.annotations.Test; | |||
import static org.testng.Assert.*; | |||
/** | |||
* <pre> | |||
* Created by BinaryWang on 2018/6/10. | |||
* </pre> | |||
* | |||
* @author <a href="https://github.com/binarywang">Binary Wang</a> | |||
*/ | |||
@Test | |||
@Guice(modules = ApiTestModule.class) | |||
public class WxMpWifiServiceImplTest { | |||
@Inject | |||
private WxMpService wxService; | |||
@Test | |||
public void testListShop() throws WxErrorException { | |||
final WxMpWifiShopListResult result = this.wxService.getWifiService().listShop(1, 2); | |||
System.out.println(result); | |||
} | |||
} |