1.config配置
public class AlipayConfig {
// 商户appid
public static String APPID = "";
// 私钥 pkcs8格式的
public static String RSA_PRIVATE_KEY = "";
// 服务器异步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String notify_url = "";
// 页面跳转同步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 商户可以自定义同步跳转地址
public static String return_url = "";
// 请求网关地址
public static String URL = "https://openapi.alipay.com/gateway.do";
// 编码
public static String CHARSET = "UTF-8";
// 返回格式
public static String FORMAT = "json";
// 支付宝公钥
public static String ALIPAY_PUBLIC_KEY = "";
// RSA2
public static String SIGNTYPE = "RSA2";
}
2.接口
/**
* 支付宝支付接入H5
*/
@Controller
@RequestMapping("/aliPay")
public class AliPayH5 {
/**
* 调用支付宝
* @param request
* @return
*/
@RequestMapping("/toPay")
public String pay(HttpServletRequest request, Model model){
String rechargeNo = "";//订单号
String body = "";//描述(可空)
String subject = "";//订单名称
String amount = "";//金额
//rechargeNo = request.getParameter("rechargeNo");
body = "";
//subject = request.getParameter("subject");
//amount = request.getParameter("amount");
String timeout = "60m";//超时时间
String productCode = "";//销售产品码
//调用RSA签名方式
AlipayClient client = new DefaultAlipayClient(
AlipayConfig.gateWay,
AlipayConfig.partner,
AlipayConfig.private_key,
AlipayConfig.format,
AlipayConfig.input_charset,
AlipayConfig.alipay_public_key,
AlipayConfig.sign_type);
AlipayTradeWapPayRequest aliPayRequest = new AlipayTradeWapPayRequest();
// 封装请求支付信息
AlipayTradeWapPayModel atw = new AlipayTradeWapPayModel();
atw.setOutTradeNo(rechargeNo);
atw.setSubject(subject);
atw.setTotalAmount(amount);
atw.setBody(body);
atw.setTimeoutExpress(timeout);
atw.setProductCode(productCode);
aliPayRequest.setBizModel(atw);
// 设置异步通知地址
aliPayRequest.setNotifyUrl(AlipayConfig.notify_url);
//设置同步地址
aliPayRequest.setReturnUrl(AlipayConfig.return_url);
// form表单生产
String form = "";
// 调用SDK生成表单
try {
form = client.pageExecute(aliPayRequest).getBody();
model.addAttribute("form",form);
} catch (Exception e) {
e.printStackTrace();
}
return "alipay/pay";
}
}