目录
一、PC端支付:
1、调用支付接口,返回form表单,前端直接渲染跳转到支付宝PC端统一的支付页面
2、官方文档入口:https://opendocs.alipay.com/open/270/105899
3、接口代码如下,此处使用新版本SDK,代码很简单:
public String aliPayPcPay(AliPayBo bo) {
try {
AlipayTradePagePayResponse response = Factory.Payment.Page()
//设置订单预支付订单过期时间-可参考官方接口文档入参
.optional("timeout_express","30m")
.pay(bo.getSubject(), bo.getOutTradeNo(), bo.getTotalAmount(),"");
if (ResponseChecker.success(response)) {
log.info("{}:支付宝PC支付,发起成功",bo.getOutTradeNo());
return response.getBody();
}
} catch (Exception e) {
log.error("{}:支付宝PC支付异常:{}",bo.getOutTradeNo(),e);
}
return null;
}
二、H5端支付:
1、调用支付接口,返回form表单,前端直接渲染跳转到支付宝H5端统一的支付页面
2、官方文档入口:https://opendocs.alipay.com/open/203/105288
3、接口代码如下,此处使用新版本SDK,代码很简单:
public String aliPayH5Pay(AliPayBo bo) {
try {
AlipayTradeWapPayResponse response = Factory.Payment
.Wap()
.optional("timeout_express","30m")
.pay(bo.getSubject(), bo.getOutTradeNo(), bo.getTotalAmount(),"","");
if (ResponseChecker.success(response)) {
log.info("{}:支付宝H5支付,发起成功",bo.getOutTradeNo());
return response.getBody();
}
log.info("{}:支付宝H5支付,发起失败:{}",bo.getOutTradeNo(),response.body);
} catch (Exception e) {
log.error("{}:支付宝H5支付异常:{}",bo.getOutTradeNo(),e);
}
return null;
}
4、H5支付有个注意点:如果H5是内嵌到APP中的话,官方推荐使用App支付接口实现,基于商户自己的APP拉起支付宝进行支付(我们就是APP内嵌H5,所有改成了使用APP支付接口),
三、APP端支付:
1、调用支付接口,返回alipaySDK串,APP端内部拉起支付宝,传入接口返回值,打开支付宝的支付页面
2、官方文档入口:https://opendocs.alipay.com/open/204/105051
3、接口代码如下,此处使用新版本SDK,代码很简单:
public String aliPayAppPay(AliPayBo bo) {
try {
AlipayTradeAppPayResponse response = Factory.Payment.App()
.optional("timeout_express","30m")
.pay(bo.getSubject(), bo.getOutTradeNo(), bo.getTotalAmount());
if (ResponseChecker.success(response)) {
log.info("{}:支付宝APP支付,发起成功",bo.getOutTradeNo());
return response.getBody();
}else{
log.info("{}:支付宝App支付,发起失败:{}",bo.getOutTradeNo(),response.body);
}
} catch (Exception e) {
log.error("{}:支付宝PC支付异常:{}",bo.getOutTradeNo(),e);
}
return null;
}
以上就是,普通支持的接口调用,均使用的是支付宝新版SDK,关于入参说明,可参考支付宝广泛文档:https://opendocs.alipay.com/open/54/00y8k9