iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0

筆者在這一章節,進行hashId及取得nonce資料的實作

def get_hash_id(hash_a1, hash_a2, hash_b1, hash_b2):
    hash_a = format((int(hash_a1, 16) ^ int(hash_a2, 16)), 'x')
    hash_b = format((int(hash_b1, 16) ^ int(hash_b2, 16)), 'x')
    hash_id = hash_a + hash_b
    return hash_id.upper()

def get_nonce(shop_no):
    nonce_url = "https://sandbox.sinopac.com/QPay.WebAPI/api/Nonce"
    req_body = {"ShopNo": shop_no}
    r = requests.post(url=nonce_url, json = req_body)
    return r.json()["Nonce"]

get_hash_id這個function是用來將豐收款提供的四組Hash產出HashId,先將Hex轉成int後,再利用^做XOR,之後再轉回去Hex字串,最後將兩組XOR完的字串加在一起。

get_nonce則是透過requests這個library去幫我們實踐Http的post請求,最後將response轉成json後,取得"Nonce"這個欄位的資料即可。

以上是我的兩個function的實作


上一篇
[Day8] 建立訂單交易API_1
下一篇
[Day10] 建立訂單交易API_3
系列文
從永豐金融APIs進入Open API的30天挑戰18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言