iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
永豐金融APIs

永豐金 API - 豐支付 PHP SDK 設計及 WooCommerce 電商串接實戰系列 第 5

Day 5 - 安全簽章: 取得 SHA256 加密後的 Sign 值

圖 5-1
圖 5-1: 各欄位資料範例

Day 2 我們知道了取得 Nonce 的方法。在 Day 3 瞭解了使用永豐金技術客服給我們的四組雜湊值去計算出 HashId。而 Day 4,則是計算出安全簽章 Sign 的最後一塊拼圖 - 訊息內文雜湊。

組裝 Sign 值

我們只距離拿到加密後的 Sign 值只差一步。來複習一下文件第 13 頁,關於組裝 Sign 值的方法。

圖 5-2
圖 5-2: 文件第 13 頁。

API 文件的說明指的是訊息內文雜湊的字串尾端接著 Nonce,然後再接著 HashId,是字串附加 (append) 的動作。以下流程圖可以清楚說明整個步驟。

圖 5-3
圖 5-3: 取得 Sign 的流程

標著螢光綠的字串為 Nonce 值,標著螢光黃的字串為 HashId,最後再進行 SHA256 加密,取得的字串則是 Sign 值。如果使用的程式語言在加密後的字串是小寫字母,務必轉為大寫。

SHA256 加密

在 PHP 的世界中,要進行 SHA256 加密真的很容易,只要使用 hash 這個函式即可。

例:

<?php
hash('sha256', $string);

詳細的用法可參閱 PHP 官方說明文件中關於 hash 函式的說明

圖 5-4
圖 5-4: PHP 範例

如上圖所示,第 29 行為內文雜湊,第 30 行為 Nonce 值,第 31 行為 HashId。最後我們在第 33 行,將以上的合併字串進行 SHA256 加密之後轉為大寫字元即為我們要的安全簽章 - Sign 值。

A3EAEE3B361B7E7E9B0F6422B954ECA5D54CEC6EAB0880CB484AA6FDA4154331

接著,明天我們要進行 Message 欄位的加密說明,完成後就可以正式送出建立訂單的請求囉。


上一篇
Day 4 - 安全簽章: 訊息內文雜湊
下一篇
Day 6 - 產生內文加密所需的 IV 值
系列文
永豐金 API - 豐支付 PHP SDK 設計及 WooCommerce 電商串接實戰30

尚未有邦友留言

立即登入留言