weixin4j-mp:调整WeixinTicketCreator类
This commit is contained in:
parent
110619b3c3
commit
4f0382e726
@ -581,6 +581,8 @@
|
|||||||
|
|
||||||
+ weixin4j-mp:私有化WeixinProxy(TokenHolder)构造器
|
+ weixin4j-mp:私有化WeixinProxy(TokenHolder)构造器
|
||||||
|
|
||||||
|
+ weixin4j-mp:调整WeixinTicketCreator类
|
||||||
|
|
||||||
+ weixin4j-qy:WeixinProxy新增获取corpid(getCorpId)方法
|
+ weixin4j-qy:WeixinProxy新增获取corpid(getCorpId)方法
|
||||||
|
|
||||||
+ weixin4j-qy:WeixinProxy新增获取jsticket(getJSTicketHolder)方法
|
+ weixin4j-qy:WeixinProxy新增获取jsticket(getJSTicketHolder)方法
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package com.foxinmy.weixin4j.qy.type;
|
package com.foxinmy.weixin4j.type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 票据类型
|
* 票据类型(一般用于JSSDK
|
||||||
*
|
*
|
||||||
* @className TicketType
|
* @className TicketType
|
||||||
* @author jy
|
* @author jy
|
||||||
@ -11,11 +11,15 @@ package com.foxinmy.weixin4j.qy.type;
|
|||||||
*/
|
*/
|
||||||
public enum TicketType {
|
public enum TicketType {
|
||||||
/**
|
/**
|
||||||
* jsticket
|
* jsapi
|
||||||
*/
|
*/
|
||||||
jsticket,
|
jsapi,
|
||||||
/**
|
/**
|
||||||
* 选取联系人
|
* 公众平台-卡券
|
||||||
|
*/
|
||||||
|
wx_card,
|
||||||
|
/**
|
||||||
|
* 企业号-选取联系人
|
||||||
*/
|
*/
|
||||||
contact;
|
contact;
|
||||||
}
|
}
|
||||||
@ -42,7 +42,7 @@ import com.foxinmy.weixin4j.mp.model.QRResult;
|
|||||||
import com.foxinmy.weixin4j.mp.model.SemQuery;
|
import com.foxinmy.weixin4j.mp.model.SemQuery;
|
||||||
import com.foxinmy.weixin4j.mp.model.SemResult;
|
import com.foxinmy.weixin4j.mp.model.SemResult;
|
||||||
import com.foxinmy.weixin4j.mp.model.User;
|
import com.foxinmy.weixin4j.mp.model.User;
|
||||||
import com.foxinmy.weixin4j.mp.token.WeixinJSTicketCreator;
|
import com.foxinmy.weixin4j.mp.token.WeixinTicketCreator;
|
||||||
import com.foxinmy.weixin4j.mp.token.WeixinTokenCreator;
|
import com.foxinmy.weixin4j.mp.token.WeixinTokenCreator;
|
||||||
import com.foxinmy.weixin4j.mp.type.DatacubeType;
|
import com.foxinmy.weixin4j.mp.type.DatacubeType;
|
||||||
import com.foxinmy.weixin4j.mp.type.IndustryType;
|
import com.foxinmy.weixin4j.mp.type.IndustryType;
|
||||||
@ -54,6 +54,7 @@ import com.foxinmy.weixin4j.tuple.MpArticle;
|
|||||||
import com.foxinmy.weixin4j.tuple.MpVideo;
|
import com.foxinmy.weixin4j.tuple.MpVideo;
|
||||||
import com.foxinmy.weixin4j.tuple.Tuple;
|
import com.foxinmy.weixin4j.tuple.Tuple;
|
||||||
import com.foxinmy.weixin4j.type.MediaType;
|
import com.foxinmy.weixin4j.type.MediaType;
|
||||||
|
import com.foxinmy.weixin4j.type.TicketType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 微信公众平台接口实现
|
* 微信公众平台接口实现
|
||||||
@ -160,13 +161,16 @@ public class WeixinProxy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取JSSDK JSTicket的tokenHolder
|
* 获取JSSDK Ticket的tokenHolder
|
||||||
*
|
*
|
||||||
|
* @param ticketType
|
||||||
|
* 票据类型
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public TokenHolder getJSTicketHolder() {
|
public TokenHolder getTicketHolder(TicketType ticketType) {
|
||||||
return new TokenHolder(new WeixinJSTicketCreator(this.appId,
|
return new TokenHolder(new WeixinTicketCreator(this.appId,
|
||||||
this.tokenHolder), this.tokenHolder.getTokenStorager());
|
ticketType, this.tokenHolder),
|
||||||
|
this.tokenHolder.getTokenStorager());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -8,9 +8,10 @@ import com.foxinmy.weixin4j.model.Token;
|
|||||||
import com.foxinmy.weixin4j.mp.type.URLConsts;
|
import com.foxinmy.weixin4j.mp.type.URLConsts;
|
||||||
import com.foxinmy.weixin4j.token.TokenCreator;
|
import com.foxinmy.weixin4j.token.TokenCreator;
|
||||||
import com.foxinmy.weixin4j.token.TokenHolder;
|
import com.foxinmy.weixin4j.token.TokenHolder;
|
||||||
|
import com.foxinmy.weixin4j.type.TicketType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 微信公众平台JSTICKET创建者
|
* 微信公众平台TICKET创建(包括jsticket、其它JSSDK所需的ticket的创建
|
||||||
*
|
*
|
||||||
* @className WeixinJSTicketCreator
|
* @className WeixinJSTicketCreator
|
||||||
* @author jy
|
* @author jy
|
||||||
@ -20,9 +21,10 @@ import com.foxinmy.weixin4j.token.TokenHolder;
|
|||||||
* href="http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#.E9.99.84.E5.BD.951-JS-SDK.E4.BD.BF.E7.94.A8.E6.9D.83.E9.99.90.E7.AD.BE.E5.90.8D.E7.AE.97.E6.B3.95">JS
|
* href="http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html#.E9.99.84.E5.BD.951-JS-SDK.E4.BD.BF.E7.94.A8.E6.9D.83.E9.99.90.E7.AD.BE.E5.90.8D.E7.AE.97.E6.B3.95">JS
|
||||||
* TICKET</a>
|
* TICKET</a>
|
||||||
*/
|
*/
|
||||||
public class WeixinJSTicketCreator implements TokenCreator {
|
public class WeixinTicketCreator implements TokenCreator {
|
||||||
|
|
||||||
private final String appid;
|
private final String appid;
|
||||||
|
private final TicketType ticketType;
|
||||||
private final TokenHolder weixinTokenHolder;
|
private final TokenHolder weixinTokenHolder;
|
||||||
private final WeixinRequestExecutor weixinExecutor;
|
private final WeixinRequestExecutor weixinExecutor;
|
||||||
|
|
||||||
@ -31,25 +33,29 @@ public class WeixinJSTicketCreator implements TokenCreator {
|
|||||||
*
|
*
|
||||||
* @param appid
|
* @param appid
|
||||||
* 公众号的appid
|
* 公众号的appid
|
||||||
|
* @param ticketType
|
||||||
|
* 票据类型
|
||||||
* @param weixinTokenHolder
|
* @param weixinTokenHolder
|
||||||
* <font color="red">公众平台的access_token</font>
|
* <font color="red">公众平台的access_token</font>
|
||||||
*/
|
*/
|
||||||
public WeixinJSTicketCreator(String appid, TokenHolder weixinTokenHolder) {
|
public WeixinTicketCreator(String appid, TicketType ticketType,
|
||||||
|
TokenHolder weixinTokenHolder) {
|
||||||
this.appid = appid;
|
this.appid = appid;
|
||||||
|
this.ticketType = ticketType;
|
||||||
this.weixinTokenHolder = weixinTokenHolder;
|
this.weixinTokenHolder = weixinTokenHolder;
|
||||||
this.weixinExecutor = new WeixinRequestExecutor();
|
this.weixinExecutor = new WeixinRequestExecutor();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getCacheKey() {
|
public String getCacheKey() {
|
||||||
return String.format("wx_mp_jsticket_%s", appid);
|
return String.format("wx_mp_ticket_%s_%s", appid, ticketType.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Token createToken() throws WeixinException {
|
public Token createToken() throws WeixinException {
|
||||||
WeixinResponse response = weixinExecutor.get(String.format(
|
WeixinResponse response = weixinExecutor.get(String.format(
|
||||||
URLConsts.JS_TICKET_URL, weixinTokenHolder.getToken()
|
URLConsts.TICKET_URL, weixinTokenHolder.getToken()
|
||||||
.getAccessToken()));
|
.getAccessToken(), ticketType.name()));
|
||||||
JSONObject result = response.getAsJson();
|
JSONObject result = response.getAsJson();
|
||||||
Token token = new Token(result.getString("ticket"));
|
Token token = new Token(result.getString("ticket"));
|
||||||
token.setExpiresIn(result.getIntValue("expires_in"));
|
token.setExpiresIn(result.getIntValue("expires_in"));
|
||||||
@ -19,6 +19,6 @@ public final class URLConsts {
|
|||||||
/**
|
/**
|
||||||
* 公众平台jssdk获取token的url
|
* 公众平台jssdk获取token的url
|
||||||
*/
|
*/
|
||||||
public static final String JS_TICKET_URL = BASE_URL
|
public static final String TICKET_URL = BASE_URL
|
||||||
+ "/ticket/getticket?access_token=%s&type=jsapi";
|
+ "/ticket/getticket?access_token=%s&type=%s";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,12 +44,12 @@ import com.foxinmy.weixin4j.qy.token.WeixinTicketCreator;
|
|||||||
import com.foxinmy.weixin4j.qy.token.WeixinTokenCreator;
|
import com.foxinmy.weixin4j.qy.token.WeixinTokenCreator;
|
||||||
import com.foxinmy.weixin4j.qy.type.ChatType;
|
import com.foxinmy.weixin4j.qy.type.ChatType;
|
||||||
import com.foxinmy.weixin4j.qy.type.InviteType;
|
import com.foxinmy.weixin4j.qy.type.InviteType;
|
||||||
import com.foxinmy.weixin4j.qy.type.TicketType;
|
|
||||||
import com.foxinmy.weixin4j.qy.type.UserStatus;
|
import com.foxinmy.weixin4j.qy.type.UserStatus;
|
||||||
import com.foxinmy.weixin4j.token.TokenHolder;
|
import com.foxinmy.weixin4j.token.TokenHolder;
|
||||||
import com.foxinmy.weixin4j.token.TokenStorager;
|
import com.foxinmy.weixin4j.token.TokenStorager;
|
||||||
import com.foxinmy.weixin4j.tuple.MpArticle;
|
import com.foxinmy.weixin4j.tuple.MpArticle;
|
||||||
import com.foxinmy.weixin4j.type.MediaType;
|
import com.foxinmy.weixin4j.type.MediaType;
|
||||||
|
import com.foxinmy.weixin4j.type.TicketType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 微信企业号接口实现
|
* 微信企业号接口实现
|
||||||
|
|||||||
@ -5,10 +5,10 @@ import com.foxinmy.weixin4j.exception.WeixinException;
|
|||||||
import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor;
|
import com.foxinmy.weixin4j.http.weixin.WeixinRequestExecutor;
|
||||||
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
|
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
|
||||||
import com.foxinmy.weixin4j.model.Token;
|
import com.foxinmy.weixin4j.model.Token;
|
||||||
import com.foxinmy.weixin4j.qy.type.TicketType;
|
|
||||||
import com.foxinmy.weixin4j.qy.type.URLConsts;
|
import com.foxinmy.weixin4j.qy.type.URLConsts;
|
||||||
import com.foxinmy.weixin4j.token.TokenCreator;
|
import com.foxinmy.weixin4j.token.TokenCreator;
|
||||||
import com.foxinmy.weixin4j.token.TokenHolder;
|
import com.foxinmy.weixin4j.token.TokenHolder;
|
||||||
|
import com.foxinmy.weixin4j.type.TicketType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 微信企业号TICKET创建(包括jsticket、其它JSSDK所需的ticket的创建
|
* 微信企业号TICKET创建(包括jsticket、其它JSSDK所需的ticket的创建
|
||||||
@ -16,8 +16,9 @@ import com.foxinmy.weixin4j.token.TokenHolder;
|
|||||||
* @className WeixinTicketCreator
|
* @className WeixinTicketCreator
|
||||||
* @author jy
|
* @author jy
|
||||||
* @date 2015年12月25日
|
* @date 2015年12月25日
|
||||||
* @since JDK 1.6
|
* @since JDK 1.6 <a href=
|
||||||
*
|
* "http://qydev.weixin.qq.com/wiki/index.php?title=%E5%BE%AE%E4%BF%A1JS-SDK%E6%8E%A5%E5%8F%A3#.E9.99.84.E5.BD.951-JS-SDK.E4.BD.BF.E7.94.A8.E6.9D.83.E9.99.90.E7.AD.BE.E5.90.8D.E7.AE.97.E6.B3.95"
|
||||||
|
* >JSTICKET</a>
|
||||||
*/
|
*/
|
||||||
public class WeixinTicketCreator implements TokenCreator {
|
public class WeixinTicketCreator implements TokenCreator {
|
||||||
|
|
||||||
@ -50,7 +51,7 @@ public class WeixinTicketCreator implements TokenCreator {
|
|||||||
@Override
|
@Override
|
||||||
public Token createToken() throws WeixinException {
|
public Token createToken() throws WeixinException {
|
||||||
WeixinResponse response = null;
|
WeixinResponse response = null;
|
||||||
if (ticketType == TicketType.jsticket) {
|
if (ticketType == TicketType.jsapi) {
|
||||||
response = weixinExecutor.get(String.format(
|
response = weixinExecutor.get(String.format(
|
||||||
URLConsts.JS_TICKET_URL, weixinTokenHolder.getToken()
|
URLConsts.JS_TICKET_URL, weixinTokenHolder.getToken()
|
||||||
.getAccessToken()));
|
.getAccessToken()));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user