Java互联网支付系统源码,基于SpringBoot,含支付宝,微信,银联详细代码案例

news2024/11/28 12:30:00

spring-boot-pay

支付服务:支付宝,微信,银联详细 代码案例 (支付宝和微信支付测试均需要企业认证,如果没有企业推荐使用 [服务商模式] 申请开通个人商户 也可以测试
),项目启动前请仔细阅读 注意事项 :fa-hand-o-left: 。

完整代码下载地址:Java互联网支付系统源码

案例演示

支付管理后台演示地址:支付管理平台

你问我答

1)为什么会有这个一个项目?

因为平台有多个项目,每个项目都有支付模块,所以就单独出来了一个服务,这样就可以复用呗。

2)服务通过什么方式调用?

当然是 RPC 了,通过注册中心调用服务,技术栈 Zookeeper + Dubbo,这两个玩意都可以做集群。

3)使用 RPC 有什么好处?

一是安全啊,我们项目部署在私有云,注册中心一般不会对外开放,那就不存在 HTTP 接口所谓的鉴权了;
二是高效啊,毕竟 RPC 是基于四层协议的,相对来说的确会高那么一点点,这个大家可以自行测试,但是我觉得对于大部分公司,这个不重要。

4)这个项目可以拿来即用吗?

当然可以,只要只配置好相关参数,把接口类打个包,扔给消费者就是了,当然了,一些业务逻辑还是需要自己去实现的。

5)如何保证高可用?

那就部署多个服务,Dubbo 默认负载均衡策略是轮询,你也可以配置成其他策略,比如根据机器配置设置加权之类的。Zookeeper 也可以啊,保证 2N+1 台就是了。

以下所有支付Demo,测试通过,真实有效。

支付宝

扫码支付、电脑支付、WAP支付、APP支付服务端

微信

扫码支付(模式一二)、公众号H5支付、WAP支付

银联

电脑支付、WAP支付

开发环境

JDK1.8、Maven、IDEA、SpringBoot2.2.6、Dubbo、Nacos

启动说明

  • ~~ 配置Dubbo需要安装注册中心zookeeper(不过撸主已经在配置文件中为大家准备了公益注册中心): http://www.52itstyle.top/thread-19791-1-1.html ~~

  • ~~ 基础配置初始化类:com.itstyle.common.cinfig.InitPay~~

  • 最后想测试相关支付效果,请自行配置支付宝、微信以及银联相关账号以及证书

  • 启动并访问项目:http://localhost:8080/pay

  • 此案例只是实现了部分功能,其它功能大家按需根据自己的业务逻辑自行实现,最重要的下单和回调已经实现

支付文档

地址:http://localhost:8080/pay/swagger-ui.html

配置说明:https://blog.52itstyle.vip/archives/1473/

在这里插入图片描述

演示界面

部分功能完善中!!!

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

支付宝

签约功能列表:

在这里插入图片描述

  • 电脑支付:https://docs.open.alipay.com/270
  • 扫码支付:https://docs.open.alipay.com/194
  • 手机支付:https://docs.open.alipay.com/203
  • APP支付 : https://docs.open.alipay.com/54/106370/
  • 沙箱环境:https://docs.open.alipay.com/200/105311/
  • 支付宝公钥参数:https://openclub.alipay.com/read.php?tid=2190&fid=69
  • RSA(SHA1)升级为RSA(SHA256):https://opensupport.alipay.com/support/knowledge/20069/201602242782
  • 参数zfbinfo.properties
支付宝网关名、partnerId和appId
open_api_domain = https://openapi.alipay.com/gateway.do
mcloud_api_domain = http://mcloudmonitor.com/gateway.do
此处请填写你的PID
pid =XXXXXXXXXXXXXX
此处请填写你当面付的APPID 
appid =XXXXXXXXXXXXXX

RSA私钥、公钥和支付宝公钥
private_key = XXXXXXXXXXXXXX
public_key = XXXXXXXXXXXXXX
alipay_public_key = XXXXXXXXXXXXXX

当面付最大查询次数和查询间隔(毫秒)
max_query_retry = 5
query_duration = 5000

当面付最大撤销次数和撤销间隔(毫秒)
max_cancel_retry = 3
cancel_duration = 2000

交易保障线程第一次调度延迟和调度间隔(秒)
heartbeat_delay = 5
heartbeat_duration = 900

支付宝的SDK-alipay-sdk-java这里下载: https://docs.open.alipay.com/54/103419/

大家比较好奇的alipay-trade-sdk从这里下载的TradePayDemo项目中的额lib下面,不过是16年的,目前来说还是可以使用的: https://docs.open.alipay.com/54/104506/

微信

  • H5支付:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_1
  • 公众号支付:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1
  • 扫码支付模式一:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4
  • 扫码支付模式二:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5
  • 微信退款说明:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=4_3
  • 网络设置指引:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=23_2
  • HTTPS服务器配置:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=10_4
  • 参数wxinfo.properties
  • 微信网页授权部分,向微信申请测试号:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421137522
服务号的应用ID
APP_ID = XXXXXXXXXXXXXX
服务号的应用密钥
APP_SECRET = XXXXXXXXXXXXXX
服务号的配置token
TOKEN = XXXXXXXXXXXXXX
商户号
MCH_ID = XXXXXXXXXXXXXX
API密钥
API_KEY = XXXXXXXXXXXXXX
签名加密方式
SIGN_TYPE = MD5
微信支付证书名称
CERT_PATH = apiclient_cert.p12

银联

  • 开放平台:https://open.unionpay.com/
  • 商家中心:https://merchant.unionpay.com/join/
  • 测试账号:https://blog.52itstyle.vip/archives/326/
  • 证书问题(QA):https://open.unionpay.com/ajweb/help/faq/list?id=174&level=0&from=0

完整代码下载地址:Java互联网支付系统源码

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快速上手 BearPi-HM Micro 一个带显示屏的开发板

一、前言 为什么要写这篇文章呢? 华为官方给OpenHarmony分:南向开发 和 北向开发 北向开发:应用APP开发 南向开发:设备开发 带显示屏的设备,可以更好的使用可视化界面,能更直接的利用烧录到设备里面的代码。 例如:冰箱上面的小的显示屏,可以更好的操控和观察当前冰箱…

一个 web 开发者眼中的技术美术(TA—Technical Artist)

Techical Artist 的中文翻译是技术美术,相比于直译为技术艺术家,技术美术这个称谓让我感觉更加亲切,当然艺术家这个称谓也很好,很高级 :p 。在游戏行业里我们常常能听到美术这个职业,而技术美术,从字面意思…

微信公众号活动策划方案怎么写?看完你也可以直接套用

一场成功的活动策划可以给企业带来相当可观的用户流量和曝光,前提是你的这份公众号活动策划方案是可执行和有回报的! 毫不夸张的说,我们在写公众号活动策划方案之前,只要你搞清楚以下这几点,这个方案就可以说是成功了…

介绍一个MySQL参数检索工具

碰巧看到徐老师的这篇文章《MySQL的参数工具》,其中介绍了一个讲解MySQL不同版本参数的小工具,网站的作者是MySQL日本用户组的负责人Tomita。该网站能够提供不同版本MySQL的参数,包括不同版本之间的对比。当用户需要对MySQL进行升级、需要确认…

用javascript分类刷leetcode13.单调栈(图文视频讲解)

84. 柱状图中最大的矩形 (hard) 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入:heights [2,1,5,6,2,3] 输出:10 …

2022年总结与2023年展望

又是疫情的一年,所幸年尾的政策看来是要全面开放了,也算是一件好事了。但是明年会不会就要强制线下上课导致实习不方便,这也是个问题。 技术学习 确定了自己的方向是走C/CLinux后端开发方向,跟着课程学到了一个图床后端的项目&a…

前端页面插件集成-Markdown编辑器

页面插件集成-Markdown下载MarkDown的插件包引入css、js、Jquary文件定义一个textarea区域作为MarkDown的载体初始化Markdown编辑器最终效果下载MarkDown的插件包 下载地址如下: 下载传送门 点击Github下载,然后解压 解压之后将如下文件夹和 js 文件cop…

贷后联动管控指标与差异化案件的分配逻辑

在风控精细化运营的当下,贷后工作的开展,越来越需要精细化管理。如何做好相关的精细化管理工作,首先我们从这些贷后相关的名词如下开始熟悉: 贷后基本催收名词解释 Flow Rate 迁移率就是在贷后资产评估里最重要的报表了&#xf…

【C语言进阶】还说不会?一文带你全面掌握计算机预处理操作

目录 🍊前言🍊: 🍈一、宏与函数🍈: 1.宏与函数对比: 2.宏与函数的命名约定: 🍓二、预处理操作符🍓: 1.预处理操作符 " # "&#xff…

C语言学生成绩管理系统

程序示例精选 C语言学生成绩管理系统 如需安装运行环境或远程调试&#xff0c;见文章底部微信名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<C语言学生成绩管理系统>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 …

DFS算法-leetcode java题解

DFS算法-leetcode java题解 本文目录DFS算法-leetcode java题解leetcode 547. 省份数量leetcode 463. 岛屿的周长leetcode 200. 岛屿数量leetcode 130. 被围绕的区域leetcode 417. 太平洋大西洋水流问题leetcode 17. 电话号码的字母组合leetcode 22. 括号生成leetcode 39. 组合…

List 容器的接口使用、迭代器失效(仅erase)

目录 一、接口使用 ① 构造函数 ②迭代器 ③ 容量与元素修改 ④ remove ⑤remove_if ⑥ unique ⑦sort&#xff08;&#xff09; ⑧ merge() 二、对于迭代器失效问题 一、接口使用 ① 构造函数 void MyListTest1() {list<int> l1;list<int> l5(10, 5);vector…

〖产品思维训练白宝书 - 产品思维认知篇⑦〗- 聊一聊 产品经理 的工作内容与职责划分

大家好&#xff0c;我是 哈士奇 &#xff0c;一位工作了十年的"技术混子"&#xff0c; 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 &#x1f4ac; 人生格言&#xff1a;优于别人,并不高贵,真正的高贵应该是优于过去的自己。&#x1f4ac; &#x1f4e…

自定义类型【c语言】

前言&#xff1a; c语言提供了丰富的内置类型&#xff0c;但是在描述一些复杂对象的时候仍不能满足一定的功能&#xff0c;因此c语言为了支持我们能描述一些复杂对象给出了我们能自定义的一些类型&#xff0c;因此便有了自定义类型。 在之前我们已经初步对结构体进行相应的了解…

提升工作效率,领导都夸的开源数据可视化工具

echarts官网有很多好看的图例&#xff0c;怎么结合起来放到自己的项目中呢&#xff1f;比如这种酷酷的首页&#xff1a; 这种看起来美观又大方&#xff0c;自己要是能用上就好了。 其实这是可以的&#xff0c;echarts上有现成的图例和示例代码&#xff0c;咱们只要改改数据源就…

华为防火接与二层交换机对接配置VLAN上网设置

拓扑图 一、防火墙设置 1、G1/0/0接口设置IP&#xff0c;G1/0/1接口切换二层口设置VLAN&#xff0c;G1/0/0 桥接了本地无线网卡来模拟外网地址 <USG6000V1>sys [USG6000V1]sys FW1 [FW1]un in en# 设置外网IP [FW1]int g1/0/0 [FW1-GigabitEthernet1/0/0]ip addr 192.1…

ORB-SLAM2 --- LocalMapping::SearchInNeighbors函数

0.函数更新内容 仅对地图点进行融合。 1.函数作用 检查并融合当前关键帧与相邻帧&#xff08;两级相邻&#xff09;重复的地图点。 2.函数步骤 Step 1&#xff1a;获得当前关键帧在共视图中权重排名前nn的邻接关键帧 Step 2&#xff1a;存储一级相邻关键帧及其二级相邻关键帧 将…

Java变量的作用域:静态变量、全局变量和局部变量

变量的作用域规定了变量所能使用的范围&#xff0c;只有在作用域范围内变量才能被使用。根据变量声明地点的不同&#xff0c;变量的作用域也不同。根据作用域的不同&#xff0c;一般将变量分为不同的类型&#xff1a;成员变量和局部变量。下面对这几种变量进行详细说明。成员变…

代码随想录训练营第四十二天

1.背包问题 1.1 01背包 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 1.1.1 用动态规划的方法解决------二维dp数组01背包 ①确定dp…

学一下这个60秒的男人

程序员求职简历&#xff0c;项目经验怎么写&#xff1f;免费修改简历、提供模板并内部推荐今天想跟大家聊一下这个“60秒”的男人。10月21日&#xff0c;罗辑思维发文&#xff1a;《罗胖60秒&#xff1a;10年期满&#xff0c;今日告别》。10年前&#xff0c;罗振宇开始干一件事…