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);
|
}
|
}
|