筆者在這一章節,進行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的實作