```feat): 添加支付宝支付接口(payment控制器
新增PaymentController,提供支付宝支付功能。包含支付必要参数配置,如APP_ID、APP_PRIVATE_KEY等, 并实现通过POST请求的payZFB方法,处理支付逻辑,使用AlipayClient进行支付请求并返回结果。 ```master
parent
b98ec80a4f
commit
7c9091b6bf
|
@ -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<String> 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());
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue