支付宝支付
阅官方文档 https://opendocs.alipay.com/open/02e7gq
个人支付案例git地址[微信支付/支付宝支付/华为支付/苹果支付/小米支付]:https://gitee.com/wazk2008/demo-pay
前置:引入支付宝官方的jar
<!-- alipay sdk -->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.13.33.ALL</version>
</dependency>
yml配置
alipay:
app_id: 自己的appid
private_key: 商户应用私钥
app_cert_path: 商户应用公钥地址
alipay_cert_path: 支付宝公钥地址
alipay_root_cert_path: 支付宝根证书地址
notify_url: www.baidu.com
return_url: www.baidu.com
alipay_gateway_url: https://openapi.alipaydev.com/gateway.do
charset: UTF-8
format: json
sign_type: RSA2
配置类
@Component
@Slf4j
@Data
public class AlipayConfig {
@Value("${alipay.app_id}")
private String appId;
// 商户应用私钥
@Value("${alipay.private_key}")
private String appPrivateKey;
// 商户应用公钥证书地址
@Value("${alipay.app_cert_path}")
private String appPublicCertPath;
// 支付宝公钥证书地址
@Value("${alipay.alipay_cert_path}")
private String alipayPublicCertPath;
// 支付宝根证书地址
@Value("${alipay.alipay_root_cert_path}")
private String alipayRootCertPath;
@Value("${alipay.notify_url}")
private String notifyUrl;
@Value("${alipay.return_url}")
private String returnUrl;
@Value("${alipay.alipay_gateway_url}")
private String alipayGatewayUrl;
@Value("${alipay.charset}")
private String charset;
@Value("${alipay.format}")
private String format;
@Value("${alipay.sign_type}")
private String signType;
/**
* 设置支付宝客户端
* @return
*/
@Bean
public AlipayClient getAlipayClient() {
//构造client
CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
//设置网关地址
certAlipayRequest.setServerUrl(alipayGatewayUrl);
//设置应用Id
certAlipayRequest.setAppId(appId);
//设置应用私钥
certAlipayRequest.setPrivateKey(appPrivateKey);
//设置请求格式,固定值json
certAlipayRequest.setFormat(format);
//设置字符集
certAlipayRequest.setCharset(charset);
//设置签名类型
certAlipayRequest.setSignType(signType);
//设置应用公钥证书路径
certAlipayRequest.setCertPath(appPublicCertPath);
//设置支付宝公钥证书路径
certAlipayRequest.setAlipayPublicCertPath(alipayPublicCertPath);
//设置支付宝根证书路径
certAlipayRequest.setRootCertPath(alipayRootCertPath);
//构造client
try {
return new DefaultAlipayClient(certAlipayRequest);
} catch (AlipayApiException e) {
log.error("构建AlipayClient对象失败");
e.printStackTrace();
return null;
}
}
}
1.下单支付(跳转支付宝app进行支付)
接口名称: 统一下单
接口地址: https://opendocs.alipay.com/open/02e7gq?scene=20
个人支付代码demo
@RestController
@RequestMapping(value = "/pay")
@Slf4j
public class PayController {
@Autowired
private AliPayService aliPayService;
@PostMapping(value = "/ali")
public Result<String> payAli (@RequestBody PayAliRequest payAliRequest) {
try {
log.info("支付宝支付接口开始执行,请求参数:{}", JSON.toJSONString(payAliRequest));
String payAliResponse = aliPayService.pay(payAliRequest);
log.info("支付宝付接口执行成功,请求参数:{},响应参数:{}", JSON.toJSONString(payAliRequest), JSON.toJSON(payAliResponse));
return Result.getSuccess(payAliResponse);
} catch (ResponseException e) {
log.error("支付宝支付接口执行失败1,请求参数:{},异常原因:{}", JSON.toJSONString(payAliRequest), e.getMessage());
e.printStackTrace();
return Result.

本文详细介绍了如何在Spring Boot应用中整合支付宝支付,包括统一下单、支付回调处理以及退款操作。涉及配置、接口实现和关键代码片段,适合支付宝支付初学者和开发者参考。
最低0.47元/天 解锁文章
476

被折叠的 条评论
为什么被折叠?



