首先支付宝网站登录,信息认证即可
https://open.alipay.com/platform/appDaily.htm?tab=account
依赖
<dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.9.28.ALL</version> </dependency>
两个实体类
public class AlibabapayGateWayUtils { /** * * @param orderID 订单号 * @param total_amount 支付金额 * @param subject 商品名称 * @param body 商品描述 * @return */ public static String createOrder(String orderID,String total_amount,String subject,String body) throws AlipayApiException { Map<String,String> map = new HashMap<>(); map.put("out_trade_no",orderID); map.put("trade_no",orderID); map.put("total_amount",total_amount); map.put("subject",subject); // 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。 String timeout_express = "1c"; map.put("timeout_express",timeout_express); map.put("product_code","FAST_INSTANT_TRADE_PAY"); AlipayClient alipayClient = getAlipayClient(); //设置请求参数 AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest(); alipayRequest.setReturnUrl(AlipayConfig.return_url); alipayRequest.setNotifyUrl(AlipayConfig.notify_url); alipayRequest.setBizContent(JSON.toJSONString(map)); String result = alipayClient.pageExecute(alipayRequest).getBody(); return result; } private static AlipayClient getAlipayClient() { return new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type); } /** * 查询订单 * @param map * @return * @throws AlipayApiException */ public AlipayTradeQueryResponse queryOrder(Map<String, String> map) throws AlipayApiException { AlipayClient alipayClient = getAlipayClient(); //构造API请求 AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); request.setBizContent(JSON.toJSONString(map));//订单允许的最晚付款时间 //发送请求 AlipayTradeQueryResponse response = alipayClient.certificateExecute(request); System.out.println("请求支付宝查询接口返回的结果为:"+response.getBody()); return response; } }
public class AlipayConfig { //APPID public static String app_id = "2021000118658355"; //私钥 public static String merchant_private_key = ""; //公钥 public static String alipay_public_key = ""; //通知地址 public static String notify_url = "http://localhost/list"; //返回地址 public static String return_url = "http://localhost/list"; //信号类型 public static String sign_type = "RSA2"; //编码格式 public static String charset = "utf-8"; //网关地址 public static String gatewayUrl = ""; }
主要方法
//支付 @RequestMapping(value = "addOrder", produces = "text/html; charset=UTF-8") @ResponseBody public String goPay(Torder torder) throws AlipayApiException { String order = AlibabapayGateWayUtils.createOrder("订单号", "总金额" ,"商品名称", "描述"); return order; }