https://github.com/Wechat-Group/WxJava 使用记录

GITHUB地址

https://github.com/Wechat-Group/WxJava

微信公众号开发

<dependency>
    <groupId>com.github.binarywang</groupId>
    <artifactId>weixin-java-mp</artifactId>
    <version>4.0.0</version>
</dependency>            
  • 配置yml
    wx:
      mp:
        useRedis: false
        redisConfig:
          host: 127.0.0.1
          port: 6379
        configs:
          - appId: "******************"
            secret: "*****************"
            token: "*****************"
            aesKey: "*****************"
  • 将demo相关代码直接搬到项目代码中
    • WxPortalController控制器为接通公众号开发设置的接口
      @RequestMapping("/wx/portal/{appid}")
      public class WxPortalController {
      .............................
      .............................

  • 公众号开发配置,服务器URL就是刚才WxPortalController的接口,验证消息来自微信,接通公众号。也是公众号交互,事件推送的唯一入口。
  • 用户关注和取关
    • 参考使用demo代码的SubscribeHandler 和 UnsubscribeHandler,正常直接搬过来实现业务逻辑就可以。不熟悉的话,各种事件可以通过直接观察日志打印来定位不同的handle文件位置,demo代码在各种事件里都有打印可以识别
      关注时可以获取 openid Unionid等信息
      log.debug("\n新关注用户:{}", userWxInfo);
                      MpUser mpUser = new MpUser();
                      mpUser.setOpenId(userWxInfo.getOpenId());
                      mpUser.setUnionId(userWxInfo.getUnionId());
                      mpUser.setStatus("1");
                      mpUserService.subscribe(mpUser);

  • 根据关注事件获取到的用户openid去发送模板消息
    • 文档https://github.com/Wechat-Group/WxJava/wiki/%E5%85%AC%E4%BC%97%E5%8F%B7%E5%BC%80%E5%8F%91%E6%96%87%E6%A1%A3
      
      依赖注入WxMpService(千万不能通过直接new wxPmService的方式,否则会报空指针异常)
      @Autowired
          private WxMpService wxMpService;
      
      
      WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
                          .toUser("ozHsF6u1JE8buR1ANBiRv2-Qjwxc").templateId("aOSPkPH7NLibxo5gUKHZOPT4yMZwcU7Rs9-hIERRf2M").url("http://www.baidu.com").build();
                  templateMessage.addData(new WxMpTemplateData("first", "您好,亲爱的小明家长,请查阅宝宝今日在园情况", "#173177"));
                  templateMessage.addData(new WxMpTemplateData("keyword1", "托管1班", "#173177"));
                  templateMessage.addData(new WxMpTemplateData("keyword2", "2021年5月24日", "#173177"));
                  templateMessage.addData(new WxMpTemplateData("keyword3","今天宝宝在幼儿园表现还不错,但是中午吃饭时有点挑食不喜欢吃西红柿,希望家长在家也关注一下", "#173177"));
                  templateMessage.addData(new WxMpTemplateData("remark", "备注信息", "#173177"));
                  wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);

微信小程序开发

  • 引入小程序与引入公众号方式一样,就不累赘了,这里直接记录微信小程序开发中敏感词汇的审核
package com.xxyw.tgxmapi.common.utils;

import cn.binarywang.wx.miniapp.api.WxMaSecCheckService;
import com.google.gson.JsonObject;
import com.xxyw.tgxmapi.common.config.WxMaConfiguration;
import com.xxyw.tgxmapi.common.config.WxMaProperties;
import com.xxyw.tgxmapi.common.exception.CommonException;
import lombok.Data;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.service.WxService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

@Data
@Component
public class WxCheckMsgImg {
    @Autowired
    private WxMaProperties wxMaProperties;

    private static WxCheckMsgImg wxCheckMsgImg;

    @PostConstruct
    public void init(){
        wxCheckMsgImg = this;
        wxCheckMsgImg.wxMaProperties = wxMaProperties;
    }

    // fileUrls为逗号隔开的字符串
    public static void checkMsgImg( String msg, String fileUrls) throws WxErrorException {
        String appid = wxCheckMsgImg.wxMaProperties.getConfigs().get(0).getAppid();
        // 检测文字
        if(StringUtils.isNotBlank(msg)){
            WxService wxService = WxMaConfiguration.getMaService(appid);
            try{
                JsonObject jsonObject = new JsonObject();
                jsonObject.addProperty("content", msg);
                wxService.post("https://api.weixin.qq.com/wxa/msg_sec_check", jsonObject.toString());
            }catch (WxErrorException e){
                System.out.println("检测失败");
                System.out.println(e);
                throw new CommonException("您发布的内容含有敏感词汇");
            }
        }

        // 检测图片
//        if(StringUtils.isNotBlank(fileUrls)){
//            String[] fileUrlArr = fileUrls.split(",");
//            WxMaSecCheckService wxMaSecCheckService = WxMaConfiguration.getMaService(appid).getSecCheckService();
//            for (int i =0; i<fileUrlArr.length;i++){
//                try{
//                    wxMaSecCheckService.checkImage(fileUrlArr[i]);
//                }catch (WxErrorException e){
//                    System.out.println("检测失败");
//                    System.out.println(e);
//                    throw new CommonException("您发布的图片含有违规信息");
//                }
//
//            }
//        }


    }
}

 

`git clone https://github.com/your-repo-url.git` 是用于从 GitHub 上克隆(复制)一个远程仓库到本地的命令。其中 `https://github.com/your-repo-url.git` 是要克隆的远程仓库的 HTTPS 地址。 ### 使用说明 当执行该命令时,Git 会在当前目录下创建一个与远程仓库同名的文件夹,并将远程仓库的所有文件、分支、提交历史等内容复制到这个新文件夹中。例如,如果要克隆 `https://github.com/example/repo.git`,可以在终端中输入: ```bash git clone https://github.com/example/repo.git ``` 执行后,会在当前目录下创建一个名为 `repo` 的文件夹,里面包含了该远程仓库的所有内容。 ### 常见问题及解决办法 #### 网络连接问题 可能会遇到 “fatal: unable to access ‘https://github.com/…/.git’: Recv failure Connection was reset” 这样的报错,表明在克隆过程中网络连接出现问题。可以通过一些方法来解决,如更换网络环境,或者使用国内的镜像源来进行克隆操作。像在克隆 Homebrew 的 `homebrew-core` 仓库时,使用 `git clone git://mirrors.ustc.edu.cn/homebrew-core.git /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core` 这种使用镜像源的方式就可以避免网络连接问题 [^2]。 #### 仓库已存在问题 如果本地已经存在同名的文件夹,执行该命令会报错。需要先删除或重命名本地的同名文件夹,再重新执行克隆命令。 #### 权限问题 如果没有足够的权限访问远程仓库,会收到权限拒绝的错误。需要确保自己有访问该仓库的权限,或者检查是否需要输入正确的用户名和密码(对于使用 HTTPS 协议的仓库)。 #### Homebrew 克隆报错问题 在使用 Homebrew 过程中,克隆 `homebrew-core` 仓库时可能会出现 “Error: Failure while ... `git clone https://github.com/Homebrew/homebrew-core`” 的错误。可以通过以下步骤解决: ```bash cd "$(brew --repo)/Library/Taps/" rm -rf homebrew mkdir homebrew cd homebrew git clone git://mirrors.ustc.edu.cn/homebrew-core.git git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git ``` 这种方法通过清理原有的克隆目录,使用镜像源重新克隆并设置远程仓库地址来解决问题 [^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值