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网站接入支付宝支付相关推荐

  1. 网站接入支付宝支付之扫码支付

    接入支付宝支付需要在支付宝开发平台创建应用获取appid,创建后需要审核,所以我们用支付宝提提供的沙箱环境开发测试. 首先登录支付宝开放平台,在开发者中心选择研发服务->沙箱环境->沙箱应 ...

  2. 电脑网站(手机网站)支付宝支付的配置信息(appid、商户私钥、支付宝公钥)

    需求:想在网站接入支付宝支付.现在的网站基本分为PC端和手机端. 明确工作目标:appid.商户私钥.支付宝公钥以及回调地址. 电脑PC端支付宝支付获取配置信息步骤如下: 1.登录支付宝开放平台    ...

  3. 如何获取电脑网站(手机网站)支付宝支付的配置信息(appid、商户私钥、支付宝公钥)

    需求:想在网站接入支付宝支付.现在的网站基本分为PC端和手机端. 明确工作目标:appid.商户私钥.支付宝公钥以及回调地址. 电脑PC端支付宝支付获取配置信息步骤如下: 1.登录支付宝开放平台    ...

  4. H5网站接入支付宝的支付接口

    写本文章的目的是为了记录工作中遇到的问题,方便以后遇到可以迅速解决问题 H5手机网站接入支付宝的支付接口,推荐使用支付宝提供的SDK来快速开发 我使用的是SDK开发 引用命名空间 using Aop. ...

  5. 2021年PC电脑网站接入微信登陆支付精讲--1小时自已就可动手接入功能,--所有流程一目了然

    2021年了,你还要疲于拼命吗,2001年初,遇到BUG就是躲,放下,去吃最好吃的,吃好喝好,睡一觉,再来解决, 现在是喜欢上BUG了,出现BUG,就发自内心的想搞清楚,是什么源因导致的,呵呵呵 PC ...

  6. SpringBoot 接入支付宝支付-证书模式

    SpringBoot 接入支付宝支付-证书模式 满足一下条件 1.注册支付宝商户,实名认证,获取APPID 2.申请支付宝公钥证书 3.有些复杂具体还是按照官方引导进行操作 产品大全 https:// ...

  7. Java接入支付宝支付超级详细教程——从入门到精通

    ​ Java接入支付宝支付教程 源码下载 源码获取:点击获取源码 本文介绍了"二维码付款"的代码.其他支付方式的代码都在源码中. 一.创建应用 1.登录支付宝开放平台 支付宝开放平 ...

  8. Java接入支付宝支付教程

    Java接入支付宝支付教程 一.创建应用 1.登录支付宝开放平台 支付宝开放平台网址:https://open.alipay.com/platform/developerIndex.htm 2.创建一 ...

  9. Android 接入支付宝支付实现

    接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址, ...

最新文章

  1. Java学习总结:58(Collections工具类)
  2. Python使用matplotlib可视化绘制并通过Tkinter生成按钮将可视化结果导出为pdf文件
  3. python项目设计-Python:实际项目中抽象出的小项目设计
  4. android服务的启动过程,Android Service的启动过程(上)
  5. 使用google colab运行RNN网络代码报告错误ValueError: Object arrays cannot be loaded when allow_pickle=False
  6. docker Harbor2.3.4 http 搭建镜像仓库
  7. 关于c++中运算符的总结
  8. android sqlite 保存图片,android-如何将图像在Sqlite数据库中另存为blob?
  9. c语言有趣小程序,c语言小程序代码大全(9个经典的C语言小程序)
  10. 读《About Face 4 交互设计精髓》20
  11. 《凤凰项目》读书笔记(一)
  12. Spring Security的工作原理
  13. MEMORY系列之“DDR概述”
  14. sipp脚本撰写(二)
  15. Kotlin中单利常用的五种写法
  16. 攻防世界-MISC-练习区12题解
  17. sprintf_s() 、sprintf()和printf()区别和用法
  18. Python startswith endswith
  19. struct class
  20. 右键栏添加管理员获取所有权

热门文章

  1. Mysql报错1055
  2. Discuz手机视频模板 AIUI7.3.0 商业版
  3. Docker 容器的--restart参数
  4. 缺失值处理(Imputation)
  5. 复盘618:数字狂欢背后透露了哪些隐藏信号?
  6. Elasticsearch _reindex Alias使用
  7. PRN(20210421):Task-Free Continual Learning
  8. 在英文论文写作中,什么时候该用斜体?
  9. python分割图片数字_python实现图片中文字分割效果
  10. 2018年的最后一周,说些心里话