|
@@ -220,15 +220,18 @@ public class WeixinUtil {
|
|
|
* 凭证
|
|
|
* @param appsecret
|
|
|
* 密钥
|
|
|
+ * @param isUpdate
|
|
|
+ * 是否更新 1,不需要更新,直接取缓存
|
|
|
* @return
|
|
|
*/
|
|
|
- public static AccessToken getAccessToken(String appid, String appsecret,String pubNo) {
|
|
|
-
|
|
|
- // 根据public No查询access_token
|
|
|
- Token token = cache.get(pubNo);
|
|
|
-
|
|
|
+ public static AccessToken getAccessToken(String appid, String appsecret,String pubNo,Integer isUpdate) {
|
|
|
+ Token token = null;
|
|
|
+ if(isUpdate == 1){
|
|
|
+ // 根据public No查询access_token
|
|
|
+ token = cache.get(pubNo);
|
|
|
+ }
|
|
|
AccessToken accessToken = null;
|
|
|
- //判断数据库中是否存在token
|
|
|
+ //判断缓存中是否存在token
|
|
|
if (token != null) {
|
|
|
//判断token是否失效
|
|
|
Date date = new Date();
|
|
@@ -330,11 +333,16 @@ public class WeixinUtil {
|
|
|
public static QRCJson createQrcodeByWechatMp(String json,String appId,String appSecret,String pubNo) {
|
|
|
QRCJson qrcJson = new QRCJson();
|
|
|
try {
|
|
|
- AccessToken at = getAccessToken(appId,appSecret,pubNo);
|
|
|
+ AccessToken at = getAccessToken(appId,appSecret,pubNo,1);
|
|
|
if (at != null) {
|
|
|
String token = at.getToken();
|
|
|
JSONObject jsonObject = httpRequest(NameUtils.get_token_url.replaceAll("TOKEN", token), "POST", json);
|
|
|
if (jsonObject != null) {
|
|
|
+ if(!jsonObject.containsKey("ticket")){
|
|
|
+ at = getAccessToken(appId,appSecret,pubNo,2);
|
|
|
+ token = at.getToken();
|
|
|
+ jsonObject = httpRequest(NameUtils.get_token_url.replaceAll("TOKEN", token), "POST", json);
|
|
|
+ }
|
|
|
String ticket = URLEncoder.encode(jsonObject.getString("ticket"), "UTF-8");
|
|
|
qrcJson.setTicket(ticket);
|
|
|
qrcJson.setUrl(NameUtils.show_qrcode_url + ticket);
|