当前位置: 首页 > 软件库 > 程序开发 > >

豆搭搭

组件库
授权协议 Apache
开发语言 Java
所属分类 程序开发
软件类型 开源软件
地区 国产
投 递 者 翟嘉年
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

豆搭搭组件库。谐音"都搭搭",大家都来搭一搭,每个人都可以像搭积木一样搭建自己的项目。

版本说明

  • 分支dev-1.x:基于springboot版本2.6.11,发布版本号1.x.x
  • 分支dev:基于springboot版本2.7.3,发布版本号2.x.x

主要特性

  • 基于成熟组件或算法封装
  • 简单注解配置,即可实现相关组件操作
  • 省掉碍眼繁琐的签名与验签,避免易出错点
  • 丰富易用的API方法,满足个性化使用
  • 组件多种多样,按需使用

组件展示

cipher-algorithm(密码算法)

  • 国密:SM2[非对称加密]、SM3[摘要签名算法]、SM4[对称加密]
  • 国际密码:AES[对称加密]、RSA[非对称加密]、MD5[摘要算法]、SHA1[摘要算法]、SHA256[摘要算法]
  • 消息认证码:HmacMD5、HmacSHA1、HmacSHA256
  • 签名、验签:MD5withRSA、SHA1withRSA、SHA256withRSA

data-audit(数据审计)

  • 对象属性值比对(实现中)
  • 敏感字段验证(实现中)
  • 加解密字段验证(实现中)
  • 操作人核对(实现中)

iot-codec(物联网编解码)

  • 编解码插件文件验证
  • 编解码插件部署
  • 编解码插件卸载

message(消息服务)

  • 短信通知
  • 语音通知
  • 微信公众号通知
  • 钉钉通知(实现中)

mq(基于pulsar的消息服务)

  • 订阅主题
  • 生产者
  • 消费者

mqtt(基于spring-integration的MQTT客户端服务)

  • 订阅主题
  • 发布消息
  • 消息接收回调

mybatis-partner(辅助集成mybatis)

  • 便捷查询器以及分页查询
  • 字段自动注入
  • 逻辑删除
  • 结果字段脱敏
  • 数据存储加解密(实现中)
  • p6spy日志(实现中)

oss(对象存储服务)

 

  • 服务器本地
  • MinIO
  • GridFs
  • 阿里云

pay(支付服务)

  • 微信支付
  • 支付宝支付
  • 银联支付(实现中)

wechat(辅助集成微信公众号)

  • 接入微信服务
  • 菜单管理
  • 网页授权
  • 通知回调
  • 模版消息

使用指引

以“支付”为例

引入依赖

implement "cool.doudou:doudada-pay:${latest}"

配置属性

pay:
  wx:
    enabled: true
    appId: wx000001
    mchId: 14000001
    private-key-path: /home/test.pem
    private-key-serial-number: 70000000001
    api-key-v3: abcdefg
    notify-url: http://127.0.0.1:8000/wechat/pay-notify
  zfb:
    enabled: true
    appId: zfb00001
    private-key-path: /home/test.pem
    public-key-path: /home/test-pub.pem
    notify-url: http://127.0.0.1:8000/zfb/pay-notify

编码使用

下单、查询、关闭、退款、交易账单


@Component
public class PayComponent {
    @Autowired
    private PayHelper payHelper;

    /**
     * 下单
     */
    public void place() {
        PlaceOrderParam placeOrderParam = new PlaceOrderParam();
        // ...
        payHelper.place(PayModeEnum.WX, placeOrderParam);
    }

    /**
     * 查询
     */
    public void query() {
        payHelper.query(PayModeEnum.WX, "xxxxxx00001");
    }

    /**
     * 关闭
     */
    public void close() {
        payHelper.close(PayModeEnum.WX, "xxxxxx00001");
    }

    /**
     * 退款
     */
    public void refund() {
        RefundParam refundParam = new RefundParam();
        // ...
        payHelper.refund(PayModeEnum.WX, refundParam);
    }

    /**
     * 交易账单
     */
    public void tradeBill() {
        payHelper.tradeBill(PayModeEnum.WX, "2022-07-07");
    }
}

支付通知


@Component
public class PayNotifyComponent {
    /**
     * 微信
     * @param message 下单参数字符串
     * @return true-业务处理成功;false-业务处理失败
     */
    @WxPayNotify
    public boolean wxPayNotify(String message) {
        System.out.println(message);
        return true;
    }

    /**
     * 支付宝
     * @param message 下单参数字符串
     * @return true-业务处理成功;false-业务处理失败
     */
    @ZfbPayNotify
    public boolean zfbPayNotify(String message) {
        System.out.println(map);
        return true;
    }
}

联系我,欢迎来踩

gitee阵地

详细使用说明文档正在编写中,暂时可以参考仓库中Readme

部分功能还在开发中,敬请等待。。。

 相关资料
  • 接着用杜邦线连接各硬件接口,搭建硬件设备,在wifi环境给主控板烧录相应的程序,就能直接使用了。 硬件清单 名称 数量 OBLOQ模块 1 主控板(如:Arduino UNO控制板*) 1 LED模块(此示例中,使用Arduino UNO自带LED) 1 杜邦线 若干 关于主控板,这里挑选Arduino UNO作为例子讲解,其他兼容的主控板也可以使用。 连线图示意

  • 本文向大家介绍webpack4从0搭建组件库的实现,包括了webpack4从0搭建组件库的实现的使用技巧和注意事项,需要的朋友参考一下 代码分离 代码分离方法有三种: 入口起点:使用 entry 配置手动地分离代码。 防止重复:使用 SplitChunksPlugin 去重和分离 chunk。 动态导入:通过模块中的内联函数调用来分离代码。 动态导入(dynamic imports) import

  • TypeScript 是 JavaScript 类型的超集。由于其带来的好处,它最近在应用中变得流行。如果您尚未使用过 TypeScript,强烈建议您在继续阅读之前先熟悉它。 您可以查看其文档。 TypeScript 可以为 Redux 应用程序带来以下好处: 为 reducer、state 和 action creator 带来类型安全 轻松重构 type 代码 在团队协作环境中获得愉悦的开发

  • 这里需要再强调一下:Redux 和 React 之间没有关系。Redux 支持 React、Angular、Ember、jQuery 甚至纯 JavaScript。 尽管如此,Redux 还是和 React 和 Deku 这类库搭配起来用最好,因为这类库允许你以 state 函数的形式来描述界面,Redux 通过 action 的形式来发起 state 变化。 下面使用 React 来开发一个 t

  • 零件清单 学习使用螺丝刀 认识主板 搭建指导

  • 主要内容:1.Kafka 概述,2.Kafka 快速入门1.Kafka 概述 1.1 定义 Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于 大数据实时处理领域。 1.2 消息队列 1.2.1 传统消息队列的应用场景 使用消息队列的好处 1)解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2)可恢复性 系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,