查看原文
其他

29.3K Star强!集成微信登录,核心代码就10行

开源日记 开源日记
2024-08-13

软件介绍

WxJava是一个专为Java开发者设计的微信开发工具包(SDK),旨在支持后端开发中的微信支付、微信开放平台、小程序、企业微信以及公众号等功能。无论您是开发企业号、公众号、小程序还是微信支付,WxJava都提供了丰富的功能和便捷的方法,使得在Java项目中集成微信开发变得更加容易和高效。

功能特点:

WxJava的功能特点包括独立性,易用性和多功能性。该工具包不依赖于特定MVC框架或servlet,提供简单易用的API接口,能轻松嵌入各种系统中;同时支持多个微信开发领域,包括微信支付、开放平台、企业号、公众号和小程序,为开发者提供灵活且全面的微信开发解决方案。

开源成就

目前已经取得了29.3K Star

主要功能

WxJava SDK包含了6个部分

  • weixin-java-common:公共类库,提供了一些基本的公共功能和工具类;
  • weixin-java-pay:微信支付SDK,支持开发者在Java项目中集成微信支付功能;
  • weixin-java-miniapp:微信小程序SDK,方便开发者进行小程序的后端开发;
  • weixin-java-cp:企业号SDK,支持企业微信相关功能的开发;
  • weixin-java-mp:公众号SDK,包括订阅号和服务号,支持公众号开发;
  • weixin-java-open:微信开放平台SDK,用于第三方平台相关功能的开发。

通过这些功能模块,开发者可以根据自身需求,方便快速地集成微信功能,并轻松开展微信相关的后端开发工作。

微信公众号模块实现情况

  • openApi管理:已实现
  • 自定义菜单:已实现
  • 基础消息能力:已实现
  • 订阅通知:已实现
  • 客服消息:已实现
  • 微信网页开发:已实现
  • 素材管理:已实现
  • 草稿箱:已实现
  • 发布能力:已实现
  • 图文消息留言管理:已实现
  • 用户管理:已实现
  • 帐号管理:已实现
  • 数据统计:已实现
  • 微信卡券:部分实现
  • 微信门店:部分实现
  • 微信小店:已实现
  • 智能接口:已实现

集成案例

  1. 添加依赖:请确保在pom.xml文件中添加以下依赖:
<dependency>
    <groupId>com.github.binarywang</groupId>
    <artifactId>wx-java-mp-spring-boot-starter</artifactId>
    <version>3.6.0</version>
</dependency>
  1. 配置文件:在application.properties中添加微信相关的配置信息
# 微信配置
wechat.mp.app-id=your_app_id
wechat.mp.secret=your_app_secret
wechat.mp.token=your_token
wechat.mp.aes-key=your_aes_key
  1. 编写认证逻辑:创建一个类来处理微信OAuth2登录的认证逻辑
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class WechatAuthService {

    @Autowired
    private WxMpService wxMpService;

    public WxMpUser getUserInfo(String code) {
        try {
            return wxMpService.oauth2getUserInfo(code, null);
        } catch (WxErrorException e) {
            // Handle exception
            return null;
        }
    }
}
  1. Controller:编写Controller类以处理请求和重定向
import me.chanjar.weixin.mp.bean.result.WxMpUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class WechatController {

    @Autowired
    private WechatAuthService wechatAuthService;

    @GetMapping("/login")
    public String login() {
        // Redirect to WeChat authorization page
        return "redirect:" + wxMpService.oauth2buildAuthorizationUrl("your_redirect_uri""snsapi_userinfo"null);
    }

    @GetMapping("/callback")
    public String callback(@RequestParam String code) {
        // Get user info after callback
        WxMpUser userInfo = wechatAuthService.getUserInfo(code);
        return userInfo.toString();
    }
}

近期热文:

6.3K Star很强!一键同步,跨设备书签管理神器
1.6K Star 2W网站运行的问答平台!最好的语言开发
32.2K Star强大!将Android转变为Linux强大工具


继续滑动看下一个
开源日记
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存