如何用postman验证微信支付V3普通商户的接口参数

     为了帮助商户开发者快速便捷的上手V3支付的接口参数设置格式,同时验证各个参数的可用性和正确性,微信支付发布了一个预支付的脚本,并将脚本部署到 Postman 云工作台 WeChat Pay Public Workspace。只需要将集合《微信支付 APIv3》 fork 到自己的工作台,就可以在 Postman 上轻松地构造并发送微信支付 APIv3 请求了。

     但是这个脚本只支持普通商户,不支持服务商,如果要进行服务商接口参数的验证,需要对脚本进行修改.将在另外一篇文章《如何用postman验证微信支付V3普通商户的接口参数》中介绍

前置条件

  • Postman,一款业界知名的 API 构建和使用平台。建议注册一个账户,便于使用它各种功能。
  • 成为微信支付商户。
  • 商户 API 私钥:商户申请商户API证书时,会生成商户私钥,并保存在本地证书文件夹的文件 apiclient_key.pem 中。

快速开始

步骤1:Fork 方式导入脚本

点击 Collection Web View | Postman进入向导,如下图所示。

点击 Fork Collection 进入下一步,填入标签 Fork Label 并选择目的工作台 Workspace。一般情况下,导入个人工作台 My Workspace 即可。

点击 Fork Collection 完成导入。在你指定的 workspace 中可以看到《微信支付 APIv3》了。

步骤2:配置 Environment

环境(Environment) 是一组变量 (Varibles) 的集合。 脚本从环境中读取变量,用来计算请求的签名。

你可以从《微信支付 APIv3》提供的 商户参数模版 中 fork 一个空环境到自己的工作台。

接下来,在你工作台的 Enviroments 中找到新建的环境,点击 Add a new varialbe 添加新的变量:

  • mchid:必填,商户号。
  • merchant_serial_no:必填,商户 API 证书序列号。
  • apiclient_key.pem:必填,PEM 格式的商户 API 私钥。

Warning 为了安全,请仔细阅读安全注意事项。

一组常见配置如下图所示。

步骤3:发送请求

Note 我们建议,使用桌面版 Postman app 发送请求,速度更快,体验更好!

现在回到工作台,进入《微信支付 APIv3》集合,选择你要发送的请求。

然后,填入请求参数,按照注释修改 Body 中的参数。

最后,选择你之前配置的 Environment,再点击地址栏右侧的Send按钮,发送请求吧。

实现原理

Pre-Request Script 是一段 Javascript 脚本。Postman 在请求发送之前,执行这段脚本。脚本做了以下操作:

  1. 加载依赖库
  2. 读取 Environment 中的商户参数变量
  3. 根据请求的方法、URL、参数、Body 等信息,构造签名串,并计算请求签名
  4. 设置请求头 Authorization

Note 有关 Postman 脚本的更多信息,请参考 Scripting in Postman。

参数变量

变量名是否必填描述备注
mchid商户号
merchant_serial_no商户 API 证书的证书序列号
apiclient_key.pemPEM 格式的商户 API 私钥
openid用户的 OpenID,测试请求中的 {{openid}}
appid公众账号或者小程序的 AppID
shangmi值为 true 时使用商密签名默认值为空,即使用 RSA 签名
pubkey.pem国密签名时必填PEM 格式的商户 API 公钥如果私钥 PEM 中包含公钥,该变量可不填
server_url服务器地址默认设置为 https://api.mch.weixin.qq.com

依赖库

脚本直接使用了:

  • forge.min.js,forge 的 PKI、RSA 和 ASN.1。
  • sm2.js,腾讯国密库 TencentSM-javascript 的 SM2 签名。

为了避免每次请求都下载依赖库,两个库以源代码的方式存储在 Collection Variables。这大大减少了使用网页版 Postman 发送请求时的耗时。

安全注意事项

商户 API 私钥是非常敏感的信息。使用此代码时,应记住以下几点:

  • 将配置了私钥的工作台(workspace)的可见性(Visibility)设置为私有 Personal 或者 Private不要设置为公开 Public
  • 私钥的变量类型设置为 secret。变量值会以掩码的形式显示在屏幕上。
  • 私钥的变量值设置在 Current ValueCurrent Value 仅保存在本地 Session,不会被发送至 Postman 的服务器。
  • 如果使用来自其他人的 Postman 脚本,请检查依赖库、变量和脚本,确保没有被修改,避免被植入不安全代码。

Note 有关 Postman 的安全机制,请参考 Postman Security。

如何发起国密请求

使用 国密-商户参数模版,在环境变量中设置:

  • shangmi:值为 true
  • mchid:必填,商户号。
  • merchant_serial_no:必填,商户 API 证书序列号。
  • apiclient_key.pem:必填,PEM 格式的商户 API 私钥。
  • pubkey.pem:必填,PEM 格式的商户 API 国密公钥。

这样,脚本会使用国密 SM2 计算签名,发送国密请求了。

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python拆分九位数:一种快速高效的处理方法

Python拆分九位数:一种快速高效的处理方法 介绍 Python是一种广泛应用于各种领域的高级编程语言,它的简单易用性、灵活性和庞大的库使其成为许多程序员的首选。在实际应用中,我们常常会遇到需要对较大数字进行处理的情况,而如何…

chatgpt赋能python:Python小数点位数:了解Python中的浮点精度问题

Python 小数点位数:了解 Python 中的浮点精度问题 Python 作为一门常用的编程语言,使用广泛,涉及到的应用场景也越来越多。但是,在实际使用过程中,我们经常会遇到一些浮点数精度问题。本文将介绍 Python 中浮点数的相…

解密大模型与文心一言

近日,百度集团副总裁袁佛玉受邀出席数字纵深论坛并进行“解密大模型与文心一言“主题分享。 数字纵深论坛由北京大学光华管理学院数字教育中心主办,专注于分享科技前沿与商业洞见。 以下为分享精华回顾: 大家都能感受到,ChatGPT和…

chatgpt赋能Python-python3_7如何下载

Python3.7如何下载?详细步骤分享! Python是一门当今最热门、最常用、最易学的编程语言之一,且拥有庞大的社区和强大的库支持。在这篇文章中,我们将会详细介绍如何下载Python3.7版本,让大家能够轻松上手Python编程。 …

【历史上的今天】7 月 19 日:IMAP 协议之父出生;Project Kotlin 公开亮相;CT 成像实现新突破

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 7 月 19 日,在 2010 年的今天,亚马逊发布了一份新闻稿,提到它现在销售的 Kindle 书籍比精装书还多。亚马逊公司旗下 Lab126…

摆平Win2008与VPC2007的诡异冲突

摆平 Win2008 与 VPC2007 的冲突 话说上个周末,参加完51CTO组织的虚拟化技术沙龙,俺和老方,老胡,小废物等人杀奔西直门的红顶老汉烧鸡公,席间觥筹交错,一顿狂磋。说句题外话,这个鸡的味道真是不…

NeurIPS 2020 | 基于协同集成与分发的协同显著性目标检测网络

论文题目:CoADNet: Collaborative Aggregation-and-Distribution Networks for Co-Salient Object Detection 论文链接:https://proceedings.neurips.cc/paper/2020/file/4dc3ed26a29c9c3df3ec373524377a5b-Paper.pdf 论文代码:https://githu…

别再对 Istio 一脸懵了,万众期待的第一本 Istio 著作现!已!上!市

过去一年里,Service Mesh作为新兴的微服务架构,在国内大热。其被誉为是下一代微服务,是云原生技术栈的关键组件之一。而Istio作为第2代Service Mesh的头牌, 在 GitHub 上疯狂收获近 15000 颗星,成为 2018 年最热门的项…

每周送新书:Android软件安全、深入浅出Istio、软件架构设计

每周送新书:Android软件安全、深入浅出Istio、软件架构设计 本栏目每周会给大家推荐三个不同领域的新书,每周关注,总有适合你的好书。 每周送新书活动规则: 在文末评论里回复你对本周推荐图书或相关技术的看法,再或者…

(附源码)基于spring boot 青少年公共卫生教育平台的设计与实现 毕业设计 643214

Springboot青少年公共卫生教育平台 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对青少年公…

IT服务管理的指挥与智慧

IT服务管理的指挥与智慧 在当今动荡不宁、不断变化的 IT 环境中,IT服务管理(ITSM)的重要性不言而喻,它通过保证关键业务系统和服务的可用性和可靠性,为整个企业提供至关重要的支持。随着技术变得越来越复杂&#xff0c…

php比特教务选排课系统的设计与实现毕业设计源码301826

比特教务选排课系统的设计与实现 摘 要 随着人类向信息社会的不断迈进,风起云涌的信息时代正掀起一次新的革命,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的比特教务选排课系统来管理选课信…

Springboot爱护大自然的设计与实现 毕业设计-附源码231643

爱护大自然 摘 要 热爱大自然,保护自然环境,是人们处理与自然关系过程中应当遵守的基本行为准则。第一,热爱大自然,是人类社会赖以生存和发展的物质条件。自然界一切对人类社会生活有益的存在物,如山川草木、飞禽走兽、…

python面向对象案例步骤分析_Python面向对象之继承原理与用法案例分析

本文实例讲述了Python面向对象之继承原理与用法。分享给大家供大家参考,具体如下: 目标 单继承 多继承 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 继承 实现代码的重用,相同的代码不需要重复的编写 多态 不同…

中国多媒体与网络教学学报杂志中国多媒体与网络教学学报杂志社中国多媒体与网络教学学报编辑部2022年第6期目录

中国多媒体与网络教学学报杂志中国多媒体与网络教学学报杂志社中国多媒体与网络教学学报编辑部2022年第6期目录 实践研究_案例精选 找春天 左文慧; 1-515 长方体和正方体的认识 史颂; 6-912 测定空气中氧气的含量 彭洪;肖启友; 10-12 基于单元要素 设计智趣活动…

ServiceComb WorkShop 回顾与干货

ServiceComb开源项目 在 北京国家会议中心 LC3(LinuxCon ContainerCon CloudOpen) 大会上如期首发,展台火热,WorkShop交流氛围活跃,被迫延长30分钟结束,那么让我们在这个高规格大会尾声之际好好回顾一把。…

【合集】SAP 成都研究院开发工程师们精彩纷呈的工作和生活片段

SAP 再次荣获卓越职场颁发的「2020年大中华区最佳职场」奖项,也因为连续五年跻身这一榜单,SAP 由此摘取了「最佳职场」皇冠上的宝石 —— 获得了「传奇企业」称号,成为在大中华区首批获此殊荣的公司之一。 作为在 SAP 研究院这个传奇企业内工…

基于MATLAB的静态手势分割与识别研究

一、课题介绍 本课题设计了手势的分割与识别程序系统,结合 MATLAB软件对采集的目标图像进行识别。结合基于运动的手势分割与基于肤色的手势分割2种手势分 割方法,提取运动肤色区域,通过计算此区域的均值与方差矩阵更新高斯模型,设…

篮球 / 欧锦标赛最亮眼的三位球星

本季的欧洲杯篮球比赛成为另类的NBA较劲的场合,昨天字母哥、东契奇、约基奇都有不错的表现,其中字母哥的表现最为出色,希腊队战乌克兰时他单场豪取41分,帮助希腊以99-79击败乌克兰。 本次篮球欧洲杯字母哥莫过于视最闪亮之一&…

《钱进球场》:球场争锋·棒球1号位

动画《钱进球场》改编自森高夕次原作、足立刑事著同名体育漫画,于2017年3月宣布动画化 ,由STUDIO DEEN负责动画制作,于2018年4月6日起播出。动画第二期于2018年10月5日开始播出。全24话。 中文名 钱进球场 原版名称 グラゼニ 动画制作 Stud…