maven配置
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>3.7.4.ALL</version>
</dependency>
支付宝配置类
public class AlipayConfig {
// 1.商户appid
public static String APPID = "2021*******8638063";
// 2.私钥 pkcs8格式的
public static String RSA_PRIVATE_KEY ="*****************"; // 3.支付宝公钥
public static String ALIPAY_PUBLIC_KEY ="************";
// 4.服务器异步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String notify_url = "http://www.xxx.com/alipay/notify_url.do";
// 5.页面跳转同步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 商户可以自定义同步跳转地址
public static String return_url = "http://www.xxx.com/alipay/return_url.do";
// 6.请求网关地址
public static String URL = "https://openapi.alipay.com/gateway.do";
// 7.编码
public static String CHARSET = "UTF-8";
// 8.返回格式
public static String FORMAT = "json";
// 9.加密类型
public static String SIGNTYPE = "RSA2";
}
吊起支付接口
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayTradeAppPayModel;
import com.alipay.api.request.AlipayTradeAppPayRequest;
import com.alipay.api.response.AlipayTradeAppPayResponse;
import com.ruoyi.web.controller.alipy_pay.AlipayConfig;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import javafx.beans.binding.ObjectBinding;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/api/pay")
@Api("阿里支付")
public class alipay2 {
@ApiOperation(value = "测试阿里支付", notes = "测试阿里支付")
@GetMapping("/ali")
public Map<String , Object> testAlipay() {
Map map=new HashMap();
try {
// 这个东西必备
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
AlipayConfig.APPID, AlipayConfig.RSA_PRIVATE_KEY, "json", "UTF-8",
AlipayConfig.ALIPAY_PUBLIC_KEY, "RSA2");
// 发起App支付请求
AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
// 订单描述
model.setBody("我是测试数据");
// 订单标题
model.setSubject("App支付测试Java");
// 商户订单号 就是商户后台生成的订单号
model.setOutTradeNo("201503200101010011");
// 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天 (屁股后面的字母一定要带,不然报错)
model.setTimeoutExpress("30m");
// 订单总金额 ,默认单位为元,精确到小数点后两位,取值范围[0.01,100000000]
model.setTotalAmount("0.01");
// 销售产品码 不必填
model.setProductCode("QUICK_MSECURITY_PAY");
request.setBizModel(model);
// request.setNotifyUrl("商户外网可以访问的异步地址,不写就是不回调");
// 通过api的方法请求阿里接口获得反馈
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
System.out.println(response.getBody());
if (response.isSuccess()) {
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}
map.put("data",response.getBody());
} catch (Exception e) {
map.put("data",e.getMessage());
}
return map;
}
}
相关java包