Browse Source

规范化小程序模块的部分代码

master
Binary Wang 7 years ago
parent
commit
447c73e43a
17 changed files with 77 additions and 37 deletions
  1. +2
    -1
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaMsgServiceImpl.java
  2. +5
    -4
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceImpl.java
  3. +2
    -2
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaUserServiceImpl.java
  4. +3
    -2
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/AbstractWxMaQrcodeWrapper.java
  5. +1
    -0
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaCodeLineColor.java
  6. +2
    -2
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessage.java
  7. +1
    -1
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaQrcode.java
  8. +4
    -2
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaWxcode.java
  9. +4
    -2
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaWxcodeLimit.java
  10. +2
    -2
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageBuilder.java
  11. +1
    -0
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaInMemoryConfig.java
  12. +34
    -3
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaConstants.java
  13. +6
    -6
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/message/WxMaMessageRouter.java
  14. +1
    -1
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/message/WxMaMessageRouterRule.java
  15. +3
    -3
      weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/util/http/QrCodeRequestExecutor.java
  16. +2
    -2
      weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessageTest.java
  17. +4
    -4
      weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/demo/WxMaDemoServer.java

+ 2
- 1
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaMsgServiceImpl.java View File

@@ -4,6 +4,7 @@ import cn.binarywang.wx.miniapp.api.WxMaMsgService;
import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage; import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage; import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage;
import cn.binarywang.wx.miniapp.constant.WxMaConstants;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonParser; import com.google.gson.JsonParser;
import me.chanjar.weixin.common.bean.result.WxError; import me.chanjar.weixin.common.bean.result.WxError;
@@ -30,7 +31,7 @@ public class WxMaMsgServiceImpl implements WxMaMsgService {
public void sendTemplateMsg(WxMaTemplateMessage templateMessage) throws WxErrorException { public void sendTemplateMsg(WxMaTemplateMessage templateMessage) throws WxErrorException {
String responseContent = this.wxMaService.post(TEMPLATE_MSG_SEND_URL, templateMessage.toJson()); String responseContent = this.wxMaService.post(TEMPLATE_MSG_SEND_URL, templateMessage.toJson());
JsonObject jsonObject = JSON_PARSER.parse(responseContent).getAsJsonObject(); JsonObject jsonObject = JSON_PARSER.parse(responseContent).getAsJsonObject();
if (jsonObject.get("errcode").getAsInt() != 0) {
if (jsonObject.get(WxMaConstants.ERRCODE).getAsInt() != 0) {
throw new WxErrorException(WxError.fromJson(responseContent)); throw new WxErrorException(WxError.fromJson(responseContent));
} }
} }


+ 5
- 4
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceImpl.java View File

@@ -2,6 +2,7 @@ package cn.binarywang.wx.miniapp.api.impl;


import cn.binarywang.wx.miniapp.api.*; import cn.binarywang.wx.miniapp.api.*;
import cn.binarywang.wx.miniapp.config.WxMaConfig; import cn.binarywang.wx.miniapp.config.WxMaConfig;
import cn.binarywang.wx.miniapp.constant.WxMaConstants;
import com.google.gson.JsonParser; 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.result.WxError; import me.chanjar.weixin.common.bean.result.WxError;
@@ -147,6 +148,7 @@ public class WxMaServiceImpl implements WxMaService, RequestHttp<CloseableHttpCl
/** /**
* 向微信端发送请求,在这里执行的策略是当发生access_token过期时才去刷新,然后重新执行请求,而不是全局定时请求 * 向微信端发送请求,在这里执行的策略是当发生access_token过期时才去刷新,然后重新执行请求,而不是全局定时请求
*/ */
@Override
public <T, E> T execute(RequestExecutor<T, E> executor, String uri, E data) throws WxErrorException { public <T, E> T execute(RequestExecutor<T, E> executor, String uri, E data) throws WxErrorException {
int retryTimes = 0; int retryTimes = 0;
do { do {
@@ -195,11 +197,10 @@ public class WxMaServiceImpl implements WxMaService, RequestHttp<CloseableHttpCl
WxError error = e.getError(); WxError error = e.getError();
/* /*
* 发生以下情况时尝试刷新access_token * 发生以下情况时尝试刷新access_token
* 40001 获取access_token时AppSecret错误,或者access_token无效
* 42001 access_token超时
* 40014 不合法的access_token,请开发者认真比对access_token的有效性(如是否过期)
*/ */
if (error.getErrorCode() == 42001 || error.getErrorCode() == 40001 || error.getErrorCode() == 40014) {
if (error.getErrorCode() == WxMaConstants.ErrorCode.ERR_40001
|| error.getErrorCode() == WxMaConstants.ErrorCode.ERR_42001
|| error.getErrorCode() == WxMaConstants.ErrorCode.ERR_40014) {
// 强制设置wxMpConfigStorage它的access token过期了,这样在下一次请求里就会刷新access token // 强制设置wxMpConfigStorage它的access token过期了,这样在下一次请求里就会刷新access token
this.getWxMaConfig().expireAccessToken(); this.getWxMaConfig().expireAccessToken();
if (this.getWxMaConfig().autoRefreshToken()) { if (this.getWxMaConfig().autoRefreshToken()) {


+ 2
- 2
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaUserServiceImpl.java View File

@@ -19,14 +19,14 @@ import java.util.Map;
public class WxMaUserServiceImpl implements WxMaUserService { public class WxMaUserServiceImpl implements WxMaUserService {
private WxMaService service; private WxMaService service;


WxMaUserServiceImpl(WxMaService service) {
public WxMaUserServiceImpl(WxMaService service) {
this.service = service; this.service = service;
} }


@Override @Override
public WxMaJscode2SessionResult getSessionInfo(String jsCode) throws WxErrorException { public WxMaJscode2SessionResult getSessionInfo(String jsCode) throws WxErrorException {
final WxMaConfig config = service.getWxMaConfig(); final WxMaConfig config = service.getWxMaConfig();
Map<String, String> params = new HashMap<>();
Map<String, String> params = new HashMap<>(8);
params.put("appid", config.getAppid()); params.put("appid", config.getAppid());
params.put("secret", config.getSecret()); params.put("secret", config.getSecret());
params.put("js_code", jsCode); params.put("js_code", jsCode);


weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaQrcodeWrapper.java → weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/AbstractWxMaQrcodeWrapper.java View File

@@ -4,9 +4,10 @@ import cn.binarywang.wx.miniapp.util.json.WxMaGsonBuilder;


/** /**
* 微信二维码(小程序码)包装器 * 微信二维码(小程序码)包装器
* Created by Element on 2017/7/27.
*
* @author Element
*/ */
public abstract class WxMaQrcodeWrapper {
public abstract class AbstractWxMaQrcodeWrapper {


@Override @Override
public String toString() { public String toString() {

+ 1
- 0
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaCodeLineColor.java View File

@@ -6,6 +6,7 @@ package cn.binarywang.wx.miniapp.bean;
* 用于描述二维码(小程序码)颜色(RGB参数值), * 用于描述二维码(小程序码)颜色(RGB参数值),
* 详情请查看文档 https://mp.weixin.qq.com/debug/wxadoc/dev/api/qrcode.html * 详情请查看文档 https://mp.weixin.qq.com/debug/wxadoc/dev/api/qrcode.html
* </pre> * </pre>
* @author Element
*/ */
public class WxMaCodeLineColor { public class WxMaCodeLineColor {
private String r = "0", g = "0", b = "0"; private String r = "0", g = "0", b = "0";


+ 2
- 2
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessage.java View File

@@ -25,14 +25,14 @@ public class WxMaKefuMessage implements Serializable {
/** /**
* 获得文本消息builder * 获得文本消息builder
*/ */
public static TextBuilder TEXT() {
public static TextBuilder newTextBuilder() {
return new TextBuilder(); return new TextBuilder();
} }


/** /**
* 获得图片消息builder * 获得图片消息builder
*/ */
public static ImageBuilder IMAGE() {
public static ImageBuilder newImageBuilder() {
return new ImageBuilder(); return new ImageBuilder();
} }




+ 1
- 1
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaQrcode.java View File

@@ -7,7 +7,7 @@ import java.io.Serializable;
/** /**
* @author <a href="https://github.com/binarywang">Binary Wang</a> * @author <a href="https://github.com/binarywang">Binary Wang</a>
*/ */
public class WxMaQrcode extends WxMaQrcodeWrapper implements Serializable {
public class WxMaQrcode extends AbstractWxMaQrcodeWrapper implements Serializable {
private static final long serialVersionUID = 5777119669111011584L; private static final long serialVersionUID = 5777119669111011584L;
private String path; private String path;
private int width = 430; private int width = 430;


+ 4
- 2
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaWxcode.java View File

@@ -6,9 +6,11 @@ import com.google.gson.annotations.SerializedName;
import java.io.Serializable; import java.io.Serializable;


/** /**
* Created by Element on 2017/7/27.
*
* @author Element
* @date 2017/7/27
*/ */
public class WxMaWxcode extends WxMaQrcodeWrapper implements Serializable {
public class WxMaWxcode extends AbstractWxMaQrcodeWrapper implements Serializable {


private static final long serialVersionUID = 1287399621649210322L; private static final long serialVersionUID = 1287399621649210322L;
private String path; private String path;


+ 4
- 2
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaWxcodeLimit.java View File

@@ -6,9 +6,11 @@ import com.google.gson.annotations.SerializedName;
import java.io.Serializable; import java.io.Serializable;


/** /**
* Created by Element on 2017/7/27.
*
* @author Element
* @date 2017/7/27
*/ */
public class WxMaWxcodeLimit extends WxMaQrcodeWrapper implements Serializable {
public class WxMaWxcodeLimit extends AbstractWxMaQrcodeWrapper implements Serializable {
private static final long serialVersionUID = 4782193774524960401L; private static final long serialVersionUID = 4782193774524960401L;
private String scene; private String scene;
private String page; private String page;


+ 2
- 2
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageBuilder.java View File

@@ -13,8 +13,8 @@ public final class ImageBuilder extends BaseBuilder<ImageBuilder> {
this.msgType = WxMaConstants.KefuMsgType.IMAGE; this.msgType = WxMaConstants.KefuMsgType.IMAGE;
} }


public ImageBuilder mediaId(String media_id) {
this.mediaId = media_id;
public ImageBuilder mediaId(String mediaId) {
this.mediaId = mediaId;
return this; return this;
} }




+ 1
- 0
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/config/WxMaInMemoryConfig.java View File

@@ -175,6 +175,7 @@ public class WxMaInMemoryConfig implements WxMaConfig {
return true; return true;
} }


@Override
public String getAppid() { public String getAppid() {
return appid; return appid;
} }


+ 34
- 3
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaConstants.java View File

@@ -8,11 +8,19 @@ package cn.binarywang.wx.miniapp.constant;
* @author <a href="https://github.com/binarywang">Binary Wang</a> * @author <a href="https://github.com/binarywang">Binary Wang</a>
*/ */
public class WxMaConstants { public class WxMaConstants {
/**
* 微信接口返回的参数errcode
*/
public static final String ERRCODE = "errcode";

/** /**
* 素材类型 * 素材类型
*/ */
public static class MediaType { public static class MediaType {
public static final String IMAGE = "image";//图片
/**
* 图片
*/
public static final String IMAGE = "image";
} }


/** /**
@@ -27,7 +35,30 @@ public class WxMaConstants {
* 客服消息的消息类型 * 客服消息的消息类型
*/ */
public static class KefuMsgType { public static class KefuMsgType {
public static final String TEXT = "text";//文本消息
public static final String IMAGE = "image";//图片消息
/**
* 文本消息
*/
public static final String TEXT = "text";
/**
* 图片消息
*/
public static final String IMAGE = "image";
}

public static final class ErrorCode {
/**
* 40001 获取access_token时AppSecret错误,或者access_token无效
*/
public static final int ERR_40001 = 40001;

/**
* 42001 access_token超时
*/
public static final int ERR_42001 = 42001;

/**
* 40014 不合法的access_token,请开发者认真比对access_token的有效性(如是否过期)
*/
public static final int ERR_40014 = 40014;
} }
} }

+ 6
- 6
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/message/WxMaMessageRouter.java View File

@@ -2,6 +2,7 @@ package cn.binarywang.wx.miniapp.message;


import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaMessage; import cn.binarywang.wx.miniapp.bean.WxMaMessage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import me.chanjar.weixin.common.api.WxErrorExceptionHandler; import me.chanjar.weixin.common.api.WxErrorExceptionHandler;
import me.chanjar.weixin.common.api.WxMessageDuplicateChecker; import me.chanjar.weixin.common.api.WxMessageDuplicateChecker;
import me.chanjar.weixin.common.api.WxMessageInMemoryDuplicateChecker; import me.chanjar.weixin.common.api.WxMessageInMemoryDuplicateChecker;
@@ -17,10 +18,7 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.*;


/** /**
* @author <a href="https://github.com/binarywang">Binary Wang</a> * @author <a href="https://github.com/binarywang">Binary Wang</a>
@@ -42,7 +40,9 @@ public class WxMaMessageRouter {


public WxMaMessageRouter(WxMaService wxMaService) { public WxMaMessageRouter(WxMaService wxMaService) {
this.wxMaService = wxMaService; this.wxMaService = wxMaService;
this.executorService = Executors.newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE);
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("WxMaMessageRouter-pool-%d").build();
this.executorService = new ThreadPoolExecutor(DEFAULT_THREAD_POOL_SIZE, DEFAULT_THREAD_POOL_SIZE,
0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(), namedThreadFactory);
this.messageDuplicateChecker = new WxMessageInMemoryDuplicateChecker(); this.messageDuplicateChecker = new WxMessageInMemoryDuplicateChecker();
this.sessionManager = new StandardSessionManager(); this.sessionManager = new StandardSessionManager();
this.exceptionHandler = new LogExceptionHandler(); this.exceptionHandler = new LogExceptionHandler();
@@ -159,7 +159,7 @@ public class WxMaMessageRouter {
} }


public void route(final WxMaMessage wxMessage) { public void route(final WxMaMessage wxMessage) {
this.route(wxMessage, new HashMap<String, Object>());
this.route(wxMessage, new HashMap<String, Object>(2));
} }


/** /**


+ 1
- 1
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/message/WxMaMessageRouterRule.java View File

@@ -196,7 +196,7 @@ public class WxMaMessageRouterRule {
WxSessionManager sessionManager, WxSessionManager sessionManager,
WxErrorExceptionHandler exceptionHandler) { WxErrorExceptionHandler exceptionHandler) {
if (context == null) { if (context == null) {
context = new HashMap<>();
context = new HashMap<>(16);
} }


try { try {


+ 3
- 3
weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/util/http/QrCodeRequestExecutor.java View File

@@ -1,6 +1,6 @@
package cn.binarywang.wx.miniapp.util.http; package cn.binarywang.wx.miniapp.util.http;


import cn.binarywang.wx.miniapp.bean.WxMaQrcodeWrapper;
import cn.binarywang.wx.miniapp.bean.AbstractWxMaQrcodeWrapper;
import me.chanjar.weixin.common.bean.result.WxError; import me.chanjar.weixin.common.bean.result.WxError;
import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.common.util.fs.FileUtils; import me.chanjar.weixin.common.util.fs.FileUtils;
@@ -25,7 +25,7 @@ import java.util.UUID;
/** /**
* @author <a href="https://github.com/binarywang">Binary Wang</a> * @author <a href="https://github.com/binarywang">Binary Wang</a>
*/ */
public class QrCodeRequestExecutor implements RequestExecutor<File, WxMaQrcodeWrapper> {
public class QrCodeRequestExecutor implements RequestExecutor<File, AbstractWxMaQrcodeWrapper> {
protected RequestHttp<CloseableHttpClient, HttpHost> requestHttp; protected RequestHttp<CloseableHttpClient, HttpHost> requestHttp;


public QrCodeRequestExecutor(RequestHttp requestHttp) { public QrCodeRequestExecutor(RequestHttp requestHttp) {
@@ -33,7 +33,7 @@ public class QrCodeRequestExecutor implements RequestExecutor<File, WxMaQrcodeWr
} }


@Override @Override
public File execute(String uri, WxMaQrcodeWrapper ticket) throws WxErrorException, IOException {
public File execute(String uri, AbstractWxMaQrcodeWrapper ticket) throws WxErrorException, IOException {
HttpPost httpPost = new HttpPost(uri); HttpPost httpPost = new HttpPost(uri);
if (requestHttp.getRequestHttpProxy() != null) { if (requestHttp.getRequestHttpProxy() != null) {
httpPost httpPost


+ 2
- 2
weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessageTest.java View File

@@ -19,7 +19,7 @@ public class WxMaKefuMessageTest {
} }


public void testTextBuild() { public void testTextBuild() {
WxMaKefuMessage reply = WxMaKefuMessage.TEXT().toUser("OPENID").content("sfsfdsdf").build();
WxMaKefuMessage reply = WxMaKefuMessage.newTextBuilder().toUser("OPENID").content("sfsfdsdf").build();
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"text\",\"text\":{\"content\":\"sfsfdsdf\"}}"); Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"text\",\"text\":{\"content\":\"sfsfdsdf\"}}");
} }


@@ -32,7 +32,7 @@ public class WxMaKefuMessageTest {
} }


public void testImageBuild() { public void testImageBuild() {
WxMaKefuMessage reply = WxMaKefuMessage.IMAGE().toUser("OPENID").mediaId("MEDIA_ID").build();
WxMaKefuMessage reply = WxMaKefuMessage.newImageBuilder().toUser("OPENID").mediaId("MEDIA_ID").build();
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"image\",\"image\":{\"media_id\":\"MEDIA_ID\"}}"); Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"image\",\"image\":{\"media_id\":\"MEDIA_ID\"}}");
} }




+ 4
- 4
weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/demo/WxMaDemoServer.java View File

@@ -34,7 +34,7 @@ public class WxMaDemoServer {
public void handle(WxMaMessage wxMessage, Map<String, Object> context, public void handle(WxMaMessage wxMessage, Map<String, Object> context,
WxMaService service, WxSessionManager sessionManager) throws WxErrorException { WxMaService service, WxSessionManager sessionManager) throws WxErrorException {
System.out.println("收到消息:" + wxMessage.toString()); System.out.println("收到消息:" + wxMessage.toString());
service.getMsgService().sendKefuMsg(WxMaKefuMessage.TEXT().content("收到信息为:" + wxMessage.toJson())
service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("收到信息为:" + wxMessage.toJson())
.toUser(wxMessage.getFromUser()).build()); .toUser(wxMessage.getFromUser()).build());
} }
}; };
@@ -44,7 +44,7 @@ public class WxMaDemoServer {
public void handle(WxMaMessage wxMessage, Map<String, Object> context, public void handle(WxMaMessage wxMessage, Map<String, Object> context,
WxMaService service, WxSessionManager sessionManager) WxMaService service, WxSessionManager sessionManager)
throws WxErrorException { throws WxErrorException {
service.getMsgService().sendKefuMsg(WxMaKefuMessage.TEXT().content("回复文本消息")
service.getMsgService().sendKefuMsg(WxMaKefuMessage.newTextBuilder().content("回复文本消息")
.toUser(wxMessage.getFromUser()).build()); .toUser(wxMessage.getFromUser()).build());
} }


@@ -60,7 +60,7 @@ public class WxMaDemoServer {
ClassLoader.getSystemResourceAsStream("tmp.png")); ClassLoader.getSystemResourceAsStream("tmp.png"));
service.getMsgService().sendKefuMsg( service.getMsgService().sendKefuMsg(
WxMaKefuMessage WxMaKefuMessage
.IMAGE()
.newImageBuilder()
.mediaId(uploadResult.getMediaId()) .mediaId(uploadResult.getMediaId())
.toUser(wxMessage.getFromUser()) .toUser(wxMessage.getFromUser())
.build()); .build());
@@ -79,7 +79,7 @@ public class WxMaDemoServer {
WxMediaUploadResult uploadResult = service.getMediaService().uploadMedia(WxMaConstants.MediaType.IMAGE, file); WxMediaUploadResult uploadResult = service.getMediaService().uploadMedia(WxMaConstants.MediaType.IMAGE, file);
service.getMsgService().sendKefuMsg( service.getMsgService().sendKefuMsg(
WxMaKefuMessage WxMaKefuMessage
.IMAGE()
.newImageBuilder()
.mediaId(uploadResult.getMediaId()) .mediaId(uploadResult.getMediaId())
.toUser(wxMessage.getFromUser()) .toUser(wxMessage.getFromUser())
.build()); .build());


Loading…
Cancel
Save