二维码签到,签退和登陆

二维码签到签退

整体的思路

首先被服务的公司生成签到的二维码,然后二维码带有指定的参数,本接口是用的url跳到指定的签到页面,然后进行点击签到,然后对签相关的一些信息进行存储.

使用场景

二维码支付跳转,二维码登陆,二维码签到签退

使用的技术选型

Google的QR code技术.

上代码

1.导入依赖

  <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.3.0</version>
        </dependency>

2.参数TwoCodeParam

主要是关于二维码的一口血基本的参数的设置(重点)

@Data
public class TwoCodeParam {
    private int width = 300;
    private int height = 300;
    private String format = "png";
    private String content ;
}

3.接口的定义

二维码生成以及场景定义接口的设计

public interface CodeService {
    Result produceCode(TwoCodeParam params);
}

二维码接口实现

@Slf4j
@Service
public class CodeServiceImpl implements CodeService {
    @Override
    public Result produceCode(TwoCodeParam params) {
        Result result = new Result();
        if(ObjectUtil.isEmpty(params) ){
            return result.code(CodesEnum.ERR);
        }
        Map hints = new HashMap();
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
        hints.put(EncodeHintType.MARGIN,2);
        try {
            BitMatrix bitMatrix = new MultiFormatWriter().encode(params.getContent(), BarcodeFormat.QR_CODE,params.getWidth(),params.getHeight());
            String path = "D:/images/" + UUID.randomUUID();

            File file = new File(path);
            MatrixToImageWriter.writeToFile(bitMatrix, params.getFormat(), file);
        } catch (Exception e) {
            return result.code(CodesEnum.ERR);
        }
        return result.code(CodesEnum.SUC);
    }
}

4.拿到二维码后的操作

常见场景:

1.跳转到登陆界面,进行登陆

2.签到,签退

3.支付跳转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值