iT邦幫忙

2021 iThome 鐵人賽

DAY 3
0
永豐金融APIs

掌握訂單與線上金流的剪不斷理還亂系列 第 3

Day03 永豐金API 基礎流程 -- Nonce

每家金流的流程都不太一樣,但基本上有牽扯到金錢的東西,肯定會有一堆驗證機制,
我們先看一下永豐金的流程
https://ithelp.ithome.com.tw/upload/images/20210909/20118647fkXOFZl2iW.png
在永豐金api流程會先取得Nonce,
並且透過Nonce組出api請求所需要的params,永豐金所有的api都是走這套流程,
因此我們先將整個基礎流程跑過一遍

首先先封裝一個curl方便所有api使用 (文件裡面有提供這邊直接copy避免請求格式錯誤)

//WebAPI 串接方法
function WebAPI($url, $post_data) {
    $ch=curl_init($url);
    $options=Array(
        CURLOPT_HEADER => 0,
        CURLOPT_NOBODY => 1,
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER => array("Content-type: application/json; charset=utf-8"),
        CURLOPT_POST=> 1,
        CURLOPT_POSTFIELDS=> $post_data ,
        CURLOPT_SSL_VERIFYPEER => 0,
        CURLOPT_SSL_VERIFYHOST => 0,
        CURLOPT_SSLVERSION => 6	  //(1:TLSv1 / 6:TLSv1_2)  使用 TLS 1.2 Protocol
    );
    curl_setopt_array($ch, $options);
    $result=curl_exec($ch);
    curl_close($ch);

    return $result;
}

然後是取得Nonce

//$shopno為永豐金提供的私人商店編號
//取得 Nonce 方法
function getNonce($shopno){
    $url = ‘https://apisbx.sinopac.com/funBIZ/QPay.WebAPI/api/Nonce’

    $post_data = json_encode(['ShopNo' => $shopno]);
    $result = WebAPI($url, $post_data);
    $result = json_decode($result);
    
    return $result->Nonce;
}

成功後會得到一串加密碼,也就是我們的Nonce,
然後要組出api所需要的資料。

先看一下步驟
https://ithelp.ithome.com.tw/upload/images/20210909/20118647a9Vk21aKAU.png
目前說的只在最一開始取得Nonce的部份,
接下來要使用的參數也都由永豐金提供,
主要為A1、A2、B1、B2,也因其實永豐金都有提供範例,
所以在成立所需資料的部份大部分都是直接提供文件內容,
自己做沒有任何好處,還容易因為加解密搞的灰頭土臉,也體現IT人善用工具美德


接下來會按照文件的流程,產出各api所需要的參數,並且封裝方便調用,
那麼我們明天見


上一篇
Day02 線上金流再做什麼?
下一篇
Day04 永豐金API 基礎流程 -- HashID
系列文
掌握訂單與線上金流的剪不斷理還亂30

尚未有邦友留言

立即登入留言