Переглянути джерело

#516 增加获取Wi-Fi门店列表接口

master
Binary Wang 6 роки тому
джерело
коміт
ba7905a205
6 змінених файлів з 193 додано та 0 видалено
  1. +7
    -0
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java
  2. +28
    -0
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpWifiService.java
  3. +6
    -0
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java
  4. +31
    -0
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImpl.java
  5. +90
    -0
      weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/wifi/WxMpWifiShopListResult.java
  6. +31
    -0
      weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImplTest.java

+ 7
- 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpService.java Переглянути файл

@@ -415,6 +415,13 @@ public interface WxMpService {
*/
WxMpAiOpenService getAiOpenService();

/**
* 返回WIFI接口方法的实现类对象,以方便调用其各个接口
*
* @return WxMpWifiService
*/
WxMpWifiService getWifiService();

void setKefuService(WxMpKefuService kefuService);

void setMaterialService(WxMpMaterialService materialService);


+ 28
- 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpWifiService.java Переглянути файл

@@ -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;
}

+ 6
- 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/BaseWxMpServiceImpl.java Переглянути файл

@@ -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;
}
}

+ 31
- 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImpl.java Переглянути файл

@@ -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);
}
}

+ 90
- 0
weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/wifi/WxMpWifiShopListResult.java Переглянути файл

@@ -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;
}
}

+ 31
- 0
weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpWifiServiceImplTest.java Переглянути файл

@@ -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);
}
}

Завантаження…
Відмінити
Зберегти