|
3 | 3 | import cn.binarywang.wx.miniapp.api.WxMaService;
|
4 | 4 | import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
|
5 | 5 | import com.google.gson.JsonObject;
|
| 6 | +import com.google.gson.JsonParser; |
| 7 | +import com.google.gson.reflect.TypeToken; |
6 | 8 | import me.chanjar.weixin.common.bean.result.WxError;
|
7 | 9 | import me.chanjar.weixin.common.exception.WxErrorException;
|
8 | 10 | import me.chanjar.weixin.common.util.crypto.SHA1;
|
|
15 | 17 | import me.chanjar.weixin.open.api.WxOpenService;
|
16 | 18 | import me.chanjar.weixin.open.bean.WxOpenAuthorizerAccessToken;
|
17 | 19 | import me.chanjar.weixin.open.bean.WxOpenComponentAccessToken;
|
| 20 | +import me.chanjar.weixin.open.bean.WxOpenMaCodeTemplate; |
18 | 21 | import me.chanjar.weixin.open.bean.auth.WxOpenAuthorizationInfo;
|
19 | 22 | import me.chanjar.weixin.open.bean.message.WxOpenXmlMessage;
|
20 | 23 | import me.chanjar.weixin.open.bean.result.WxOpenAuthorizerInfoResult;
|
|
26 | 29 | import org.slf4j.LoggerFactory;
|
27 | 30 |
|
28 | 31 | import java.util.Hashtable;
|
| 32 | +import java.util.List; |
29 | 33 | import java.util.Map;
|
30 | 34 |
|
31 | 35 | /**
|
32 | 36 | * @author <a href="https://github.com/007gzs">007</a>
|
33 | 37 | */
|
34 | 38 | public class WxOpenComponentServiceImpl implements WxOpenComponentService {
|
35 |
| - |
| 39 | + private static final JsonParser JSON_PARSER = new JsonParser(); |
36 | 40 | private static final Map<String, WxMaService> WX_OPEN_MA_SERVICE_MAP = new Hashtable<>();
|
37 | 41 | private static final Map<String, WxMpService> WX_OPEN_MP_SERVICE_MAP = new Hashtable<>();
|
38 | 42 |
|
@@ -288,4 +292,45 @@ public WxMaJscode2SessionResult miniappJscode2Session(String appId, String jsCod
|
288 | 292 | return WxMaJscode2SessionResult.fromJson(responseContent);
|
289 | 293 | }
|
290 | 294 |
|
| 295 | + @Override |
| 296 | + public List<WxOpenMaCodeTemplate> getTemplateDraftList() throws WxErrorException { |
| 297 | + String responseContent = get(GET_TEMPLATE_DRAFT_LIST_URL); |
| 298 | + JsonObject response = JSON_PARSER.parse(StringUtils.defaultString(responseContent, "{}")).getAsJsonObject(); |
| 299 | + boolean hasDraftList = response.has("draft_list"); |
| 300 | + if (hasDraftList) { |
| 301 | + return WxOpenGsonBuilder.create().fromJson(response.getAsJsonArray("draft_list"), |
| 302 | + new TypeToken<List<WxOpenMaCodeTemplate>>() { |
| 303 | + }.getType()); |
| 304 | + } else { |
| 305 | + return null; |
| 306 | + } |
| 307 | + } |
| 308 | + |
| 309 | + @Override |
| 310 | + public List<WxOpenMaCodeTemplate> getTemplateList() throws WxErrorException { |
| 311 | + String responseContent = get(GET_TEMPLATE_LIST_URL); |
| 312 | + JsonObject response = JSON_PARSER.parse(StringUtils.defaultString(responseContent, "{}")).getAsJsonObject(); |
| 313 | + boolean hasDraftList = response.has("template_list"); |
| 314 | + if (hasDraftList) { |
| 315 | + return WxOpenGsonBuilder.create().fromJson(response.getAsJsonArray("template_list"), |
| 316 | + new TypeToken<List<WxOpenMaCodeTemplate>>() { |
| 317 | + }.getType()); |
| 318 | + } else { |
| 319 | + return null; |
| 320 | + } |
| 321 | + } |
| 322 | + |
| 323 | + @Override |
| 324 | + public void addToTemplate(long draftId) throws WxErrorException { |
| 325 | + JsonObject param = new JsonObject(); |
| 326 | + param.addProperty("draft_id", draftId); |
| 327 | + post(ADD_TO_TEMPLATE_URL, param.toString()); |
| 328 | + } |
| 329 | + |
| 330 | + @Override |
| 331 | + public void deleteTemplate(long templateId) throws WxErrorException { |
| 332 | + JsonObject param = new JsonObject(); |
| 333 | + param.addProperty("template_id", templateId); |
| 334 | + post(DELETE_TEMPLATE_URL, param.toString()); |
| 335 | + } |
291 | 336 | }
|
0 commit comments