一、微信支付产品介绍

1、付款码支付

用户展示微信钱包内的 “ 付款码 ” 给商家,商家扫描后直接完成支付,适用于线下面对面收银的场景。

2JSAPI支付

线下场所:商户展示一个支付二维码,用户使用微信扫描二维码后,输入需要支付的金额,完成支
付。
公众号场景:用户在微信内进入商家公众号,打开某个页面,选择某个产品,完成支付。
PC 网站场景:在网站中展示二维码,用户使用微信扫描二维码,输入需要支付的金额,完成支
付。
特点:用户在客户端输入支付金额

3、小程序支付

在微信小程序平台内实现支付的功能。

4Native支付

Native 支付是指商户展示支付二维码,用户再用微信 “ 扫一扫 ” 完成支付的模式。这种方式适用于 PC 网站。(本章重点介绍此功能接入)
特点:商家预先指定支付金额

5APP支付

商户通过在移动端独立的 APP 应用程序中集成微信支付模块,完成支付。

6、刷脸支付

用户在刷脸设备前通过摄像头刷脸、识别身份后进行的一种支付方式。

二、接入微信支付功能必备的必须条件

1、获取商户号(!!!必须是企业或者个体户)

微信商户平台: https://pay.weixin.qq.com/  
步骤:提交资料 => 签署协议 => 获取商户号

2、获取APPID

微信公众平台: https://mp.weixin.qq.com/
步骤:注册服务号 => 服务号认证 => 获取 APPID => 绑定商户号
不一定是服务号,已通过微信认证的服务号、政府或媒体类订阅号、小程序、企业微信、移动应用、网站应用都可以,还有微信小程序必须要企业营业执照认证。

3、获取APIv2秘钥

APIv2 版本的接口需要此秘钥
步骤:登录商户平台 => 选择 账户中心 => 安全中心 => API 安全 => 设置 API 密钥

4、获取APIv3秘钥

APIv3 版本的接口需要此秘钥
步骤:登录商户平台 => 选择 账户中心 => 安全中心 => API 安全 => 设置 APIv3 密钥
随机密码生成工具: https://suijimimashengcheng.bmcx.com/

5、申请商户API证书

APIv3 版本的所有接口都需要; APIv2 版本的高级接口需要(如:退款、企业红包、企业付款等)
步骤:登录商户平台 => 选择 账户中心 => 安全中心 => API 安全 => 申请 API 证书

6、获取微信平台证书

注意:以上所有API秘钥和证书需妥善保管防止泄露!

三、支付安全(证书/密钥/签名)

1、信息安全的基础 - 机密性

明文: 加密前的消息叫 “ 明文 ” ( plain text )
密文: 加密后的文本叫 “ 密文 ” ( cipher text )
密钥: 只有掌握特殊 “ 钥匙 ” 的人,才能对加密的文本进行解密,这里的 “ 钥匙 ” 就叫做 “ 密钥 ” (
key )
“密钥”就是一个字符串,度量单位是“位”(bit),比如,密钥长度是 128,就是 16 字节的二
进制串
加密: 实现机密性最常用的手段是 “ 加密 ” ( encrypt )
按照密钥的使用方式,加密可以分为两大类:对称加密和非对称加密。
解密: 使用密钥还原明文的过程叫 “ 解密 ” ( decrypt )
加密算法: 加密解密的操作过程就是 “ 加密算法 ”
所有的加密算法都是公开的,而算法使用的“密钥”则必须保密

2、对称加密和非对称加密

对称加密
  • 特点:只使用一个密钥,密钥必须保密,常用的有 AES算法
  • 优点:运算速度快
  • 缺点:秘钥需要信息交换的双方共享,一旦被窃取,消息会被破解,无法做到安全的密钥交
非对称加密
  • 特点:使用两个密钥:公钥和私钥,公钥可以任意分发而私钥保密,常用的有 RSA
  • 优点:黑客获取公钥无法破解密文,解决了密钥交换的问题
  • 缺点:运算速度非常慢
混合加密
  • 实际场景中把对称加密和非对称加密结合起来使用。

3、身份认证

公钥加密,私钥解密的作用是加密信息
私钥加密,公钥解密的作用是身份认证

4、摘要算法(Digest Algorithm

摘要算法就是我们常说的散列函数、哈希函数( Hash Function ),它能够把任意长度的数据 “ 压缩 ” 成固定长度、而且独一无二的“ 摘要 ” 字符串,就好像是给这段数据生成了一个数字 “ 指纹 ” 。
作用
保证信息的完整性
特性
  • 不可逆:只有算法,没有秘钥,只能加密,不能解密
  • 难题友好性:想要破解,只能暴力枚举
  • 发散性:只要对原文进行一点点改动,摘要就会发生剧烈变化
  • 抗碰撞性:原文不同,计算后的摘要也要不同
常见摘要算法
MD5 、 SHA1 、 SHA2 ( SHA224 、 SHA256 、 SHA384 )

5、数字签名

数字签名是使用私钥对摘要加密生成签名,需要由公钥将签名解密后进行验证,实现身份认证和不可否认。
签名和验证签名的流程

6、数字证书

数字证书解决 “ 公钥的信任 ” 问题,可以防止黑客伪造公钥。
不能直接分发公钥,公钥的分发必须使用数字证书,数字证书由 CA 颁发
https 协议中的数字证书:

7、微信APIv3证书

商户证书
商户 API 证书是指由商户申请的,包含商户的商户号、公司名称、公钥信息的证书。
微信支付平台证书是指由 微信支付 负责申请的,包含微信支付平台标识、公钥信息的证书。商户可以使用平台证书中的公钥进行验签。

8API密钥和APIv3密钥

都是对称加密需要使用的加密和解密密钥, 一定要保管好,不能泄露
APIv2 密钥对应 V2 版本的 API
APIv3 密钥对应 V3 版本的 API

四、在SpringBoot项目中导入微信支付功能

完整代码和详解请参考:https://gitee.com/BuLiangShuai01033/payment

SpringBoot整合微信支付(Native最详细)相关推荐

  1. SpringBoot整合微信支付开发在线教育视频网站(完整版)

    目录 ├─code.zip ├─第 1 章项目介绍和前期准备 │  ├─1-1 SpringBoot整合微信支付开发在线教育视频站点介绍.TS │  ├─1-2 中大型公司里面项目开发流程讲解.TS ...

  2. springboot整合微信支付

    讲解微信支付V3接口真实开发代码,非demo 使用微信支付需要开通微信支付商户号:微信支付 - 中国领先的第三方支付平台 | 微信支付提供安全快捷的支付方式 微信支付提供多种支付功能,包括[JSAPI ...

  3. 微信支付php详解 php,ThinkPHP框架整合微信支付之刷卡模式图文详解

    本文实例讲述了ThinkPHP框架整合微信支付之刷卡模式.分享给大家供大家参考,具体如下: 大家好,这篇文章是继微信支付之Native 扫码支付 模式二之后的微信支付系列教程第四篇:微信刷卡支付 本教 ...

  4. Springboot----项目整合微信支付(引入延迟队列实现订单过期取消以及商户主动查单)

    前言 目前更新的是Springboot项目整合微信支付系列的文章,可以在我的主页中找到该系列其他文章,这一系列的文章将会系统介绍如何在项目中引入微信支付的下单.关单.处理回调通知等功能.由于前面创作经 ...

  5. SpringBoot整合支付宝支付接口 详解 (有源文件)

    目录 1.简介与支付接口运行原理 2.基本配置说明 3.支付接口实现 4.整合后沙箱测试 1.简介与支付接口运行原理 简介: 现在与钱有关的项目都离不开支付,现在就来介绍一下如何对接支付宝接口.演示项 ...

  6. SpringBoot对接微信支付之JSAPI

    分享SpringBoot整合微信公众号支付项目,对接微信JSAPI支付类型遇到的问题和过程封装的工具类,目前已正常使用,有问题大家评论区互动哈,有需要源码的可以私信我. 1.创建SpringBoot项 ...

  7. java微信web支付开发_微信支付java开发详细第三方支付功能开发之支付宝web端支...

    这段时间把支付基本搞完了,因为做的过程中遇到许多问题,特地记录下来,同时方便其他java coder,废话少说,下面开始. 整体思路:在后台,根据参数创建支付宝客户端AlipayClient,发送参数 ...

  8. SpringBoot整合微信扫码登录

    SpringBoot整合微信扫码登录 准备工作 基本思路流程 搭建SpringBoot 引入依赖 加入配置文件 代码实现 工具类 controller层 结果 准备工作 1.登录官网了解到,学习者想本 ...

  9. 关于微店整合微信支付时出现的的各种问题的记录 php版

    由于公司项目的需要,需要在项目里整合微信支付,公司原有的项目中已有老版本的支付功能,在此不作讨论.我需要作的就是加入新版本的支付功能 让项目里可以支持新老两种版本的功能.在微信官方下载到了新版支付的p ...

最新文章

  1. chattr和lsattr命令
  2. InstallShield 2011中数字签名失败的问题
  3. ASP中事务处理资料收集
  4. centos 安装boost(caffe需要)
  5. echart 动画 饼图_echarts构建关系图,节点可收缩和展开,可添加点击事件
  6. 【报告分享】5G时代新型基础设施建设白皮书.pdf
  7. Tf-idf推导及理解
  8. 五行塔怎么吃第五个_朱元璋第五个儿子:被儿子举报造反,日常研究野菜怎么吃...
  9. WebView 简单使用方法
  10. libyuv 海思平台编译测试
  11. 图表排版设计html,网页的排版(表格篇上)
  12. 2022/12/11创建openai账号(chatgpt)
  13. Ubuntu16.04 (ROS)下通过CAN分析仪(USBCAN/CANalyst-II)调试无人车助力转向电机(1)
  14. sitemap 在线生成
  15. (三)GNSS定位中的定位系统和误差源
  16. Scratch基础(一):安装和了解软件
  17. Nexus的安装和使用
  18. 异常解决:在实体引用中, 实体名称必须紧跟在 ‘‘ 后面
  19. Kaggle(Gun Violence Data)—美国枪支暴力事件分析(1)和(2)
  20. 高德地图添加瓦片图层

热门文章

  1. python点击弹出悬浮框_“鼠标移入显示悬浮框”特效【转】
  2. 磨金石教育是不是正规机构?学习平面设计需要掌握哪些软件?
  3. xfire客户端调用服务端报错 XFireRuntimeException: Could not invoke service.. Server returned error code = 4ji
  4. 三星s9如何刷android p,三星Galaxy S9和S9 Plus获系统升级将更新相机夜间模式
  5. qbittorrent手机版怎么用_衡东手机流量卡怎么用
  6. 开工第二天,同事已经跑路了
  7. 阿里 VS AWS,谁能赢得上云战役
  8. 入门图形学:武器光波特效
  9. 视频教程-【孙伟】APP项目UI设计基础-工具图标设计视频教程-UI
  10. “寒冬”里拿出总股本2.1%激励员工 康旗股份是天真还是现实?