2021-02-11-JavaWeb网站接入支付宝支付
JavaWeb网站接入支付宝支付
- 前言
- 前序步骤
- 接入
- pom.xml
- 在沙箱环境获取测试账号,以及付钱的账号
- 公钥私钥的生成可以下面这个工具
- Controller层
- 模拟付款
前言
- 今天给大家分享一下如何接入支付宝支付,尽管不一定用得到,毕竟稍大点的公司都不会让一个普通员工写财务模块,但万一你去的是小公司呢?哈哈,开个玩笑
- 这篇博客会把接入支付宝的步骤列举出来,看不懂的可以问我或者百度
前序步骤
- 到支付宝开放平台注册一个账号
- 去文档中心那里找到电脑网站支付文档,点开直接看快速接入
接入
pom.xml
- 点击图中链接即可进去看到maven依赖的链接,进去复制就行了
- 我以前用的依赖
19年11月使用的依赖
<!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java -->
<dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>3.7.110.ALL</version>
</dependency>
在沙箱环境获取测试账号,以及付钱的账号
- 后面controller需要填的一些信息和扫码支付的测试账号都在图片里面
公钥私钥的生成可以下面这个工具
- 链接:https://pan.baidu.com/s/1GNB1V3-cUNTAlvHKl0_x8w
提取码:2dqo - 也可以自己在文档中心下载
Controller层
- 做完上面那些步骤后就要在自己的项目的Controller层写代码了
- 下面这个controller都是直接从接入文档复制下来的,然后把我项目的一些信息和公钥那些填进去
- 不懂的问我或者看接入文档,接入文档很详细,比微信好多了
@RequestMapping(value = "/pay")public void pay(HttpServletResponse httpResponse, String oid) throws Exception {// 1.获得初始化的AlipayClientAlipayClient alipayClient = new DefaultAlipayClient(// 支付接口url//https://openapi.alipaydev.com/gateway.do"https://openapi.alipaydev.com/gateway.do",// APPI"2016100656227",// 商家的私钥"MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCuRzePWKineX1AKR5780URiwxC3ObTQJfBtSCsQxLs+xmYPQS0YBQX/eIGkKB14tPXrVt8zvssNkcN7GaaX82b3CvOX0azZHL9lZAyDjPUkhlVp0SnyP2pO75EiMw+Ldy8pDPyzTcCERaTbZWn829JsW1urR/6zUk7waAb7QTB3G2RABaH7jNfihVdP1hfseKmZCuvSaqWBsd18q6YRzedrVOOTHFxEO0RjXk+Q/3HnI+jj9FBM1GUlsLlG7ok/GZCoilSJFl7D7M90qo1YRqKcranT+3M1IqETPWMNUSrvT/potAg+KG65t9/mQr7sE2RfBd/Pq1P/Ck/R99dalcJAgMBAAECggEAHSnvwz4r4vKyogT/g/B+s2PYZmv++IULoC/GSu1igmO2scIsQl79ndIve7fCElgl6Saqc6VTZN+kXlEcDmNPzfA3KG7LLwP1NjhMDARSahUUxj+afpVk1WgY+/EEdLdKBAtaYhwzQ1ZGt98TtypGikd1r5qrClZGFgjd2S59qE8KgKVpTrjB7KX25dqVWnpsgkU6EDpRowMH5x7qgyznfB0BVupCF88JFJES83vDdGkcXqYpkJcP7jKQ5bk4gQD0XzXjymMbQxD4qmWEUwOjvEt3+DioRcCzYwdJFMelpZXuncXo+gXG8MB22WVE4Co5ANScS19Hu/kN6qwkUT8sTQKBgQDwfZaXz8nrzSK2DNDFRjcPH+HxsxC9o79sC+3zvkG1jgAdluLIAvZAwR3yThxTF232rpubwNUKAUNhZoD9fPLAQ2emOYpccVYq5bnsnNkU067EcW7G4NcBogySxG6jB/OZUN5Ri6YXI3yLeFsH8D3VadMvSIJalO05WEVkH4nHRwKBgQC5hHyFOpRbPYg55mXc6Gsj5tO7SyKi6zaxPe2hDka2WT3U+qqxzv85gB8NcwfE4jIGrwKBgEHx1lGFgTbtqH7sZ0kfVPZuFtV839MJyWc3nECj0n7/Oft7HzIVYqQN5vvg6SpgKlBBaIKmuwAdXa4ZJ+obWTsZ3sIEgxz+cO2uZaqyv3k++CAvaTDwJ7QG0WO7Cm4WnPznyHWhrEH16gJWS6/wVFSl4pQtSp5g9gq/1ThWHFoBAoGBANK6OAuVKKdRzB+NcUe6jwXsxHhThA9alhvq2HRFD6QLKgYpgQ/mbGVkgDoFL8a7Adjrl8HojdfkS8up7O+SPW6lo0aCVLfjbgS86tBV0ZxrtLP5RG0IfpayH+N6HgMiEz1HR5qWGPC9rCUGvtgZqfwNNQ5qmOFeJM4PKRx6QP4o",// 格式化编码"JSON",// 编码格式"utf-8",// 支付宝的公钥(在沙箱环境中可以获取)"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC+n7jVK2EtqhtynNGDxdFVYrwT8jP2gu3VsRu7CSfdsAfuDTrwmeuKeaQCBQ19gSAslwTzfip8ebIsiA6jnhRrpNbd+c3FxBxHR6tB6pG2tvBPB6EtQAStRTjPWkiTF1laTbcynuKsiW8X4dgX92PxPfW/Fx8bHgDgxrEBhrURUtZHuQh6VBdUyLHAnpy2DU5K1gw3s8anGoOMnc4tFsXW4yDEZQrspxbhtLiU7tWc4fvd4GEQ7Ye7OoPIWtUZq1iyra8TMtT2KIhyYRqj+1K21HyMsJkmf0cvwIDAQAB",// 签名的算法"RSA2");// 2.创建API对应的requestAlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();alipayRequest.setReturnUrl("http://localhost:8081/"); // 用户支付完比后跳转到页面,同步// 用户支付成功异步通知的请求alipayRequest.setNotifyUrl("http://8srwgj.natappfree.cc/updateOrder");//在公共参数中设置回跳和通知地址Order order = orderService.getOrderById(oid);// 订单的信息都是封装到下面的alipayRequest.setBizContent("{" +" \"out_trade_no\":" + oid + "," +" \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," +" \"total_amount\":" + order.getTotalPrice() + "," +" \"subject\":\"Iphone6 16G\"," +" \"body\":\"Iphone6 16G\"," +" \"passback_params\":\"merchantBizType%3d3C%26merchantBizNo%3d2016010101111\"," +" \"extend_params\":{" +" \"sys_service_provider_id\":\"2088511833207846\"" +" }" +" }");//填充业务参数String form = "";try {form = alipayClient.pageExecute(alipayRequest).getBody(); //调用SDK生成表单} catch (AlipayApiException e) {e.printStackTrace();}httpResponse.setContentType("text/html;charset=" + "utf-8");httpResponse.getWriter().write(form);//直接将完整的表单html输出到页面httpResponse.getWriter().flush();httpResponse.getWriter().close();}
- 两个链接要注意
- alipayRequest.setReturnUrl(“http://localhost:8081/”);// 用户支付完比后跳转到页面,同步,是浏览器发的所以可以使用localhost
// 用户支付成功异步通知的请求
alipayRequest.setNotifyUrl(“http://w5g9y4.natappfree.cc/updateOrder”);//在公共参数中设置回跳和通知地址 - 两个链接都是支付宝跳转的,第一个链接是支付成功后最终跳转到哪个页面,并且是同步的,你可以指定你的首页或支付成功页面,第二个链接是支付成功后跳转到第一个链接之前发的一个异步请求,这个请求可以发到你的想要跳转的controller里面做一些操作,如修改订单的未支付状态成已支付状态
模拟付款
- 网页版付款
- 也可以点击图片中的链接下载一个手机模拟的支付宝app付款
2021-02-11-JavaWeb网站接入支付宝支付相关推荐
- 网站接入支付宝支付之扫码支付
接入支付宝支付需要在支付宝开发平台创建应用获取appid,创建后需要审核,所以我们用支付宝提提供的沙箱环境开发测试. 首先登录支付宝开放平台,在开发者中心选择研发服务->沙箱环境->沙箱应 ...
- 电脑网站(手机网站)支付宝支付的配置信息(appid、商户私钥、支付宝公钥)
需求:想在网站接入支付宝支付.现在的网站基本分为PC端和手机端. 明确工作目标:appid.商户私钥.支付宝公钥以及回调地址. 电脑PC端支付宝支付获取配置信息步骤如下: 1.登录支付宝开放平台 ...
- 如何获取电脑网站(手机网站)支付宝支付的配置信息(appid、商户私钥、支付宝公钥)
需求:想在网站接入支付宝支付.现在的网站基本分为PC端和手机端. 明确工作目标:appid.商户私钥.支付宝公钥以及回调地址. 电脑PC端支付宝支付获取配置信息步骤如下: 1.登录支付宝开放平台 ...
- H5网站接入支付宝的支付接口
写本文章的目的是为了记录工作中遇到的问题,方便以后遇到可以迅速解决问题 H5手机网站接入支付宝的支付接口,推荐使用支付宝提供的SDK来快速开发 我使用的是SDK开发 引用命名空间 using Aop. ...
- 2021年PC电脑网站接入微信登陆支付精讲--1小时自已就可动手接入功能,--所有流程一目了然
2021年了,你还要疲于拼命吗,2001年初,遇到BUG就是躲,放下,去吃最好吃的,吃好喝好,睡一觉,再来解决, 现在是喜欢上BUG了,出现BUG,就发自内心的想搞清楚,是什么源因导致的,呵呵呵 PC ...
- SpringBoot 接入支付宝支付-证书模式
SpringBoot 接入支付宝支付-证书模式 满足一下条件 1.注册支付宝商户,实名认证,获取APPID 2.申请支付宝公钥证书 3.有些复杂具体还是按照官方引导进行操作 产品大全 https:// ...
- Java接入支付宝支付超级详细教程——从入门到精通
Java接入支付宝支付教程 源码下载 源码获取:点击获取源码 本文介绍了"二维码付款"的代码.其他支付方式的代码都在源码中. 一.创建应用 1.登录支付宝开放平台 支付宝开放平 ...
- Java接入支付宝支付教程
Java接入支付宝支付教程 一.创建应用 1.登录支付宝开放平台 支付宝开放平台网址:https://open.alipay.com/platform/developerIndex.htm 2.创建一 ...
- Android 接入支付宝支付实现
接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址, ...
最新文章
- Java学习总结:58(Collections工具类)
- Python使用matplotlib可视化绘制并通过Tkinter生成按钮将可视化结果导出为pdf文件
- python项目设计-Python:实际项目中抽象出的小项目设计
- android服务的启动过程,Android Service的启动过程(上)
- 使用google colab运行RNN网络代码报告错误ValueError: Object arrays cannot be loaded when allow_pickle=False
- docker Harbor2.3.4 http 搭建镜像仓库
- 关于c++中运算符的总结
- android sqlite 保存图片,android-如何将图像在Sqlite数据库中另存为blob?
- c语言有趣小程序,c语言小程序代码大全(9个经典的C语言小程序)
- 读《About Face 4 交互设计精髓》20
- 《凤凰项目》读书笔记(一)
- Spring Security的工作原理
- MEMORY系列之“DDR概述”
- sipp脚本撰写(二)
- Kotlin中单利常用的五种写法
- 攻防世界-MISC-练习区12题解
- sprintf_s() 、sprintf()和printf()区别和用法
- Python startswith endswith
- struct class
- 右键栏添加管理员获取所有权