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所需要的参数,并且封装方便调用,
那麽我们明天见


<<:  Day9 javascript 条件语句

>>:  GO 语言和你 SAY HELLO!!

Day19 Let's ODOO: Logging

在我们写Service时,我们通常会记录自己想要的logs以供分析,本篇来介绍如何使用Odoo的lo...

day29: functors

今天我们要来了解 javascript FP 中的 functors 概念。 他的概念就是类似 OO...

JavaScript Day 11. 筛选条件 filter()

阵列中常用的方法还有 filter() 跟 map(),filter() 方法可以根据指定的筛选条件...

[Day11] placeholder for d11

写在前面 placeholder for d11 placeholder for d11 place...

我想当工程师!要念资讯相关科系吗?

在业界蛮多如何成为工程师的课程,至於要不要念本科系,以现今的社会来说不一定是必要条件。相关科系从事相...