支付宝支付(沙盒支付)

后端页面代码

@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配置文件(根据自己的设置沙盒类容设置)

##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

前端代码

<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>
  
  

前端页面支付展示

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/671951.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

字符串操作java

题目&#xff1a; 描述 给定长度为n的只有小写字母的字符串s&#xff0c;进行m次操作&#xff0c;每次将[l,r]范围内所有c1字符改成c2&#xff0c;输出操作完的字符串 输入描述&#xff1a; 第一行两个数n,m 第二行一个字符串s 之后m行&#xff0c;每行两个数l 、r两个字符…

基础—SQL—DCL(数据控制语言)小结

一、总结 在SQL分类中的DCL语句部分&#xff0c;主要讲到了两个部分的知识。 1、用户管理 用户管理&#xff0c;主要是管理哪些用户可以访问当前 mysql 数据库。 包括&#xff1a;创建用户、修改用户密码以及删除用户 2、权限控制 权限管理&#xff0c;主要是控制我们当前用户…

微软云计算之云计算平台、云操作系统Windows Azure

微软云计算平台 微软云计算平台微软的云计算技术Windows Azure组成 微软云操作系统Windows AzureWindows Azure概述Windows Azure计算服务Windows Azure存储服务全局命名空间体系架构存储域的层次结构双复制引擎文件流层分区层 Windows Azure ConnectWindows Azure CDNFabric控…

安卓组合控件(底部标签栏、顶部导航栏、增强型列表、升级版翻页)

本章介绍App开发常用的一些组合控件用法&#xff0c;主要包括&#xff1a;如何实现底部标签栏、如何运用顶部导航栏、如何利用循环视图实现3种增强型列表、如何使用二代翻页视图实现更炫的翻页效果。 底部标签栏 本节介绍底部标签栏的两种实现方式&#xff1a;首先说明如何通…

Linux系统tab键无法补齐命令-已解决

在CentOS中&#xff0c;按下tab键就可以自动补全&#xff0c;但是在最小化安装时&#xff0c;没有安装自动补全的包&#xff0c;需要安装一个包才能解决 bash-completion 1.检查是否安装tab补齐软件包&#xff08;如果是最小化安装&#xff0c;默认没有&#xff09; rpm -q ba…

提莫攻击 ---- 模拟算法

题目链接 题目: 分析: 如果两次攻击的时间差是>中毒的持续时间duration, 那么第一次攻击的中毒时间就是duration如果两次攻击的时间差是< 中毒的持续时间duration, 那么第一次攻击的持续时间就是这个时间差假设攻击了n次, 那么我们从第一次攻击开始计算时间差, 那么当我…

Halo DB 魔法之 pg_pcpu_limit

↑ 关注「少安事务所」公众号&#xff0c;欢迎⭐收藏&#xff0c;不错过精彩内容~ 前情回顾 前面已经介绍了“光环”数据库的基本情况和安装办法&#xff0c;今天来介绍一个新话题。 哈喽&#xff0c;国产数据库&#xff01;Halo DB! 三步走&#xff0c;Halo DB 安装指引 ★ Ha…

C++ A (1020) : 幂运算

文章目录 一、题目描述二、参考代码 一、题目描述 二、参考代码 #include<bits/stdc.h> using namespace std; typedef long long ll;void qq(ll a, ll b, ll m) {if (a 0) cout << 0 << endl;;ll out 1;a % m;while (b > 0){if (b & 1)//奇数的最…

LeetCode17电话号码的字母组合

题目描述 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 解析 广度优先遍历或者深度优先遍历两种方式&#xff0c;广度优先…

【OpenHarmony】TypeScript 语法 ④ ( 函数 | TypeScript 具名函数和匿名函数 | 可选参数 | 剩余参数 | 箭头参数 )

文章目录 一、TypeScript 函数1、TypeScript 具名函数和匿名函数2、TypeScript 函数 与 JavaScript 函数对比3、TypeScript 函数 可选参数4、TypeScript 函数 剩余参数5、TypeScript 箭头函数 参考文档 : <HarmonyOS第一课>ArkTS开发语言介绍 一、TypeScript 函数 1、Typ…

PHP MySQL图解学习指南:开启Web开发新篇章

PHP曾经是最流行的Web开发语言&#xff0c;许多世界领先的网站(如Facebook、维基百科和WordPress)都是用它编写的。PHP运行在Web服务器端&#xff0c;通过使用存储在MySQL数据库中的数据&#xff0c;使得网站可以为每一位访问者显示不同的定制页面。书中采用简单、直观的图示化…

bootstrap5-学习笔记2-模态框+弹窗+tooltip+popover+信息提示框

参考&#xff1a; Bootstrap5 教程 | 菜鸟教程 https://www.runoob.com/bootstrap5/bootstrap5-tutorial.html Bootstrap 入门 Bootstrap v5 中文文档 v5.3 | Bootstrap 中文网 https://v5.bootcss.com/docs/getting-started/introduction/ 之前用bootstrap2和3比较多&#x…

15.使用Ollydbg分析处理hp减伤害的函数

上一个内容&#xff1a;14.Ollydbg的基本使用 在 9.游戏中真正的无敌 里找了处理hp减伤害函数的方法 Ollydbg对hp减伤害函数打一个断点&#xff0c;然后一步一步分析数据&#xff0c;下图是进入了hp减伤害函数之后被断点主的样子&#xff0c;然后这时的ecx是人物this地址&…

【刷题】初探递归算法 —— 消除恐惧

送给大家一句话&#xff1a; 有两种东西&#xff0c; 我对它们的思考越是深沉和持久&#xff0c; 它们在我心灵中唤起的惊奇和敬畏就会日新月异&#xff0c; 不断增长&#xff0c; 这就是我头上的星空和心中的道德定律。 -- 康德 《实践理性批判》 初探递归算法 1 递归算…

前端逆向之查看接口调用栈

一、来源 再分析前端请求接口数据的时候&#xff0c;其中有一个sid不知道是前端如何获取的&#xff0c;一般情况下只需要全局搜搜sid这个字符串或者请求接口的名称就可以了&#xff0c;基本都能找到sid的来源&#xff0c;但是今天这个不一样&#xff0c;搜什么都搜不到 接口地…

SAP跨服务器传输请求号

环境一、两台服务器并没有维护连接传输线路&#xff08;DEV和QAS&#xff09; 环境二、需要将外部公司服务器上的请求号传输到内部服务器中 方式&#xff1a;先从开发环境或服务器中下载请求号&#xff0c;再将请求号上传到目标服务器或环境中&#xff0c;在目标服务器使用ST…

分享:重庆耶非凡科技有限公司人力资源项目靠不靠谱?

在当今快速变化的商业环境中&#xff0c;人力资源项目作为企业发展的重要支撑&#xff0c;其专业性和可靠性成为企业选择合作伙伴时的重要考量因素。重庆耶非凡科技有限公司作为一家在行业内颇具影响力的科技企业&#xff0c;其人力资源项目——人力RPO(招聘流程外包)项目&…

实现Redis和数据库数据同步问题(JAVA代码实现)

这里我用到了Redis当中的发布订阅模式实现(JAVA代码实现) 先看图示 下面为代码实现 首先将RedisMessageListenerContainer交给Spring管理. Configuration public class redisConfig {AutowiredRedisConnectionFactory redisConnectionFactory;AutowiredQualifier("car…

Hive安装-内嵌模式

1.官网下在hive3.1.2版本 Index of /dist/hive/hive-3.1.2 2.上传到master节点的/opt/software目录下 3.解压到/opt/module目录下 tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module/ 检查解压后文件 4.修改名字 改为hive cd /opt/module mv apache-hive-3.1.2-bin…

数据结构 实验 1

题目一&#xff1a;用线性表实现文具店的货品管理问题 问题描述&#xff1a;在文具店的日常经营过程中&#xff0c;存在对各种文具的管理问题。当库存文具不足或缺货时&#xff0c;需要进货。日常销售时需要出库。当盘点货物时&#xff0c;需要查询货物信息。请根据这些要求编…