1.导入AliPa依赖
<dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.34.0.ALL</version> </dependency>
如果出现fastjson依赖冲突可以在导入时排除:
<!--引入alipay依赖时排除指定的依赖-->,放在<dependency>内 <exclusions> <exclusion> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> </exclusion> </exclusions>
2.配置文件
官方配置文件:
进入控制台登录支付宝查看沙箱账号,然后进行配置,建议通过配置文件配置
@Controller @RequestMapping("/pay") public class AlipayController { private String orderId; @Autowired private OrdersService ordersService; @SneakyThrows @PostMapping("/aliPay") @ResponseBody public String aliPay(AlipayBean alipayBean) { AlipayConfig alipayConfig = new AlipayConfig(); //设置网关地址 alipayConfig.setServerUrl("https://openapi-sandbox.dl.alipaydev.com/gateway.do"); //设置应用ID alipayConfig.setAppId("9021000137668654"); //设置应用私钥 alipayConfig.setPrivateKey("MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCVT21Y1YoCPDXVNQifGNPUDLla9hWyNfLNQmOS40RObSzavOJfUiQMR9KdF1Vd+gZtdBfrUqZHPAyF1iJsRbcEByNEYIERefnXwMGezDPSXy+xEeD4gbk8YwPn6ZiYiyvgw8HA1xViEKK7YjYbau8TEIGVp0n94w9H2qAtFXv79F0b1JHskCSRaOUQPJEJuxCkfogg6HjyGehyEJJSuMhgoaU21qSl7MItrqTBkfR6svpmWaPg7vzxmpMLtqoXtKayxcmM4/f4w3n5wXYuu+m85QHKiugAyOQMEdM9tnw1KvAPpw+h7xywkQhaSTcWJn/tqmwioIbexn/6hLHHeCMpAgMBAAECggEAcl5cy+cFx6CHO8Fb0UIbQBpfAKXvCIr6aO+phiI/eDN4YDS+0XUB18ZMNbhh05Joyf5bNA4i//2nOf1EcNsVzSgKg53IP7LHBdTIevK/3yy6Q1AGm1QCp5bQrxvnnzE7cvd/uk8GOg+0FwSrnWTTrC7Ak/mIW8lJMyjr+Jy0U9E2p0Hu4QU1EnXVSY+bI7UVYl495HKhXZKOHvRVH6jmUueEsl0DFhIqrOVTx7qPKxQ5yK9eHW4bg7Eoca5NK77CGejypnSCKjbzxmlf0nPw3ivcIQiGw92RhQib/OyBe3hXWXFlocOVNsDmrSpHRw2x1VoHSN2u6RrFlO0b8rXIAQKBgQDK9wpqGacaew4jVxcG7mLX9WNcUS9c8bigHHJUrcRAe5EQdlX3/hwEJpjFEez5wsdMdLVGotfn4EEe4CSVy1ohigzQSQZMe/tcxqUHlHbayztk3wfdI/G3UuBqVhp6aEkANJwTctHNw125s9iklwyFM26xqmJaDwm3g85bHMoVYQKBgQC8U0EWeFyBDXIs5kikPZzge+2ubdlPKN8KUMql0a23xVX6fVelVlE/mmcYxp8cOYPJNkGkXiKKmB5G/l/IXW1riQc9UTXzdaL1Wse0wO0K72UFlGMPCtZU0Dt7PC29ysrpxI9gHr+vUUjcbc8TaFowZooTT3YmP9anqiSwgJGayQKBgDKgOkXKzkapqRYhlAnTjm4ltDoDuhep545wagg7K7eV2tJLYhgwlxZl9jc5yG1oK0Qj3E+ZMNeStUuZRybiCUJSZ+3QOTT8u+8hUWq5mofqp476nsCHRbSfhIChp4se1g6qEMA9JJ35fDhk5sXvM11KPfMs98lU9OyEgQVzAekhAoGAWxVlKIoEK4KmUyL5xT3rbwNhXHjSnp+k6GdU68gy3ev6fpE638OUvk9eR7Rg5hTHMX0lWGsTB7c1BZ8oEk9liZoXv0dU8bBWpZZHepvIyf4o/P7cvjy+lvyzmBHuCZpYc6HWumWEzjVhKQOPINLatAgUBezrtuovVp5K6nb0dUkCgYAQd379eHM/sf6kay6H8MkFhovb4PoMJ9iT8qsIUDV1HrJz1JLp1tClKJ5/eIuZeq8aYNl7ovYoctKEwv7kDs/rRNrAELRLJ1jgRNZnv4Ru0CB3B9qtO3vmy5+TnVb6S4y/YTz/zj44StXstdd8ABzLmkantotUEQqkx7CT3pvaSw=="); //设置请求格式,固定值json alipayConfig.setFormat("json"); //设置字符集 alipayConfig.setCharset("UTF-8"); //设置签名类型 alipayConfig.setSignType("RSA2"); //设置支付宝公钥 alipayConfig.setAlipayPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlU9tWNWKAjw11TUInxjT1Ay5WvYVsjXyzUJjkuNETm0s2rziX1IkDEfSnRdVXfoGbXQX61KmRzwMhdYibEW3BAcjRGCBEXn518DBnswz0l8vsRHg+IG5PGMD5+mYmIsr4MPBwNcVYhCiu2I2G2rvExCBladJ/eMPR9qgLRV7+/RdG9SR7JAkkWjlEDyRCbsQpH6IIOh48hnochCSUrjIYKGlNtakpezCLa6kwZH0erL6Zlmj4O788ZqTC7aqF7SmssXJjOP3+MN5+cF2LrvpvOUByoroAMjkDBHTPbZ8NSrwD6cPoe8csJEIWkk3FiZ/7apsIqCG3sZ/+oSxx3gjKQIDAQAB"); //实例化客户端 AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig); //创建基于网页的请求对象 AlipayTradePagePayRequest pagePayRequest = new AlipayTradePagePayRequest(); //设置业务类对象 pagePayRequest.setBizContent(JSONObject.toJSONString(alipayBean)); //支付成功后进行跳转-同步方式跳转 //pagePayRequest.setNotifyUrl("/pay/success"); //支付成功后进行跳转-异步方式跳转 pagePayRequest.setReturnUrl("http://localhost/pay/success"); return alipayClient.pageExecute(pagePayRequest).getBody(); } @GetMapping("/success") public String paySuccess() { System.out.println("支付成功......"); //更新订单状态 // orderService.updateOrderStatus(orderId,1); return "redirect:http://localhost:8080/#/paySuccess"; } }
3.封装一个支付信息的对象
@Data public class AlipayBean { // 描述⼀个订单号 private String out_trade_no; // 订单名称 private String subject; // 订单付款⾦额 private String total_amount; // 订单的描述 private String body; // PC⽹⻚⽀付必传参数 private String product_code = "FAST_INSTANT_TRADE_PAY"; }
4.生成支付信息后通过表单同步提交给alipay处理