如何使用 Apifox 调试微信支付接口

如何使用 Apifox 调试微信支付接口

目前国内的产品如果需要应用支付场景,基本都需要开发人员将微信支付接口接入到产品中。所以在产品正式上线前,通常会有相关的调试验证,可以使用 Apifox 来便捷调试微信支付接口。

前期准备

在使用 Apifox 调试微信支付接口之前,你需要做好以下准备:

准备好就可以开始进入微信支付接口的调试之旅啦~

配置环境

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

要配置环境,你需要从 Github 上下载 微信支付 APIv3 脚本环境,如下图所示:

Apifox 调试微信支付接口

设置环境变量

接着,在你工作台的右上角选择环境变量,选择一个环境添加新的变量,这里选择测试环境来操作:

  • 前置URL:添加前置URL为 https://api.mch.weixin.qq.com
  • sm2js_code:必填,将下载的sm2.js的内容复制并粘贴到此;
  • forge_code:必填,将下载的forge.min.js的内容复制并粘贴到此;
  • mchid:必填,商户号;
  • merchant_serial_no:必填,商户 API 证书序列号;
  • apiclient_key.pem:必填,PEM 格式的商户 API 私钥;
Warning 为了安全,请仔细阅读安全注意事项

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

Apifox 调试微信支付接口

参数变量:

变量名是否必填描述备注
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

设置前置脚本

点击根目录,选择前置操作->添加前置操作->自定义脚本,将下载下来的script.js的内容复制后粘贴到此处。

Apifox 调试微信支付接口

然后,你需要在脚本里修改两处地方。

点击快捷键Ctrl+f,输入collectionVariables进行查找,collectionVariables共有两个,你需要将其替换成environment都替换之后即可保存,具体如下图所示:

Apifox 调试微信支付接口

发送请求

当环境变量和前置脚本都配置好后,即可新增相应的 微信支付API 接口,点击发送按钮,即可发出请求。

Apifox 调试微信支付接口

微信支付接口

如果你需要调试不同类型的商户支付接口,可以进入微信官方的云工作台 WeChat Pay Public Workspace,打开 WeChatPay APIv3 集合,展开选项后点击 Export,将 调试微信支付接口的脚本 下载到本地。

Apifox 调试微信支付接口

下载并保存 WeChatPay APIv3.postman_collection.json 文件至本地,将 JSON 文件导入到 Apifox 中,具体操作如下:

1、点击 Apifox 左侧列表上方的 + 按钮,并选择 导入

Apifox 调试微信支付接口

2、选择 Postman 类型的数据导入格式,选择本地的 WeChatPay APIv3.postman_collection.json,点击确认

Apifox 调试微信支付接口

你可以导入到新建的项目,也可以导入到已有的项目中,点击确定后,导入便完成。

你会发现在工作台的 根目录 下新增了几组请求:

Apifox 调试微信支付接口

安全注意事项

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

  • 将配置了私钥的工作台(即团队项目)的可见性设置为私有 ,不要设置为公开。
  • 私钥的变量值设置在 本地值而非远程值本地值 仅保存在本地,不会被发送至 Apifox 的服务器。
  • 如果使用来自其他人的脚本,请检查依赖库、变量和脚本,确保没有被修改,避免被植入不安全代码。

常见问题

为什么我发送请求很慢?

如果你使用的网页版 Apifox,请使用桌面版 Apifox 客户端。因为浏览器中跨域资源共享(CORS)的限制,网页版发送请求是由 Apifox 后台中转的。

订阅
qrcode

订阅

随时随地获取 Apifox 最新动态