Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.config.WxMaConfig;
import java.util.function.Function;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.service.WxImgProcService;
import me.chanjar.weixin.common.service.WxOcrService;
Expand Down Expand Up @@ -213,12 +214,21 @@ public interface WxMaService extends WxService {
boolean switchover(String mpId);

/**
* 进行相应的公众号切换.
* 进行相应的小程序切换.
*
* @param miniAppId 小程序标识
* @return 切换成功 ,则返回当前对象,方便链式调用,否则抛出异常
*/
WxMaService switchoverTo(String miniAppId);

/**
* 进行相应的小程序切换.
*
* @param miniappId 小程序标识
* @param miniAppId 小程序标识
* @param func 当对应的小程序配置不存在时,允许通过函数的方式进行调用获取
* @return 切换成功 ,则返回当前对象,方便链式调用,否则抛出异常
*/
WxMaService switchoverTo(String miniappId);
WxMaService switchoverTo(String miniAppId, Function<String, WxMaConfig> func);

/**
* 返回消息(客服消息和模版消息)发送接口方法实现类,以方便调用其各个接口.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.google.common.collect.Maps;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import java.util.function.Function;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.bean.CommonUploadParam;
Expand Down Expand Up @@ -431,13 +432,26 @@ public void removeConfig(String miniappId) {
}

@Override
public WxMaService switchoverTo(String miniappId) {
if (this.configMap.containsKey(miniappId)) {
WxMaConfigHolder.set(miniappId);
public WxMaService switchoverTo(String miniAppId) {
return switchoverTo(miniAppId, null);
}

@Override
public WxMaService switchoverTo(String miniAppId, Function<String, WxMaConfig> func) {
if (this.configMap.containsKey(miniAppId)) {
WxMaConfigHolder.set(miniAppId);
return this;
}

throw new WxRuntimeException(String.format("无法找到对应【%s】的小程序配置信息,请核实!", miniappId));
if (func != null) {
WxMaConfig config = func.apply(miniAppId);
if (config != null) {
this.addConfig(miniAppId, config);
return this;
}
}

throw new WxRuntimeException(String.format("无法找到对应【%s】的小程序配置信息,请核实!", miniAppId));
}

@Override
Expand Down