[Day10] 建立订单交易API_3

笔者在这一章节,进行sign及取得iv的实作

首先由Sign开始,在[Day4] API开发规格书中有提到Sign的产生方式。

def get_message_hash(data):
    sorted_key_list = sorted(data.keys())
    first = True
    result = ""
    for key in sorted_key_list:
        if first:
            temp = key + "=" + data[key]
            first = False
        else:
            temp = "&" + key + "=" + data[key]
        result += temp
    return result

def get_sign(data, nonce, hash_id):
    hash_value = data + nonce + hash_id
    return hashlib.sha256(hash_value.encode("utf-8")).hexdigest().upper()

get_message_hash首先先将dict的key值排序後,一个一个的放入result中,get_sign则是先将三个字串合在一起後,使用hashlib进行sha256完以Hex的形式作为output最後转成大写。

接下来则是取的iv的部分,取得iv值需要先将nonce值做sha256後取得右边16码流程如下图

实作方式如下

def get_iv(nonce):
    sha_nonce_value = hashlib.sha256(nonce.encode("utf-8")).hexdigest().upper()
    return sha_nonce_value[-16:-1]

以上就是本节的内容


<<:  快乐很简单,但要简单却很难。

>>:  Day 10 : 案例分享(3.3) 会计模组-调节、立冲帐、应收付与收支款

DAY29-分享SQL语法实作心得

今天我想要来分享一些做这九张报表,所发现的一些小技巧,或是一些小习惯 首先,我习惯在一打开SQL-S...

Day4给你一个导览列大家说好不好

今天从导览列开始做 首先先把 components里的helloword .vue 跟有import...

Day 28 同步的作用

同步分为两种类型: (1)资源同步(resource synchronization): 决定共享记...

Spring Framework X Kotlin Day 21 WebSocket

GitHub Repo https://github.com/b2etw/Spring-Kotlin...

Kotlin Android 第23天,从 0 到 ML - CameraX

前言: 今天来介绍如何创建使用 CameraX 来显示预览 大纲 : build.gradle(ap...