前言:最近写了微信及支付宝支付,整理了一下,方便直接CV,遇到有支付的问题,不要犹豫,直接问支付宝客服,解决起来方便快捷,代码可以直接CV过去就能用,配置一下application.yml里面支付宝支付的所需参数就可以了,没有支付所需参数的时候用沙箱环境,秘钥和appid都有,就是记得改网关配置
以下是gitee项目地址,代码在dev分支
https://gitee.com/yuyuyuyulv/gjj-ry/tree/dev/
依赖
<!-- 支付宝支付 -->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.10.209.ALL</version>
</dependency>
application.yml关于支付宝参数的配置
没有支付所需参数的时候用沙箱环境,需要的参数都有,具体如何使用沙箱,自行百度
aliyun:
app-id:
notify-url: http://ip:端口/api/order/student/ali/callback #支付回调地址
#应用私钥
private-key:
#应用公钥
app-public-key:
#应用公钥路径
app-public-key-path: /home/config/alipay/app_public_key.crt
#支付宝公钥
ali-public-key:
#支付宝公钥路径
ali-public-key-path: /home/config/alipay/ali_public_key.crt
#支付宝根证书路径
ali-root-key-path: /home/config/alipay/ali_root_key.crt
获取yml配置
package com.ruoyi.common.ali;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* 获取支付宝支付所需yml配置
**/
@Data
@ConfigurationProperties(prefix = "aliyun")
@Component
@Slf4j
public class AliyunProperties {
//支付回调
private String notifyUrl;
//应用id
private String appId;
//应用私钥
private String privateKey;
//应用公钥
private String appPublicKey;
//应用公钥地址
private String appPublicKeyPath;
//支付宝公钥
private String aliPublicKey;
//支付宝公钥地址
private String aliPublicKeyPath;
//支付宝根证书地址
private String aliRootKeyPath;
}
支付宝支付业务代码
package com.ruoyi.common.ali;
import com.alibaba.fastjson.JSONObject;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.CertAlipayRequest;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradeWapPayRequest;
import com.alipay.api.response.AlipayTradeWapPayResponse;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
@Log4j2
public class AliPayService {