<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-easysdk</artifactId>
</dependency>
import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.kernel.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
/**
* @author shrimpBalls
* @Date2022/4/27 15:41
* 概要:
* 这是一个类
*/
@Component
public class AlipayConfig {
@Bean //方法的返回值
private Config getOptions() {
Config config = new Config();
config.protocol = "https";
config.gatewayHost = "openapi.alipaydev.com";
config.signType = "RSA2";
config.appId = "";
// 为避免私钥随源码泄露,推荐从文件中读取私钥字符串而不是写入源码中
config.merchantPrivateKey = ";
//注:证书文件路径支持设置为文件系统中的路径或CLASS_PATH中的路径,优先从文件系统中加载,加载失败后会继续尝试从CLASS_PATH中加载
// config.merchantCertPath = "<-- 请填写您的应用公钥证书文件路径,例如:/foo/appCertPublicKey_2019051064521003.crt -->";
//config.alipayCertPath = "<-- 请填写您的支付宝公钥证书文件路径,例如:/foo/alipayCertPublicKey_RSA2.crt -->";
//config.alipayRootCertPath = "<-- 请填写您的支付宝根证书文件路径,例如:/foo/alipayRootCert.crt -->";
//注:如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可
config.alipayPublicKey = "";
//可设置异步通知接收服务地址(可选)
//config.notifyUrl = "<-- 请填写您的支付类接口异步通知接收服务地址,例如:https://www.test.com/callback -->";
//可设置AES密钥,调用AES加解密相关接口时需要(可选)
// config.encryptKey = "<-- 请填写您的AES密钥,例如:aa4BtZ4tspm2wnXLb1ThQA== -->";
Factory.setOptions(config);
return config;
}
}
首先要登录支付宝开启沙箱功能获取 appid 和支付公私钥。
@RequestMapping(value = "goPay",produces ="text/html;charset=utf-8")
@ResponseBody
//订单编号 支付金额
public String goPay(String billNo,String amount){
try {
AlipayTradePagePayResponse pay = Factory.Payment.Page().pay(
"支付", billNo, amount, "http://localhost:8084/bill/pay");//需要回调地址
return pay.getBody();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}