‘WxMpTemplateMessage‘. Cannot be accessed from outside package

在使用微信第三方SDK实现消息订阅时发现该错误
在这里插入图片描述
在这里插入图片描述
意思是无法在包外调用该方法.在使用依赖包时如果是2.7.0则不会出现该问题.但使用2.9.0以上的版本时则会出现该问题.

<dependency>
	<groupId>com.github.binarywang</groupId>
	<artifactId>weixin-java-mp</artifactId>
	<version>2.7.0</version>
</dependency>

这是因为新版本采用了 lombok的@Builder 注解然后.官网应该是更推荐使用以builder的方法来构造对象,因此直接限制了该类构造器权限,无法在包外访问.
这里可以了解一下 lombok@Builder注解的使用
使用@Builder的优点是:

  • 不需些太多的set方法来定义属性内容
  • 写法更优雅

直接上代码

@Service
@Transactional
public class WeChatService {
    @Autowired
    private WxMpService wxMpService;

    @Autowired
    private WechatConfig wechatConfig;

    /**
     * 预约状态变更消息
     */
    public void applyStatus(){
        WxMpTemplateMessage.MiniProgram miniProgram = new WxMpTemplateMessage.MiniProgram(wechatConfig.getAppId(), "/pages/home/index");
        List<WxMpTemplateData> data = Arrays.asList(
                new WxMpTemplateData("time16.DATA", "预约时间"),
                new WxMpTemplateData("thing34.DATA", "咨询地点"),
                new WxMpTemplateData("phone_number4.DATA", "18868812345"),
                new WxMpTemplateData("thing10.DATA", "备注")
        );
        WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
                .toUser("openid").templateId(wechatConfig.getTemplateId().get("applyStatus"))
                .miniProgram(miniProgram)
                .data(data)
                .build();
        try {
            String s = wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);
        } catch (WxErrorException e) {
            e.printStackTrace();
        }
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值