支付宝沙箱支付

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.配置文件

官方配置文件:

通用版 - 支付宝文档中心 (alipay.com)

进入控制台登录支付宝查看沙箱账号,然后进行配置,建议通过配置文件配置

@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处理

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值