sunshine
2024-11-05 1bd51ea22b75760704843d9bed886a7262bb1cb1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package com.nova.sankuai.controller.v2;
 
import com.nova.sankuai.domain.api.shantai.*;
import com.nova.sankuai.domain.vo.huifubao.HuiFuBaoPayVo;
import com.nova.sankuai.infra.utils.ResultJson;
import com.nova.sankuai.security.UserDetail;
import com.nova.sankuai.service.IHuiFuBaoPayService;
import com.nova.sankuai.service.IHuiFuBaoSignService;
import com.nova.sankuai.service.IShanTaiService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;
 
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
 
@Api(tags = "闪态支付")
@Slf4j
@RestController
@RequestMapping(value = "/api/v2/shanTai")
@AllArgsConstructor
public class ShanTaiPayController {
 
    private final IShanTaiService shanTaiService;
    private final IHuiFuBaoSignService huiFuBaoSignService;
    private final IHuiFuBaoPayService huiFuBaoPayService;
    private final HttpServletRequest request;
 
    @PostMapping(value = "/startAuth")
    @ApiOperation(value = "发起绑卡鉴权")
    public ResultJson<String> startAuth(@RequestBody BindCardDto bindCardDto, @AuthenticationPrincipal UserDetail userDetail) {
        String result = shanTaiService.startAuth(bindCardDto, userDetail);
        return ResultJson.ok(result);
    }
 
    @GetMapping(value = "/auth")
    @ApiOperation(value = "确认短信鉴权")
    public ResultJson<String> auth(String validateCode, String bankCardNo, @AuthenticationPrincipal UserDetail userDetail) {
        String result = shanTaiService.auth(validateCode, bankCardNo, userDetail);
        return ResultJson.ok(result);
    }
 
    @PostMapping(value = "/buyCardStartDirect")
    @ApiOperation(value = "直接通知扣费")
    public ResultJson<ShanTaiPayInfo> buyCardStartDirect(@RequestBody ShanTaiPayDto shanTaiPayDto, @AuthenticationPrincipal UserDetail userDetail) {
        //此接口应该只能点一次,点一次后不能再次点击
        ShanTaiPayInfo shanTaiPayInfo = shanTaiService.buyCardStartDirect(shanTaiPayDto, userDetail);
        return ResultJson.ok(shanTaiPayInfo);
    }
 
    @PostMapping(value = "/confirmBuy")
    @ApiOperation(value = "确认支付")
    public ResultJson<ConfirmVo> confirmBuy(@RequestBody ShanTaiPaySureDto shanTaiPaySureDto, @AuthenticationPrincipal UserDetail userDetail) {
//        闪态
//        ConfirmVo confirmVo = shanTaiService.directConfirm(shanTaiPaySureDto, userDetail);
        HuiFuBaoPayVo vo = new HuiFuBaoPayVo();
        vo.setHyAuthUid(shanTaiPaySureDto.getUniqueCode());
        vo.setVerifyCode(shanTaiPaySureDto.getSmsCode());
        vo.setAgentBillId(shanTaiPaySureDto.getPayOrderId());
        return ResultJson.ok(huiFuBaoPayService.confirmPay(vo, userDetail));
    }
 
    @PostMapping(value = "/callBack")
    @ApiOperation(value = "后端购买会员卡通知")
    public ResultJson<?> callBack(@AuthenticationPrincipal UserDetail userDetail) {
        Map<String, String[]> parameterMap = request.getParameterMap();
        shanTaiService.callBack(parameterMap, userDetail);
        return ResultJson.success();
    }
    @PostMapping(value = "/useEquityNotify")
    @ApiOperation(value = "使用会员通知")
    public ResultJson<?> useEquityNotify(UseEquityNotifyParams params) {
        return ResultJson.ok(shanTaiService.useEquityNotify(params));
    }
    @PostMapping(value = "/useEquityForward")
    @ApiOperation(value = "会员通知转发服务器")
    public ResultJson<?> useEquityForward(String partnerThirdOrderId) {
        return ResultJson.ok(shanTaiService.useEquityForward(partnerThirdOrderId));
    }
 
    @GetMapping(value = "/getOrderStatus")
    @ApiOperation(value = "闪态查询订单")
    public ResultJson<GetOrderStatusVo> getOrderStatus(String payOrderId) {
//        原闪态查询
//        GetOrderStatusVo orderStatus = shanTaiService.getOrderStatus(payOrderId);
        GetOrderStatusVo orderStatus = huiFuBaoPayService.getOrderStatus(payOrderId);
        return ResultJson.ok(orderStatus);
    }
 
    @PostMapping(value = "/checkProtocolSignBySt")
    @ApiOperation(value = "用户闪态快捷支付签约校验")
    public ResultJson<ShanTaiCheckVo> checkProtocolSignBySt(HttpServletRequest request) {
//      闪态
//      ShanTaiCheckVo shanTaiCheckVo = shanTaiService.checkProtocolSignBySt(request);
        ShanTaiCheckVo shanTaiCheckVo = huiFuBaoSignService.checkProtocolSignBySt(request);
        return ResultJson.ok(shanTaiCheckVo);
    }
}