Search in sources :

Example 1 with AlipayConfig

use of co.yixiang.modules.tools.domain.AlipayConfig in project yshopmall by guchengwuyue.

the class AliPayController method toPayAsPc.

@Log("支付宝PC网页支付")
@ApiOperation("PC网页支付")
@PostMapping(value = "/toPayAsPC")
public ResponseEntity<String> toPayAsPc(@Validated @RequestBody TradeVo trade) throws Exception {
    AlipayConfig aliPay = alipayService.find();
    trade.setOutTradeNo(alipayUtils.getOrderCode());
    String payUrl = alipayService.toPayAsPc(aliPay, trade);
    return ResponseEntity.ok(payUrl);
}
Also used : AlipayConfig(co.yixiang.modules.tools.domain.AlipayConfig) Log(co.yixiang.modules.logging.aop.log.Log) ApiOperation(io.swagger.annotations.ApiOperation)

Example 2 with AlipayConfig

use of co.yixiang.modules.tools.domain.AlipayConfig in project yshopmall by guchengwuyue.

the class AliPayController method toPayAsWeb.

@Log("支付宝手机网页支付")
@ApiOperation("手机网页支付")
@PostMapping(value = "/toPayAsWeb")
public ResponseEntity<String> toPayAsWeb(@Validated @RequestBody TradeVo trade) throws Exception {
    AlipayConfig alipay = alipayService.find();
    trade.setOutTradeNo(alipayUtils.getOrderCode());
    String payUrl = alipayService.toPayAsWeb(alipay, trade);
    return ResponseEntity.ok(payUrl);
}
Also used : AlipayConfig(co.yixiang.modules.tools.domain.AlipayConfig) Log(co.yixiang.modules.logging.aop.log.Log) ApiOperation(io.swagger.annotations.ApiOperation)

Example 3 with AlipayConfig

use of co.yixiang.modules.tools.domain.AlipayConfig in project yshopmall by guchengwuyue.

the class AliPayController method notify.

@ApiIgnore
@RequestMapping("/notify")
@AnonymousAccess
@SuppressWarnings("all")
@ApiOperation("支付异步通知(要公网访问),接收异步通知,检查通知内容app_id、out_trade_no、total_amount是否与请求中的一致,根据trade_status进行后续业务处理")
public ResponseEntity<Object> notify(HttpServletRequest request) {
    AlipayConfig alipay = alipayService.find();
    Map<String, String[]> parameterMap = request.getParameterMap();
    // 内容验签,防止黑客篡改参数
    if (alipayUtils.rsaCheck(request, alipay)) {
        // 交易状态
        String tradeStatus = new String(request.getParameter("trade_status").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        // 商户订单号
        String outTradeNo = new String(request.getParameter("out_trade_no").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        // 支付宝交易号
        String tradeNo = new String(request.getParameter("trade_no").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        // 付款金额
        String totalAmount = new String(request.getParameter("total_amount").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        // 验证
        if (tradeStatus.equals(AliPayStatusEnum.SUCCESS.getValue()) || tradeStatus.equals(AliPayStatusEnum.FINISHED.getValue())) {
        // 验证通过后应该根据业务需要处理订单
        }
        return new ResponseEntity<>(HttpStatus.OK);
    }
    return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
Also used : AlipayConfig(co.yixiang.modules.tools.domain.AlipayConfig) ResponseEntity(org.springframework.http.ResponseEntity) AnonymousAccess(co.yixiang.annotation.AnonymousAccess) ApiOperation(io.swagger.annotations.ApiOperation) ApiIgnore(springfox.documentation.annotations.ApiIgnore)

Example 4 with AlipayConfig

use of co.yixiang.modules.tools.domain.AlipayConfig in project yshopmall by guchengwuyue.

the class AliPayController method returnPage.

@ApiIgnore
@GetMapping("/return")
@AnonymousAccess
@ApiOperation("支付之后跳转的链接")
public ResponseEntity<String> returnPage(HttpServletRequest request, HttpServletResponse response) {
    AlipayConfig alipay = alipayService.find();
    response.setContentType("text/html;charset=" + alipay.getCharset());
    // 内容验签,防止黑客篡改参数
    if (alipayUtils.rsaCheck(request, alipay)) {
        // 商户订单号
        String outTradeNo = new String(request.getParameter("out_trade_no").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        // 支付宝交易号
        String tradeNo = new String(request.getParameter("trade_no").getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
        System.out.println("商户订单号" + outTradeNo + "  " + "第三方交易号" + tradeNo);
        // 根据业务需要返回数据,这里统一返回OK
        return new ResponseEntity<>("payment successful", HttpStatus.OK);
    } else {
        // 根据业务需要返回数据
        return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
    }
}
Also used : AlipayConfig(co.yixiang.modules.tools.domain.AlipayConfig) ResponseEntity(org.springframework.http.ResponseEntity) AnonymousAccess(co.yixiang.annotation.AnonymousAccess) ApiOperation(io.swagger.annotations.ApiOperation) ApiIgnore(springfox.documentation.annotations.ApiIgnore)

Aggregations

AlipayConfig (co.yixiang.modules.tools.domain.AlipayConfig)4 ApiOperation (io.swagger.annotations.ApiOperation)4 AnonymousAccess (co.yixiang.annotation.AnonymousAccess)2 Log (co.yixiang.modules.logging.aop.log.Log)2 ResponseEntity (org.springframework.http.ResponseEntity)2 ApiIgnore (springfox.documentation.annotations.ApiIgnore)2