🆕 #2846 【企业微信】增加待开发应用获取带参授权链接的接口
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
package me.chanjar.weixin.cp.bean;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||
|
||||
/**
|
||||
* @author freedom
|
||||
* @date 2022/10/20 16:36
|
||||
*/
|
||||
@Data
|
||||
public class WxTpCustomizedAuthUrl extends WxCpBaseResp {
|
||||
|
||||
/**
|
||||
* 可用来生成二维码的授权url,需要开发者自行生成为二维码
|
||||
*/
|
||||
@SerializedName("qrcode_url")
|
||||
private String qrCodeURL;
|
||||
|
||||
/**
|
||||
* 有效期(秒)。10天过期。
|
||||
*/
|
||||
@SerializedName("expires_in")
|
||||
private Integer expiresIn;
|
||||
|
||||
/**
|
||||
* From json wx cp tp customized auth url.
|
||||
*
|
||||
* @param json the json
|
||||
* @return the wx cp tp customized auth url
|
||||
*/
|
||||
public static WxTpCustomizedAuthUrl fromJson(String json) {
|
||||
return WxCpGsonBuilder.create().fromJson(json, WxTpCustomizedAuthUrl.class);
|
||||
}
|
||||
|
||||
public String toJson() {
|
||||
return WxCpGsonBuilder.create().toJson(this);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -781,6 +781,11 @@ public interface WxCpApiPathConsts {
|
||||
*/
|
||||
String GET_LOGIN_INFO = "/cgi-bin/service/get_login_info";
|
||||
|
||||
/**
|
||||
* The constant GET_CUSTOMIZED_AUTH_URL.
|
||||
*/
|
||||
String GET_CUSTOMIZED_AUTH_URL = "/cgi-bin/service/get_customized_auth_url";
|
||||
|
||||
|
||||
/**
|
||||
* The constant CONTACT_SEARCH.
|
||||
|
||||
@@ -10,6 +10,10 @@ import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||
import me.chanjar.weixin.cp.bean.*;
|
||||
import me.chanjar.weixin.cp.config.WxCpTpConfigStorage;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 企业微信第三方应用API的Service.
|
||||
*
|
||||
@@ -389,6 +393,18 @@ public interface WxCpTpService {
|
||||
*/
|
||||
WxTpLoginInfo getLoginInfo(String authCode) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* 获取带参授权链接
|
||||
* <p>
|
||||
* 文档地址:https://developer.work.weixin.qq.com/document/path/95436
|
||||
*
|
||||
* @param state state
|
||||
* @param templateIdList 代开发自建应用模版ID列表,数量不能超过9个
|
||||
* @return customized auth url
|
||||
* @throws WxErrorException the wx error exception
|
||||
*/
|
||||
WxTpCustomizedAuthUrl getCustomizedAuthUrl(@NotBlank String state, @NotEmpty List<String> templateIdList) throws WxErrorException;
|
||||
|
||||
/**
|
||||
* 获取服务商providerToken
|
||||
*
|
||||
|
||||
@@ -22,15 +22,19 @@ import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||
import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor;
|
||||
import me.chanjar.weixin.common.util.http.SimplePostRequestExecutor;
|
||||
import me.chanjar.weixin.common.util.json.GsonParser;
|
||||
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
|
||||
import me.chanjar.weixin.cp.bean.*;
|
||||
import me.chanjar.weixin.cp.config.WxCpTpConfigStorage;
|
||||
import me.chanjar.weixin.cp.tp.service.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Tp.*;
|
||||
@@ -534,6 +538,16 @@ public abstract class BaseWxCpTpServiceImpl<H, P> implements WxCpTpService, Requ
|
||||
return WxTpLoginInfo.fromJson(responseText);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxTpCustomizedAuthUrl getCustomizedAuthUrl(@NotBlank String state, @NotEmpty List<String> templateIdList) throws WxErrorException {
|
||||
JsonObject jsonObject = new JsonObject();
|
||||
jsonObject.addProperty("state", state);
|
||||
jsonObject.add("templateid_list", WxGsonBuilder.create().toJsonTree(templateIdList).getAsJsonArray());
|
||||
|
||||
String responseText = post(configStorage.getApiUrl(GET_CUSTOMIZED_AUTH_URL) + "?provider_access_token=" + getWxCpProviderToken(), jsonObject.toString(), true);
|
||||
return WxTpCustomizedAuthUrl.fromJson(responseText);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getWxCpProviderToken() throws WxErrorException {
|
||||
if (this.configStorage.isProviderTokenExpired()) {
|
||||
|
||||
Reference in New Issue
Block a user