<artifactId>alipay-sdk-java</artifactId>
<version>4.34.0.ALL</version>
</dependency>
server:
port: 9090
日志需要配置一下 @Slf4j
logging:
level:
com.tianju.alipay: debug
### 2.controller层代码
>
> 订单ID,需要唯一;价格;物品名称(支付主题)
>
>
> http://localhost:9090/api/ali/pay?orderId=202307302321&price=12.56&subject=iPhone
>
>
> 用户名:flrnht7304@sandbox.com
>
>
> 密码:111111
>
>
>
AliPayController.java文件
package com.tianju.alipay.controller;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayTradePagePayModel;
import com.alipay.api.internal.util.AlipaySignature;
import com.alipay.api.request.AlipayTradePagePayRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* 支付宝的支付接口
* 用户名:flrnht7304@sandbox.com
* 密码:111111
*/
// http://localhost:9090/api/ali/pay?orderId=202307302321&price=12.56&subject=iPhone
@RestController
@RequestMapping(“/api/ali”)
@Slf4j // tips:如果用debug记得在application.yml文件中配置一下日志级别
public class AliPayController {
String alipayPublicKey = "";
@GetMapping("/pay")
public void payOrder(String orderId, String price, String subject, HttpServletResponse httpResponse) throws AlipayApiException, IOException {
// 1.准备需要的参数,私匙,支付公匙,appid,沙箱支付平台的url
String privateKey = "";
String alipayPublicKey = "";
String appId = "9021000123613164";
String serverUrl = "https://openapi-sandbox.dl.alipaydev.com/gateway.do";
// 2.把需要配置的参数set进AlipayConfig类中
com.alipay.api.AlipayConfig alipayConfig = new com.alipay.api.AlipayConfig();
alipayConfig.setServerUrl(serverUrl);
alipayConfig.setAppId(appId);
alipayConfig.setPrivateKey(privateKey);
alipayConfig.setFormat("json");
alipayConfig.setAlipayPublicKey(alipayPublicKey);
alipayConfig.setCharset("UTF8");
alipayConfig.setSignType("RSA2");
// 3.创建支付宝的默认的客户端
AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
// 4.准备支付的参数,包括需要支付的订单的id,价格,物品名称,
AlipayTradePagePayModel model = new AlipayTradePagePayModel();
// model.setOutTradeNo(“2023073022083620”);
model.setOutTradeNo(orderId); // 需要支付的订单id,自定义的订单id,不能重复,唯一,已经支付的无法继续支付
model.setTotalAmount(price); // 需要支付的钱 model.setTotalAmount(“88.88”);
model.setSubject(subject); // 要支付的物品,比如 model.setSubject(“Iphone6 16G”);
model.setProductCode(“FAST_INSTANT_TRADE_PAY”);
// 5.创建支付的请求,把上面的准备支付的参数进行set
AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
requ