支付宝支付(沙盒支付)

后端页面代码

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