Day 2 - API 文件导览、 Postman 测试取得 Nonce

在进行串接前,首先需要有定义串接的规格,例如:串接的协定 (HTTP、或走 FTP 档案交换等等)、需要传送的栏位等等资料。国内比较少像国外服务通常有 Web 版的开放文件网页可以查询,反而常见交付的文件有 PDF 文件、Google Doc、Word... 还有看过用 Excel 写的...@@。

不论是那种文件类型,只要写的够清楚,就很棒。而丰支付提供的为 PDF 版的文件手册。

由於要开始介绍里头的重点及串接方法,如果没有完整版可以阅读,只靠截取片段图片,比较难跳跃式阅读找重点比对,因此把文件放到 GitHub,可以在这里阅读丰支付API文件

图2-1
图 2-1: 使用 Google Chrome 阅读 PDF 文件

关於阅读此份文档的工具,在此推荐直接使用 Google Chrome 打开即可。在左侧会有边栏的页面预览,很方便跳跃式的选择页面阅读。

API 文件条目

这份文件一共 55 页,我们快速看一下文件条目,先了解一下一共有几支 API 构成这整个刷卡流程,大概花个 10 分钟快速浏览,找到第 10 页,有提供 API 接口的资讯。

图1-2
*图 2-2: 文件条目,第四章节。

在第 10 页我们得知,一共有两支 API,在第 11 页则有测试卡号的资讯及注意事项。

各项 API 服务

https://apisbx.sinopac.com/funBIZ/QPay.WebAPI/api/Order

取得 Nonce

https://apisbx.sinopac.com/funBIZ/QPay.WebAPI/api/Nonce

测试资讯

信用卡 测试用资料
测试卡号 4999-3700-0002-3145
有效期限(MM/YY) 12/30
後三码(CVV2) 880

图2-3
*图 2-3: 文件条目,第七章节。

文件里的第七章节,是 Order 这支 API 提供的四种功能。

图2-4
*图 2-4: 文件条目,第四章节。

Nonce 是一串验证 Request 来源有效性的杂凑值,依文件描述,它的效期为 60 秒。由於我们的服务器主机的 IP 位址是固定的,因此取得该 IP 位址的 Nonce 值,并使用 Nonce 值作为向 Order API 发送请求时的其中一个栏位,可以验证 IP 位址的有效性。

Postman 测试

先不管刷卡流程间的商业逻辑,光从以上资料可得知,没有 Nonce 是不行的,因此先从取得 Nonce 值的 API 作为切入点。

这个时候,还没有写任何程序码,我们可以先用像是 Postman 这类的工具快速测试一下 API 接受的是什麽样的请求,确定可以成功取得 Nonce 之後,再继续下一步。

图2-5
*图 2-5: 使用 Postman 测试 Nonce API。

一开始选择预设的 Content-Typeapplication/x-www-form-urlencoded 是不行的,改为 application/json 即可接通取得 Nonce 值。

第一个,也是唯一一个

Postman 在测试一般的 API 很好用,可以在测试时把每一条 API 文件化後分享给团队。不过在金融类型的 API 需要的栏位会有效期,且需要加密的签章栏位,无法那麽简单地使用 Postman 测试 Order API,不过我们经由这个简单测试得知: Content-Type 为 application/json,发送的资料栏位字串为 JSON 格式,可以成功拿到 Nonce,下一步就直接进入 Coding 了。

拿到 Nonce 後,接着呢?

你会发现整段串接流程会花最多时间在第 17 页「产生安全签章 Sign」的方法,需要算出 HashId 及产生 JSON 讯息内文。接下来的文章,会开始对这方面开始着墨。


本文更新於笔者的 TerryL 部落格,Day 2 - API 文件导览、 Postman 测试取得 Nonce,有兴趣可前往阅读及讨论。


<<:  Day 01 前言

>>:  DAY16 - [JS] 扩充功能 - 倒数计时,暂停、开始、结束

在 Debian 11 上直接用 Fcitx 5 与呒虾米

前言 Fcitx 5 是 Debian 11 预先安装好的中文输入法,目前,无法在 Debian 1...

Constructor

当我们今天要储存个人的信息会使用到object,但仔细思考若有100位的话,是否太麻烦了 let p...

CSS垂直置中

absolute + top/left + tranform 利用top/left将子元素的左上角对...

如何在Windows 10中隐藏修复分区

在大多数PC上,默认情况下,修复分区是隐藏的,并且不会出现在档案总管(Windows Explore...

第14车厢-点开看更多?tableRWD应用篇

本篇延续手刻tableRWD应用,将范例配合选取器改为响应式隐藏栏位并能展开 上几篇介绍table...