一.准备工作
配置申请地址 https://open.alipay.com/platform/home.html(开发对接中需要以下参数,参数请务必妥善保管,不可泄露)
详细接口或参数说明,以支付宝官方文档为准, 支付宝API网址(https://opendocs.alipay.com/apis)
//支付宝网关地址:https://openapi.alipay.com/gateway.do
//支付宝申请的APPID
//商户应用私钥(与支付宝数据交互时,保证数据安全,防止数据被篡改)
//支付宝公钥(与支付宝数据交互时,保证数据安全,防止数据被篡改)
//签名算法类型(RSA2或者RSA,支付宝推荐使用RSA2)
//编码格式(utf-8,gb2312,gbk)
二.导入支付宝依赖(https://mvnrepository.com)
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.9.124.ALL</version>
</dependency>
三.代码实现
1.1 H5支付
//网关地址,APPID,商户应用私钥,数据格式,编码格式,支付宝公钥,签名算法类型
AlipayClient alipayClient = new DefaultAlipayClient(aliPayGateway,appID,rsa_private_key,format,charset,alipayPublicKey,signType);//不同支付类型需使用不同的请求对象
AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
//请求参数集合对象,除了公共参数之外,所有参数都可通过此对象传递(不同支付类型需使用不同的请求参数对象)
AlipayTradeWapPayModel model = new AlipayTradeWapPayModel();
//订单描述
model.setBody("订单描述");
//订单标题
model.setSubject("显示效果见于下图的标题");
//商户订单号
model.setOutTradeNo(orderNo);
//订单的过期时长(取值为5m - 15d,即五分钟到十五天)
model.setTimeoutExpress("30m");
//订单总金额
model.setTotalAmount(String.valueOf(cashNum));
//产品码 QUICK_WAP_WAY:无线快捷支付产品
model.setProductCode("QUICK_MSECURITY_PAY");
//用户付款中途退出返回商户网站的地址
model.setQuitUrl("https://wwww.baidu.com");
request.setBizModel(model);
//支付成功后的跳转地址
request.setReturnUrl("支付成功之后的跳转地址");
//支付成功后的回调地址(此地址必须为公网地址,用于支付宝收到用户付款之后,通知我们的服务端,我们可以在此接口中更改订单状态为已付款或后续操作)
request.setNotifyUrl(aliPayNotifyUrl);
String orderStr = "";
AlipayTrad