|
@@ -3,8 +3,7 @@ package me.chanjar.weixin.mp.api.impl; |
|
|
import com.google.gson.JsonArray; |
|
|
import com.google.gson.JsonArray; |
|
|
import com.google.gson.JsonElement; |
|
|
import com.google.gson.JsonElement; |
|
|
import com.google.gson.JsonObject; |
|
|
import com.google.gson.JsonObject; |
|
|
import com.google.gson.internal.Streams; |
|
|
|
|
|
import com.google.gson.stream.JsonReader; |
|
|
|
|
|
|
|
|
import com.google.gson.JsonParser; |
|
|
import me.chanjar.weixin.common.bean.WxAccessToken; |
|
|
import me.chanjar.weixin.common.bean.WxAccessToken; |
|
|
import me.chanjar.weixin.common.bean.WxJsapiSignature; |
|
|
import me.chanjar.weixin.common.bean.WxJsapiSignature; |
|
|
import me.chanjar.weixin.common.bean.result.WxError; |
|
|
import me.chanjar.weixin.common.bean.result.WxError; |
|
@@ -29,11 +28,12 @@ import org.slf4j.Logger; |
|
|
import org.slf4j.LoggerFactory; |
|
|
import org.slf4j.LoggerFactory; |
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
import java.io.IOException; |
|
|
import java.io.StringReader; |
|
|
|
|
|
import java.security.NoSuchAlgorithmException; |
|
|
import java.security.NoSuchAlgorithmException; |
|
|
|
|
|
|
|
|
public class WxMpServiceImpl implements WxMpService { |
|
|
public class WxMpServiceImpl implements WxMpService { |
|
|
|
|
|
|
|
|
|
|
|
private static final JsonParser JSON_PARSER = new JsonParser(); |
|
|
|
|
|
|
|
|
protected final Logger log = LoggerFactory.getLogger(WxMpServiceImpl.class); |
|
|
protected final Logger log = LoggerFactory.getLogger(WxMpServiceImpl.class); |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@@ -141,7 +141,7 @@ public class WxMpServiceImpl implements WxMpService { |
|
|
if (this.wxMpConfigStorage.isJsapiTicketExpired()) { |
|
|
if (this.wxMpConfigStorage.isJsapiTicketExpired()) { |
|
|
String url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi"; |
|
|
String url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi"; |
|
|
String responseContent = execute(new SimpleGetRequestExecutor(), url, null); |
|
|
String responseContent = execute(new SimpleGetRequestExecutor(), url, null); |
|
|
JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent))); |
|
|
|
|
|
|
|
|
JsonElement tmpJsonElement = JSON_PARSER.parse(responseContent); |
|
|
JsonObject tmpJsonObject = tmpJsonElement.getAsJsonObject(); |
|
|
JsonObject tmpJsonObject = tmpJsonElement.getAsJsonObject(); |
|
|
String jsapiTicket = tmpJsonObject.get("ticket").getAsString(); |
|
|
String jsapiTicket = tmpJsonObject.get("ticket").getAsString(); |
|
|
int expiresInSeconds = tmpJsonObject.get("expires_in").getAsInt(); |
|
|
int expiresInSeconds = tmpJsonObject.get("expires_in").getAsInt(); |
|
@@ -224,7 +224,7 @@ public class WxMpServiceImpl implements WxMpService { |
|
|
o.addProperty("action", "long2short"); |
|
|
o.addProperty("action", "long2short"); |
|
|
o.addProperty("long_url", long_url); |
|
|
o.addProperty("long_url", long_url); |
|
|
String responseContent = execute(new SimplePostRequestExecutor(), url, o.toString()); |
|
|
String responseContent = execute(new SimplePostRequestExecutor(), url, o.toString()); |
|
|
JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent))); |
|
|
|
|
|
|
|
|
JsonElement tmpJsonElement = JSON_PARSER.parse(responseContent); |
|
|
return tmpJsonElement.getAsJsonObject().get("short_url").getAsString(); |
|
|
return tmpJsonElement.getAsJsonObject().get("short_url").getAsString(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@@ -232,7 +232,7 @@ public class WxMpServiceImpl implements WxMpService { |
|
|
public String templateSend(WxMpTemplateMessage templateMessage) throws WxErrorException { |
|
|
public String templateSend(WxMpTemplateMessage templateMessage) throws WxErrorException { |
|
|
String url = "https://api.weixin.qq.com/cgi-bin/message/template/send"; |
|
|
String url = "https://api.weixin.qq.com/cgi-bin/message/template/send"; |
|
|
String responseContent = execute(new SimplePostRequestExecutor(), url, templateMessage.toJson()); |
|
|
String responseContent = execute(new SimplePostRequestExecutor(), url, templateMessage.toJson()); |
|
|
JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent))); |
|
|
|
|
|
|
|
|
JsonElement tmpJsonElement = JSON_PARSER.parse(responseContent); |
|
|
final JsonObject jsonObject = tmpJsonElement.getAsJsonObject(); |
|
|
final JsonObject jsonObject = tmpJsonElement.getAsJsonObject(); |
|
|
if (jsonObject.get("errcode").getAsInt() == 0){ |
|
|
if (jsonObject.get("errcode").getAsInt() == 0){ |
|
|
return jsonObject.get("msgid").getAsString(); |
|
|
return jsonObject.get("msgid").getAsString(); |
|
@@ -356,7 +356,7 @@ public class WxMpServiceImpl implements WxMpService { |
|
|
public String[] getCallbackIP() throws WxErrorException { |
|
|
public String[] getCallbackIP() throws WxErrorException { |
|
|
String url = "https://api.weixin.qq.com/cgi-bin/getcallbackip"; |
|
|
String url = "https://api.weixin.qq.com/cgi-bin/getcallbackip"; |
|
|
String responseContent = get(url, null); |
|
|
String responseContent = get(url, null); |
|
|
JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent))); |
|
|
|
|
|
|
|
|
JsonElement tmpJsonElement = JSON_PARSER.parse(responseContent); |
|
|
JsonArray ipList = tmpJsonElement.getAsJsonObject().get("ip_list").getAsJsonArray(); |
|
|
JsonArray ipList = tmpJsonElement.getAsJsonObject().get("ip_list").getAsJsonArray(); |
|
|
String[] ipArray = new String[ipList.size()]; |
|
|
String[] ipArray = new String[ipList.size()]; |
|
|
for (int i = 0; i < ipList.size(); i++) { |
|
|
for (int i = 0; i < ipList.size(); i++) { |
|
|