package com.ruoyi.web.controller.alipay;

import com.alibaba.fastjson2.JSONObject;
import com.alipay.api.domain.AlipayTradeWapPayModel;
import com.ruoyi.system.service.IAlipayService;
import io.swagger.annotations.ApiOperation;
import org.apache.ibatis.logging.Log;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * 支付宝支付
 * @Author: tjf
 * @Date: 2024/1/18 10:00
 * @Describe:
 */
@CrossOrigin
@RestController
@RequestMapping("/ali/pay")
public class AlipayTradeWapPayController {

    @Autowired
    private IAlipayService alipayService;

    @ApiOperation("统一收单下单并支付接口调用")
    @PostMapping("/scanPay")
    public String tradePagePay(@RequestBody AlipayTradeWapPayModel model) throws Exception {
        System.out.println("统一收单下单并支付接口调用");
        /*
        支付宝开放平台接收 request 请求对象后
        会为开发者生成一个html形式的form表单,包含自动提交的脚本
         */
        String formStr = alipayService.tradeCreate(model);
        /*
        将form表单字符串返回给前端
        前端自动提交脚本
        表单会自动提交到 action熟悉只想的支付宝开放平台中 为用户展示一个支付页面
         */
        return formStr;
    }
    /**
     * 支付宝回调
     *
     * @param params
     * @return
     */
    @ApiOperation("交易通知")
    @PostMapping("/tradeNotify")
    public String tradeNotify(@RequestParam Map<String, String> params) {
        System.out.println("支付通知,正在执行,通知参数:{}"+JSONObject.toJSONString(params));
        return alipayService.tradeNotify(params);
    }

}
