diff --git a/src/main/java/com/muyu/system/controller/PaymentController.java b/src/main/java/com/muyu/system/controller/PaymentController.java new file mode 100644 index 0000000..5ffbbe5 --- /dev/null +++ b/src/main/java/com/muyu/system/controller/PaymentController.java @@ -0,0 +1,76 @@ +package com.muyu.system.controller; + +import com.alibaba.fastjson.JSONObject; +import com.alipay.api.AlipayApiException; +import com.alipay.api.AlipayClient; +import com.alipay.api.DefaultAlipayClient; +import com.alipay.api.request.AlipayTradePagePayRequest; +import com.alipay.api.response.AlipayTradePagePayResponse; +import com.muyu.common.core.domain.Result; +import com.muyu.common.system.domain.PaymentParam; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.*; + +/** + * @Author: wangxinyuan + * @Date: 2024/8/25 下午3:21 + */ + +@RestController +@Tag(name = "PaymentController", description = "支付接口") +@RequestMapping("/aliyun/pay") +public class PaymentController { + + + //appid + private final String APP_ID = "9021000139609995"; + //应用私钥 + private final String APP_PRIVATE_KEY = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDMbBAf8yRmFvLx2SEfhdjdidpqWzfeRkL8d3K0Sz9DC5xxnrrUujwQF7FfbmwR43oJy1mIrMffc2Fp3vpSjWgdOMfAJy5N0GlrDb4o/3mN3pH3xElfdz7VEw9jcIhLDEsV2LP3nnrbkEKoj93gnZsuMkTnO4yfsEyCZVL6rkK01R9Pcu3tKKLrY5n30U7aE1WOuKvE3pTmxkpdXaX3Q46npP8wHOY1x6kUzyFgjFip/E4HEE91OzqaVnirt6GkWm9m0VAiUOENthEbnSzKagoVuTV0lXoX0hzTJ4H/4Ees2wOE4pZzeK2xqrolD3/EIR31I1ztyz4hXJG3sBC3v7gFAgMBAAECggEAQP9jKSWAP02wtaFaXNGMIPTCE+spGm2wwuGgAR+j38eDWMUllpoYmu1NopBToGR52z9jGogFjVD8elNBuJnprtDtAnXyzR8lRbq66gJBPhC0zNkGk2ow+kLzM6UGUQZ5oVqj7mnfmoyGBV6pJ9A1FT06l2Nh1SyTRyq8daSO5TwE5wUl040YT5pFIy4TCL1NhJVqDU61kNZCzVrUN4Lorkvv4gAeYZGY0cX0QMWXxwq5N7dOAn1tbwuo3WHnJbva3KBOVCtkldZ7Z0iwFQsniZXuXk7NmpNKFuZiQArlR8pTqDJB1dUwua9Nw1c9T+0CvpGRUH2u3wFIWK/RYyh0gQKBgQDxZaam5Z4irNdlxv9ypwQiiSsar745cDsmKv7oE4mUkxQzcR1segK+og0aX2s6Oa25Cj64jSXqbY/Y2DsoIEFFDe9z2E52QEOsZcN51edLc88YsopSSSIgobA8/+hB+AHjlILNhrtghwbKBOxNR5vBM/QGmfWaGPqtA8HsD3DQcQKBgQDYyc56eLOPWLuREu1aFrNs4viJ8r4v+pZmLFrXHojPF3teQr6z+CnrnF7vKYAmnOVxD2M44LgRr7LYnswzDWLLvrAkhUCYiaTL+6dvgy0okkUGE5QjGPP889yiHef8b1fRKNaVM+hXkt452oqhh95ZMnN4/ugZ3Uiq3UF8Q4vq1QKBgEV/cn9SVDi/cjQHGrwzgWk//HzuY+G9ggn3DvRZy55Oyd4VjtcQOYIQvZz+I6zbtjwzyuLvIB9h86wGdOGUh7YN0QaVG+HHlrQniCOnhbOfX9xIarJOA9lJM6gcNQ3pDQIsW4w4YfHkbfvzduS43Qq+nl7YLHF1B5aQImCIAX7BAoGBAK135iG33a6RiR0P8R8KVS6G++uecrL/qEM/sLy78SsNFimZ7PEjXZ/rs0dahPHgz/PFJVdI8eEtH0YY4zritjBkeJvwiHzGfzi+OP+RDpyNVnADUKE5AVtiYyTSG2SyT6nNLM+dBoi0u9+9UPrqNnBXX3DtQBoaKGCYxSLDBf21AoGANG5wAjV+ME7uAYEvW9GlrvGmNmzyUuiZrYuYHCf76CTa+q0+P7o0WgKcWEXUSah08qF4EItUQuuw+PtFTFs/sorqa9QrZs/ozTt8Q4ms/tahFPkZOTJ8s1Az2jY3C9ERwS8ab3Q+kbLiXDTnWo4s7YqwpwMZd/abhs3SwCjzLDI="; + private final String CHARSET = "UTF-8"; + // 支付宝公钥 + private final String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnOq1vdnkd83CnZUWZVka7EWT0YgiGX8io6ul4GThlue66YNKoS/rKT1rHzyZqBwNG1qgeU7eH+UazuFK2GsxrDI1rSqzljkgQnkmwtjEsJYpXzFF5PTuW8bsDNHoXr5LsEyMaljyiNtBO3uc+Zbb0D6GcbnQUFGorMi9tKR28XjNJkvamohMhh+V5cb1FJtybliNoGAjA+Nh+aQVAXqFEPj3FX0qhPi4gRXniYL0o9ePaRtNg5pJ/uJ3G6llRi3+uZleD7XBSQCSf8ZZJfH8Bvr3mTQ/ObpyDub8VYnIkOgld4OAJRzqXJAyPFo0mRGhaeuSqviyRYGQK8/U8CrLkQIDAQAB"; + //这是沙箱接口路径 + private final String GATEWAY_URL ="https://openapi-sandbox.dl.alipaydev.com/gateway.do"; + private final String FORMAT = "JSON"; + //签名方式 + private final String SIGN_TYPE = "RSA2"; + //支付宝异步通知路径,付款完毕后会异步调用本项目的方法,必须为公网地址 + private final String NOTIFY_URL = "http://IP/aliyun/pay/yibu"; + //支付宝同步通知路径,也就是当付款完毕后跳转本项目的页面,可以不是公网地址 + private final String RETURN_URL = "http://IP/entertainment/payment"; + + + + + @RequestMapping(value = "/payZFB", method = RequestMethod.POST) + @ResponseBody + public Result payZFB(@RequestBody PaymentParam paymentParam) throws AlipayApiException { + AlipayClient alipayClient = new DefaultAlipayClient(GATEWAY_URL, APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE); + AlipayTradePagePayRequest request = new AlipayTradePagePayRequest(); + //异步接收地址,仅支持http/https,公网可访问 + request.setNotifyUrl(""); + //同步跳转地址,仅支持http/https + request.setReturnUrl(paymentParam.getReturnUrl()); + JSONObject json = new JSONObject(); + json.put("outTradeNo", paymentParam.getOutTradeNo()); + String params = json.toString(); + /******必传参数******/ + JSONObject bizContent = new JSONObject(); + //商户订单号,商家自定义,保持唯一性 + bizContent.put("out_trade_no", paymentParam.getOutTradeNo()); + //支付金额,最小值0.01元 + bizContent.put("total_amount", paymentParam.getTotalAmount()); + //订单标题,不可使用特殊符号 + bizContent.put("subject", paymentParam.getSubject()); + //电脑网站支付场景固定传值FAST_INSTANT_TRADE_PAY + bizContent.put("product_code", paymentParam.getProductCode()); + //支付宝请求的传值 可以在req中获取 + bizContent.put("body", params); + /******可选参数******/ + request.setBizContent(bizContent.toString()); + AlipayTradePagePayResponse response = alipayClient.pageExecute(request); + return Result.success(response.getBody()); + } + + +}