支付宝支付(沙盒支付)

后端页面代码

java 复制代码
@Controller
@RequestMapping("/pay")
public class PayController {
    private String orderId;
    @Autowired
    private OrdersService ordersService;

    @Value("${appId}")
    private String appId;
    @Value("${privateKey}")
    private String privateKey;
    @Value("${publicKey}")
    private String publicKey;
    @Value("${notifyUrl}")
    private String notifyUrl;
    @Value("${returnUrl}")
    private String returnUrl;
    @Value("${signType}")
    private String signType;
    @Value("${charset}")
    private String charset;
    @Value("${gatewayUrl}")
    private String gatewayUrl;


    /**
     * 支付宝支付
     */
    @PostMapping("/aliPay")
    @SneakyThrows
    @ResponseBody
    public String aliPay(Alipay alipayBean) {
        this.orderId = alipayBean.getOut_trade_no();

        System.out.println("===============" + alipayBean);
        AlipayConfig alipayConfig = new AlipayConfig();
        //设置网关地址
        alipayConfig.setServerUrl(gatewayUrl);
        //设置应用ID
        alipayConfig.setAppId(appId);
        //设置应用私钥
        alipayConfig.setPrivateKey(privateKey);
        //设置请求格式,固定值json
        alipayConfig.setFormat("json");
        //设置字符集
        alipayConfig.setCharset(charset);
        //设置签名类型
        alipayConfig.setSignType(signType);
        //设置支付宝公钥
        alipayConfig.setAlipayPublicKey(publicKey);
        //实例化客户端(创建支付宝的客户端对象并将相关配置添加到对象中)
        AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
        //创建基于网页的请求对象
        AlipayTradePagePayRequest pagePayRequest = new AlipayTradePagePayRequest();
        //设置业务类对象
        pagePayRequest.setBizContent(JSONObject.toJSONString(alipayBean));

        //支付成功后进行跳转-同步方式
        // pagePayRequest.setNotifyUrl();
        //支付成功后进行跳转-异步方式
        pagePayRequest.setReturnUrl(returnUrl);
        alipayClient.pageExecute(pagePayRequest);

        // ⽣成最终的订单
        return alipayClient.pageExecute(pagePayRequest).getBody();
    }

    @RequestMapping("/success")
    public String success() {
        /**
         * 跟新订单状态
         *      //支付成功后将订单表当中的状态改为已支付状态(1)
         */

        ordersService.updateOrderStatus(orderId, 1);
        return "redirect:http://localhost:7000/#/paySuccess";
    }

aliPay.properties配置文件(根据自己的设置沙盒类容设置)

XML 复制代码
##appid
appId: 9021000137669550
##??
privateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCb712W0i8uBnjS3cS6fcVb9RruouZrqe9GreLvL8BzDSTr2ldF5oysfd5vEDckYwFNgiam0TlArCB6Va1DyPtrG0RBJwmSAwXzP9vo5IpIncLkfTXCComH2ZOAK9cKAwbtQ9ToT4JW87P7cKbDZDeiTB7K0tQdIfvkn8UBB6VFY7IEV2rLF9vq10HdKt95fwOaOBvN1FUzMWmPdngkcNbpq0E0ejUNqP5k+B+DEZTtHqmTPkLEHBqN88+7LAAij8l4E5Bb+vJoL53LP8fgkWnjpwGfcpR119cp0t4bOgbF/DsrifzNAnOcBEhNsFDMEZ/idQzCMuxmQOtNX9F92U3VAgMBAAECggEANq/T2rkL4tBSP2GXRPAm7wEe2OI4fTmzuM3y8H+GttK9SBni0ZjxbO0XvUuqixBNvKkQdSCbO5siKMUzZrptsjp1zYOrT5HP3Gdg8GR2OtFZMFjZKZwYb5RWrnSxjclR/JP1byOzSltdm6j+UzgqarjXc7pMuYrZlGyT4rCTvamUyL8ASzjZ4MhVX6gW1vHvwCo4kd9m4/wtZ5/ebLvoDPgnqf+u0OaQv2109PbafRsFmoiYZS73i5K0pr3U1Cx1xnPbkR9yTwhRoi3PZFw8vgrsq+/GlXj4759uQ1uo4OP1fOdEUOCcgAA64LXXfOdsSeagHI7IUwF2z9fLOvdMAQKBgQDSZsDSr/FfIvCnkZRTJsYaSv3D2K1t6LZJTms4R2FJR7Tk652srUwPo/pMWzvdjC5PcE6U+bWRg1+rKmNn+hiJ6JvN3AupbP3CAV97Ac0JUUb03pBG07lortUZu3/hF6g8RXKzFRW2dNcFyt+YDjWrzIl13nTVPswCpSwfkJgzdQKBgQC9usXO+GLu6CHg3e1xVb5FsD3mTXSvHeTg8mTpSnTQGHhnIamOKWoDRT53cGnQ0ZiNk9pZnFcRQVp9NZndA6ahdHNfAKiWEwu2yDB6SjAX7Oj5hPShgx14GOHPv5VMqJJMaTOFVBJe32TrLVrsCSpaXSwUUI15PUSBGhggkKVE4QKBgQC1ht+wJwqJ+VxGRs0A3MAoaTD+KtCethunrZfGK5edINfKdhpIpA+uotxNyp0g7VP7R7sUv0jO7di5lc3EJLvNKDpcZxBMsfNR0dtuBkS/WDdvByLVaNBbqBPFqsaPDtkgfw6RwYxFKhNmNP2qdAAMZGDop/CHFzHuylECPr+CDQKBgGOTjxXdTy9MLduzHleJRN+WbCZfKIpwChv1m/jE1yIQdcDK7g5qtfUZdnuBSEgMeSB1JPg7EYdA4ZktdJ+GtwGt+I837UM2o8M+thK4tR0ZffzXRv0tr13E0V8Tkew13PK1lBC52xpn7LNxjnKrLMtYczYGQPoMqdOIOnl88QCBAoGAOGyehaDx1EIeCnvem7kRc4YH6hT6l6jpvXIQhj1QZX0y3pDt8UtR3+tCJ86MRrl+TE4vNMIzUdWuS0PGc2cWmCGERfSBFkLksG1RVt9N9/YHF5Mxn2JS3ntB+y8Xw4uEOiq6mYHss1JX5aJmoeVVCYmdgGvGAZL9cTW9eHL04dY=
publicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiUqdVMuU1531W+AaN3HHdWd4bw1mSmSmyb+IAPWXtCmvWc6w7nevscswgW5lzqQabxceZlKwVRgF96y4py4Cxgph8ErTQY79xRzxQqt5H4WyUvmvLI/InKOOJ/o7/Y/13fvA44A6d/UpGa+6wGoSkdLfzZUGG9hzefnFaqLK6Z+94zT1DIfgPItxVlpgC+JWtLejf9e1cKyqQ0FqA3x3hLC6U783pihPwDUh5rm/3ClllQdXoIyTMvrsOVSX4SmwKimud5OuFt8l379baLRSd0FIDf/N+gExZJGkw2NAP+6BlReEpsXzwoXx0S3jaSwv4uNj+TSubp9c+a1tk1jy4QIDAQAB
##??????????
notifyUrl: http://localhost:8080/pay/alipay/success

returnUrl: http://localhost:8080/pay/success
##????
signType: RSA2
## 编码格式
charset: utf-8
##
gatewayUrl: https://openapi-sandbox.dl.alipaydev.com/gateway.do

前端代码

html 复制代码
<template>

<div class="container">
    <el-container>
       <el-header>
        <h2 align="center">付款界面</h2>
       </el-header>
       <el-main>
         
        <div style="margin:0 auto;width:100%;text-align:center">
          <table style="text-align: center;">
          <tr>
            <th>主题</th>
            <td>{{pay.subject}}</td>
          </tr>
          <tr>
            <th>订单编号</th>
            <td>{{pay.out_trade_no}}</td>
          </tr>
          <tr>
            <th>支付金额</th>
            <td>{{pay.total_amount}}</td>
          </tr>
          <tr>
            <th>订单描述</th>
            <td>{{pay.body}}</td>
          </tr>
        </table>  
        </div>
        

        <div style="margin:0 auto;width:100%;text-align:center">
        <form action="http://localhost:8080/pay/aliPay" method="POST">
          <input type="hidden" :value="pay.out_trade_no" name="out_trade_no"/>
          <input type="hidden" :value="pay.total_amount" name="total_amount"/>
          <input type="hidden" :value="pay.subject" name="subject"/>
          <input type="hidden" :value="pay.body" name="body"/>
         <button style="color: red;">支付订单</button>
        </form>
         <!-- <el-button type="primary" @click="pays">付款</el-button> -->
        </div>
        
        
       </el-main>
       
    </el-container>
   </div>
 </template>
  <script>
  export default {
      data(){
         return {
            pay:{}
         }
      },
      methods:{
         
        // pays(){
        //     this.$axios
        //         .post('pay/aliPay',this.pay)
        //         .then(response=>{
        //                 console.log(response.data);
        //         })
        // }
      },
      created(){
        //解析传递过来的json
        this.pay =JSON.parse(this.$route.params.payParams)
        console.log(this.pay);
      }
  }
  </script>
  
  <style scoped>
    .el-header, .el-footer {
      background-color: #B3C0D1;
      color: #333;
    }
    
    .el-main {
    
      background-color: #FFFFFF;
      color: #333;    
    }
  
  </style>
  
  

前端页面支付展示

点击支付订单后跳转到支付页面

相关推荐
Mr_sun.7 分钟前
Day09——入退管理-入住-2
android·java·开发语言
MAGICIAN...18 分钟前
【java-软件设计原则】
java·开发语言
Ticnix19 分钟前
ECharts初始化、销毁、resize 适配组件封装(含完整封装代码)
前端·echarts
纯爱掌门人22 分钟前
终焉轮回里,藏着 AI 与人类的答案
前端·人工智能·aigc
JH307324 分钟前
为什么switch不支持long
java
twl26 分钟前
OpenClaw 深度技术解析
前端
崔庆才丨静觅29 分钟前
比官方便宜一半以上!Grok API 申请及使用
前端
星光不问赶路人38 分钟前
vue3使用jsx语法详解
前端·vue.js
天蓝色的鱼鱼41 分钟前
shadcn/ui,给你一个真正可控的UI组件库
前端
盐真卿42 分钟前
python第八部分:高级特性(二)
java·开发语言