Java - 三方接口具体实现

一、设计第三方应用信息表

package com.szsz.core.domain;

import com.szsz.common.annotation.Excel;
import com.szsz.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 第三方应用信息对象 bus_third_app
 *
 * @author szsz
 * @date 2025-04-25
 */
@ApiModel("第三方应用信息")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BusThirdApp extends BaseEntity
        {
private static final long serialVersionUID = 1L;

    /** 第三方key */
    private String appKey;

    /** 第三方密钥 */
    @Excel(name = "第三方密钥")
    @ApiModelProperty("第三方密钥")
    private String appSecret;

    /** 第三方名称 */
    @Excel(name = "第三方名称")
    @ApiModelProperty("第三方名称")
    private String appName;

    /** 帐号状态(0正常 1停用) */
    @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
    @ApiModelProperty("帐号状态")
    private String status;



@Override
public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("appKey", getAppKey())
            .append("appSecret", getAppSecret())
            .append("appName", getAppName())
            .append("createTime", getCreateTime())
            .append("status", getStatus())
        .toString();
        }
        }

示例、
二、

二、具体实现如下:

package com.szsz.web.controller.core;

import com.szsz.common.core.domain.AjaxResult;
import com.szsz.common.utils.ServletUtils;
import com.szsz.common.utils.sign.Md5Utils;
import com.szsz.core.domain.BusThirdApp;
import com.szsz.core.service.IBusThirdAppService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * @author szsz
 * @description
 * @date 2025/4/29
 */
@RestController
@RequestMapping("/core/thirdApp")
@Api(tags = "三方接口")
public class BusThirdAppController {

    @Autowired
    private IBusThirdAppService thirdAppService;

    @GetMapping(value = "/test")
    public AjaxResult test()
    {
        checkSign();


        return AjaxResult.success();
    }



    private void checkSign() {
        String appKey = ServletUtils.getRequest().getHeader("appKey");
        String sign = ServletUtils.getRequest().getHeader("sign");
        BusThirdApp thirdApp = thirdAppService.selectBusThirdAppByAppKey(appKey);
        if(thirdApp!=null){
            if("0".equals(thirdApp.getStatus())){
                String secret = thirdApp.getAppSecret();
                if (!sign.equals(Md5Utils.hash(thirdApp.getAppKey() + secret))) {
                    throw new RuntimeException("签名校验错误");
                }
            }else {
                //停用
                throw new RuntimeException("权限已停用");
            }

        }else {
            throw new RuntimeException("key不存在");
        }

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

無飞

叠码不易,鼓励鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值