在线支付系列【10】微信支付接入前准备

news2024/11/15 10:52:08

有道无术,术尚可求,有术无道,止于术。

文章目录

    • 前言
    • 1. 获取基本参数
      • 商户号(mchid)
      • 应用ID(appid)
      • 绑定商户号和应用ID
    • 2. 配置API v3密钥
    • 3. 下载并配置商户API证书
      • 3.1 简介
      • 3.2 生成证书串
      • 3.3 获得商户API证书文件
    • 4. 获取微信平台证书

前言

在之前,我们申请了商户号、公众号,可以获取到一些基本参数,另外接入微信支付时,还需要配置一些秘钥、证书。

接下来,会汇总讲解各种接入之前需要的准备工作。

1. 获取基本参数

商户号(mchid)

首先要参考微信支付之注册商户号注册商户。

进入微信支付平台,扫码登录。

具体查阅目录为 【账户中心-> 商户信息-> 商户号】
在这里插入图片描述

应用ID(appid)

公众号申请成功后,登录公众号平台即可获取对应的APPID

进入微信公众号平台扫码登录。

具体查阅目录为 【开发-> 基本配置-> 公众号开发信息】。
在这里插入图片描述

绑定商户号和应用ID

APPIDmchid全部申请完毕后,需要建立两者之间的绑定关系。

直连模式下,APPIDmchid之间的关系为多对多,即一个APPID下可以绑定多个mchid,而一个mchid也可以绑定多个APPID

在这里插入图片描述

登录微信商户平台,进入【产品中心-> APPID授权管理】目录,输入appid点击确定。
在这里插入图片描述
前往公众平台,进入【微信支付-> 商户号管理】目录,查看相关商户号信息,确认授权申请即可。

2. 配置API v3密钥

首先我们看下微信支付API v3版本的一些改进

为了在保证支付安全的前提下,带给商户简单、一致且易用的开发体验,微信推出了全新的微信支付API v3(V3版本接口)

相较于之前的微信支付API,主要区别是:

  • 遵循统一的REST的设计风格
  • 使用JSON作为数据交互的格式,不再使用XML
  • 使用基于非对称密钥的SHA256-RSA的数字签名算法,不再使用MD5HMAC-SHA256
  • 不再要求携带HTTPS客户端证书(仅需携带证书序列号)
  • 使用AES-256-GCM,对回调中的关键信息进行加密保护

基于以上说明本系列都是基于最新的v3版的支付API。如果使用的是v2版本需要申请API秘钥,v3版本则需要申请API v3密钥

为了保证安全性,微信支付在 回调通知平台证书下载接口中,对关键信息进行了AES-256-GCM加密。API v3密钥是加密时使用的对称密钥。商户需先在【商户平台】->【API安全】的页面设置该密钥,请求才能通过微信支付的签名校验。密钥的长度为32个字节。

APIv3密钥属于敏感信息,请妥善保管不要泄露,如果怀疑信息泄露,请重设密钥。

登录商户平台,进入【账户中心 => API安全 】目录,设置APIV3密钥。
在这里插入图片描述
在弹出窗口中点击已沟通
在这里插入图片描述
输入API密钥,内容为32位字符,包括数字及大小写字母。这里可以使用随机密码生成工具生成一个。
在这里插入图片描述
复制生成的字符,点击确认获取短信验证码
在这里插入图片描述

输入短信验证码,点击“确认”即设置成功。
在这里插入图片描述

3. 下载并配置商户API证书

3.1 简介

API证书是指由商户申请的,用来证实商户身份的证书。API证书由证书授权机构Certificate Authority(简称CA)颁发。证书中包含商户的商户号、公司名称、公钥等信息。请妥善保管API证书文件,防止泄露。

使用场景

  • APIv2 中,调用微信支付安全级别较高的接口(如:退款、企业红包、企业付款)

  • APIv3 中,调用微信支付所有接口

3.2 生成证书串

商户可自行生成证书请求串,或下载微信支付证书工具生成证书请求串,并将证书请求串提交到商户平台后才能获得商户API证书文件,私钥文件请注意安全保存。

首先登录(需要商户号的超级管理员才能操作)【微信支付商户平台 - 账户中心 - 账户设置 - API安全 - 申请API证书】申请证书,确定后请勿关闭页面。
在这里插入图片描述
在弹出窗口中点击“确定”。
在这里插入图片描述
在弹出窗口内点击“下载证书工具”按钮下载证书工具。

也可通过以下链接下载证书工具:

  • windows版本

  • mac版本
    在这里插入图片描述
    下载完成后双击WXCertUtil.exe文件安装,安装后输入保存路径,点击申请证书
    在这里插入图片描述
    在【证书工具】,填写商户号信息(商户号、商户名称),点击下一步。
    在这里插入图片描述
    在【证书工具】,点击复制证书请求串
    在这里插入图片描述
    在【商户平台】,粘贴证书请求串
    在这里插入图片描述
    输入操作密码,安全验证后生成证书串
    在这里插入图片描述

3.3 获得商户API证书文件

复制证书串
在这里插入图片描述
在【证书工具】,粘贴证书串,点击下一步。
在这里插入图片描述
申请证书成功。
在这里插入图片描述
点击查看证书文件夹,查看已生成的证书文件。解压后如下所示:
在这里插入图片描述

4. 获取微信平台证书

微信支付平台证书是指由微信支付 负责申请的,包含微信支付平台标识、公钥信息的证书。商户可以使用平台证书中的公钥进行验签。不同的商户,对应的微信支付平台证书是不一样的。

平台证书会周期性更换。商户应定时通过API下载新的证书,不要依赖人工更新证书(后面使用代码实现)。

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

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

相关文章

卷积神经网络CNN :1.基础知识

​卷积神经网络是一种深度学习概念,专为处理图像而构建。机器学习是计算机从过去的经验中学习的概念。深度学习是机器学习的高级部分。CNN 旨在寻找视觉模式。 当我们人类看到图像时,我们看到物体、颜色等。我们在成长过程中学习这些东西,但计…

CRPS:贝叶斯机器学习模型的评分函数

连续分级概率评分(Continuous Ranked Probability Score, CRPS)或“连续概率排位分数”是一个函数或统计量,可以将分布预测与真实值进行比较。 机器学习工作流程的一个重要部分是模型评估。这个过程本身可以被认为是常识:将数据分…

【CLYZ集训】变量取值【网络流】

思路: 容易把答案转化为∑siwi∑ti(wx−wy)\sum{s_iw_i}\sum{t_i(w_x-w_y)}∑si​wi​∑ti​(wx​−wy​),然后我们设初始代价为−∑∣si∣wi-\sum{|s_i|w_i}−∑∣si​∣wi​,然后考虑建模。 如果Si大于0,则源点向i连一条流量为2…

【Java AWT 图形界面编程】FileDialog 对话框 ( 打开文件 | 保存文件 | 构造函数 | 获取文件路径 | 获取文件名称 | 代码示例 )

文章目录一、FileDialog 对话框1、构造函数2、获取文件路径3、获取文件名称二、FileDialog 对话框代码示例一、FileDialog 对话框 在开发时 , 经常遇到文件相关操作 , 如 : 选择文件 , 保存文件 等 , 在 AWT 中使用 FileDialog 文件对话框 实现上述功能 ; 1、构造函数 FileDial…

量子计算初创公司Oxford Ionics完成3000万英镑A轮融资

(图片来源:网络)未来,量子计算机会解决世界上最大的超级计算机无法解决的问题。然而,大规模制造量子计算机仍然是一个巨大的挑战。英国量子计算初创公司Oxford IonicsA轮融资获得的3000万英镑(约合人民币2.…

Java集合(六)Set接口和常用方法

Set接口基本介绍: (1)无序(添加和取出的顺序不一致),没有索引 (2)不允许重复元素,所以最多包含一个null (3)JDK API中Set接口的实现类有: 其中set接口的已…

2023年,最新最权威的上海Java培训机构排行榜出炉!

2022也许你的很多学习和工作计划都被打乱,但是过去的2022不管多艰难,多难熬。都已经成为过去式。2023悄然而至,新的一年,你我都该有新气象新动力,学习什么时候开始都不晚,想跨行从事软件开发、IT行业的小伙…

跳槽至今0 offer的大冤种,问题到底出在哪儿?

众所周知,2022年市场很难!看着企业们纷纷裁员,甚至连内推这个后门都走不通!哪怕有面试,都是屡屡碰壁,你想清楚问题出在哪了吗?😭“求职不得,夜不能寐;三更半夜…

C++基础——C++ 指针

C基础——C 指针C 指针什么是指针?C 中使用指针C 指针详解C Null 指针C 指针的算术运算递增一个指针递减一个指针指针的比较C 指针 vs 数组C 指向指针的指针(多级间接寻址)C 传递指针给函数C 指针 学习 C 的指针既简单又有趣。通过指针&…

Python语言基础学习之Python基础之列表介绍和循环遍历

今天给大家分享一些Python基础 (列表基础和循环遍历介绍),一起来看看吧~ 一、列表介绍 想一想: 字符串可以用来存储一串信息,那么想一想,怎样存储所有同学的名字呢?定义100个变量,每个变量存放一个学生的姓名可行吗…

LinkedList VS ArrayList~

ArrayList VS LinkedList: One: ArrayList:基于数组,需要连续内存LinkedList:基于双向链表,无需连续内存Two: ArrayList:随机访问快(指根据下标访问)LinkedList:随机访问慢(要沿着链表遍历)点击ArrayList的源码: 点击LinkedList的源码: Ar…

九龙证券|看好2-4月份汽车月度销量增速的逐月改善

机构指出,考虑到22年末购置税补助等方针到期,叠加春节假期消费需求的提早,估计年内乘用车销量绝对值及同比增速均于1月触底,后续方针影响、消费回暖等一期效果下,看好车市回暖,估计销量增速将于2-4月逐月回…

15.Set系列,可变参数、Collections

目录 一.Set系列 1.1 Set系列集合特点 1.2 Set集合实现类特点 1.3 HashSet 1.3.1 特点 1.3.2 优点 1.3.3 在理解原理之前要知道的几个概念。 1.3.4 底层原理 1.3.5 哈希表的形成过程/元素的存入过程(Jdk8的版本) 1.3.6 注意事项 1.4 linkedHa…

通用数字支付网络(UDPN)于达沃斯论坛期间正式发布

2023年1月19日,在瑞士达沃斯举行的世界经济论坛 (WEF) 会议期间,通用数字支付网络 (Universal Digital Payment Network, UDPN)正式对外发布。 近年来,全球各国央行数字货币(CBDC)得到了广泛的关注与长足的进步&#…

WebHooks

webhook 究竟是什么呢? Webhook是一个API概念,webhoo是一种web回调或者http的push API。Webhook作为一个轻量的事件处理应用,正变得越来越有用。 具体的说,webhook 是应用给其它应用提供实时信息的一种方式。信息一产生&#xf…

Js如何实现当网页超过一屏时导航菜单始终置顶-吸顶盒效果

前言我们平时在逛一些电商网站时,无论是首页还是详情页,通常会有一个导航菜单石红跟随着页面,无论是页面滚动到中间还是底部这是为了方便用户查看商品的各类信息或提交订单购物也就是吸顶盒效果,那这个效果是怎么实现的?原生Js如下是原生js// 初始化函数 function init() {// …

[Pytorch] CIFAR-10数据集的训练和模型优化

本篇文章借鉴了我的朋友Jc的报告,他是一个十分优秀的人。 本篇文章记录了第一次完整训练优化的过程 0 关于数据集 在CIFAR-10 dataset的介绍中,cifar-10数据集一共10类图片,每一类有6000张图片,加起来就是60000张图片&#xff0…

深度卷积对抗神经网络 基础 第五部分 Inception-v3 architecture GANs

深度卷积对抗神经网络 基础 第五部分 Inception-v3 architecture GANs 对抗神经网络能够产生不存在的图片,换脸或者生成一些艺术品,这些有趣和强大的对抗神经网络的能力不仅能够创造价值,还能够用来犯罪。With Great Power , Comes With Res…

3.1.1 类和对象

文章目录1.类2.对象3.类和对象的关系4.类的创建使用5.对象在内存中的存储过程6.对象创建过程分析1.类 java最基本的单位就是类,可以理解为类型类是一类事物的抽象可以理解为模板或者设计图纸 注意:类在现实世界并不存在,它只是一种对象的数据类型。例如乌鸦&#…

如何使用DevExpress WPF组件实现异步加载TreeList节点?建议收藏

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。在本文中,我…