支付宝沙箱支付 Java
一、登录支付宝沙箱
开放平台-沙箱环境 (alipay.com)
(1)获取appid 没有账号的先注册
(2)设置RSA2密钥
1、依然是沙箱环境,如下,点击 设置
2、选择 公钥,此处的公钥支付宝提供了专门的生产工具,很方便
3.选择在线生成即可
3.注意公钥,私钥
4.将生成的应用公钥拷贝到沙箱环境公钥位置
点击保存,会生成支付宝公钥,后续开发会说明用在哪里。
二、项目配置
目录结构
导入pom
<dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.13.50.ALL</version> </dependency><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-easysdk</artifactId><version>2.1.2</version> </dependency>
三、开发
AliPayBean类
@Data
public class AliPayBean {/*** 商户订单号*/private String out_trade_no;/*** 订单名称*/private String subject;/*** 付款金额*/private String total_amount;/*** 商品描述*/
// private String body;/*** 超时时间参数*/private String timeout_express = "60m";/*** 产品编号*/private String product_code = "FAST_INSTANT_TRADE_PAY";
}
Alipay 类:注意上面的appid,商户私钥,支付宝公钥,网关填写自己的
package com.aaa.ssm.config;import com.aaa.ssm.bean.AliPayBean;
import com.alibaba.fastjson.JSON;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;import lombok.Data;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;@Data
@Configuration
public class Alipay {/**日志对象*/private static final Logger logger = LoggerFactory.getLogger(Alipay.class);private final String format = "json";/*** appId*/@Value("填写自己的appid")private String appId;/*** 商户私钥*/@Value("填写自己的商户私钥")private String privateKey;/*** 支付宝公钥*/@Value("填写自己的支付宝公钥")private String publicKey;/*** 服务器异步通知页面路径,需要公网能访问到*/@Value("http://localhost:8080/ssm/error_url.html")private String notifyUrl;/*** 服务器同步通知页面路径,填写自己的成功页面路径*/@Value("填写自己的成功页面路径")private String returnUrl;/*** 签名方式*/@Value("RSA2")private String signType;/*** 字符编码格式*/@Value("utf-8")private String charset;/*** 支付宝网关*/@Value("填写自己的支付网关")private String gatewayUrl;public String pay(AliPayBean aliPayBean) throws AlipayApiException {AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, format, charset, publicKey, signType);AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();alipayRequest.setReturnUrl(returnUrl);alipayRequest.setNotifyUrl(notifyUrl);alipayRequest.setBizContent(JSON.toJSONString(aliPayBean));logger.info("封装请求支付宝付款参数为:{}", JSON.toJSONString(alipayRequest));String result = alipayClient.pageExecute(alipayRequest).getBody();logger.info("请求支付宝付款返回参数为:{}", result);return result;}
}
OrderController类:
@Controller
@RequestMapping("/ali")
public class OrderController {/**日志对象*/private static final Logger logger = LoggerFactory.getLogger(OrderController.class);@Autowiredprivate PayService payService;@RequestMapping("/pay")@ResponseBodypublic String alipay(String outTradeNo, String subject, String totalAmount) throws AlipayApiException {logger.info("商户订单号为{},订单名称为{},付款金额为{}", outTradeNo, subject, totalAmount);AliPayBean alipayBean = new AliPayBean();alipayBean.setOut_trade_no(outTradeNo);alipayBean.setSubject(subject);alipayBean.setTotal_amount(totalAmount);return payService.aliPay(alipayBean);}@RequestMapping("/success")@ResponseBodypublic String success(){return "交易成功!";}@RequestMapping(value = "/index")public String payCoin(){return "zfindex.html";}
}
Pay 类
@Data
public class Pay {//订单号private String outTradeNo;//名称private String subject;//价格private String totalAmount;}
PayServiceImpl类
@Service
public class PayServiceImpl implements PayService {/**日志对象*/private static final Logger logger = LoggerFactory.getLogger(PayServiceImpl.class);@Autowiredprivate Alipay alipay;@Overridepublic String aliPay(AliPayBean aliPayBean) throws AlipayApiException {logger.info("调用支付服务接口...");return alipay.pay(aliPayBean);}
}
PayService 接口
public interface PayService {String aliPay(AliPayBean aliPayBean) throws AlipayApiException;
}
四、前端页面
index.html
<!--<!DOCTYPE html>-->
<!--<html lang="en">-->
<!--<head>-->
<!-- <meta charset="UTF-8">-->
<!-- <title>Title</title>-->
<!--</head>-->
<!--<body>-->
<!--<form action="/ssm/ali/pay" method="post">-->
<!-- 订单号:<input type="text" name="outTradeNo" required><br/>-->
<!-- 订单名称:<input type="text" name="subject" required><br/>-->
<!-- 付款金额:<input type="text" name="totalAmount" required><br/>-->
<!-- 商品描述:<input type="text" name="body"><br/>-->
<!-- <input type="submit" value="下单"> <input type="reset" value="重置">-->
<!--</form>-->
<!--</body>-->
<!--</html>--><!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title></title><script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script><!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><!-- 引入样式 --><link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"><!-- 引入组件库 --><script src="https://unpkg.com/element-ui/lib/index.js"></script></head>
<body><div id="app"><el-form :model="info" label-width="80px"><el-form-item label="订单号"><el-input v-model="info.outTradeNo"></el-input></el-form-item><el-form-item label="商品名称"><el-input v-model="info.subject"></el-input></el-form-item><el-form-item label="支付价格"><el-input v-model="info.totalAmount"></el-input></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">立即创建</el-button><el-button>取消</el-button></el-form-item></el-form></div><script type="text/javascript">var app = new Vue({el: "#app",data: {info: {outTradeNo:'',subject: '',totalAmount: ''}},methods: {onSubmit() {var outTradeNo=app.info.outTradeNovar subject=app.info.subjectvar totalAmount=app.info.totalAmountlocation.href="/ssm/ali/pay/?outTradeNo="+outTradeNo+"&subject="+subject+"&totalAmount="+totalAmount;}}})
</script></body>
</html>
error_url.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h2>支付失败</h2>
</body>
</html>
return_url.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h2>支付成功</h2>
</body>
</html>
运行结果:输入订单号,名称,价格 注意:不能为汉字
账号密码沙箱里面有
完结
支付宝沙箱支付 Java相关推荐
- 在线商城介绍-支付宝沙箱支付-JAVA【数据库设计、源码、开题报告】
1 绪论 1.1 管理信息系统概述 管理信息系统是计算机在信息管理领域的一种实用技术.通过运用管理科学.数学和计算机应用的原理及方法,在符合软件工程规范的原则下,形成一套完整的理论和方法体系.是一个以 ...
- 基于SpringBoot vue的电脑商城平台源码和论文含支付宝沙箱支付
演示视频: 基于SpringBoot vue的电脑商城平台源码和论文含支付宝沙箱支付演示视频 支付宝沙箱: package com.java.controller;import java.util.* ...
- 一文叫你学会用JavaWeb开发共享图书馆系统(附加支付宝沙箱支付接入)
前提: 学习书籍: 黑马程序员的<Java Web程序设计任务教程>: 如果没有本文的资源均可以评论留言,我可以免费发给你们学习. 下载安装Eclipse 2021.MySQL 5.5.T ...
- SpringBoot+Vue整合支付宝沙箱支付
SpringBoot+Vue2整合实现支付宝沙箱支付 原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!!原创不易,转载请注明!! 在进行电脑网站开发时我们 ...
- app支付宝支付java后台_支付宝app支付java后台流程demo
支付宝app支付java后台流程demo 使用ssm框架实现支付宝支付功能. 支付宝测试环境代码测试 源代码 https://github.com/OUYANGSIHAI/sihai-maven-ss ...
- 支付宝app支付java后台流程demo
支付宝app支付java后台流程demo 使用ssm框架实现支付宝支付功能. 支付宝测试环境代码测试 源代码 https://github.com/OUYANGSIHAI/sihai-maven-ss ...
- 基于SpringBoot vue的茶叶商城平台源码和论文含支付宝沙箱支付
此项目是前后端分离的 后台项目:shop 前端项目:Vue-shop 后端项目启动步骤: 1.先把sql导入数据库 2.把后台项目导入编辑器 3.修改数据库配置 4.启动项目 前端项目启动步骤: ...
- springboot整合支付宝沙箱支付
springboot整合支付宝沙箱支付 1.简介 支付宝开发平台地址:https://open.alipay.com/develop/sandbox/app 对于学生来说,目前网上确实没有比较统一而且 ...
- 阿里云支付宝沙箱支付
阿里云支付宝沙箱支付 项目文件是maven项目 第一步pom.xml引入jar包 <!-- 沙箱支付依赖--><dependency><groupId>com.al ...
最新文章
- 深入理解JVM(二)--垃圾收集算法
- vue拖动添加模块展示_一个全新的Vue拖拽特性实现:“移动”部分
- Python之配置日志模块logging
- boost::hana::zip用法的测试程序
- 题目1023:EXCEL排序---------Case后面的是count,不是C
- 深度学习之卷积神经网络 GoogleNet
- python如何输出两列数据_Python-如何将一列分为两列?
- 关于数论【莫比乌斯反演】
- 卧槽:这款 SQL自动检查神器,吊炸天的功能,真TMD多!!
- xp系统打印服务器自动关闭,XP系统服务管理Print spooler自动关闭的解决办法
- 【python】教你使用seLeniun爬取淘宝商品数据(内含完整源码)
- 如何快速上手强化学习?
- java8 GC日志分析
- JAVA POI 读取2017Excel
- English--定语从句
- 《程序员的自我修养-链接-装载与库》第三章 目标文件里有什么(1)
- 三菱FX2N编程口通信协议
- Oracle的ltrim函数
- python面试中的8个必考问题_Python 面试中 8 个必考问题,值得收藏!
- CBI年度大选创新产品奖——Hitachi VSP 5000系列