在产出安全签章前必须完成以下任务,要先取得 Nonce、Hash ID、讯息内文,才可计算出安全签章,
产生前请注意以下事项:
{
"ShopNo": "BA0026_001",
"OrderNo": "A201804270001",
"Amount": 50000,
"CurrencyID": "TWD",
"PayType": "A",
"ATMParam": { "ExpireDate": "20180502" },
"CardParam": { },
"ConvStoreParam": { },
"PrdtName": "虚拟帐号订单",
"ReturnURL": "http://10.11.22.113:8803/QPay.ApiClient/Store/Return",
"BackendURL": "http://10.11.22.113:8803/QPay.ApiClient/AutoPush/PushSuccess"
}
使用python的json套件,安装如下:
pip install import json
程序如下,值得注意的地方是json.dumps,在处理中文时,会转换为ascii,要加入参数ensure_ascii=False,才会与范例一致。
send_message_ori = {
"ShopNo": "BA0026_001",
"OrderNo": "A201804270001",
"Amount": 50000,
"CurrencyID": "TWD",
"PayType": "A",
"ATMParam": {"ExpireDate": "20180502"},
"CardParam": {},
"ConvStoreParam": {},
"PrdtName": "虚拟帐号订单",
"ReturnURL": "http://10.11.22.113:8803/QPay.ApiClient/Store/Return",
"BackendURL": "http://10.11.22.113:8803/QPay.ApiClient/AutoPush/PushSuccess",
}
send_message={k: v for k, v in send_message_ori.items() if v and type(v)!=dict }
send_message = {k: send_message[k] for k in sorted ( send_message.keys())}
type(json.dumps(send_message))
send_message_str=json.dumps(send_message, ensure_ascii=False)
send_message_ContentHash=send_message_str.replace('": "', "=").replace('": ', "=").replace('", "', "&").replace(', "', "&")[2:][:-2]
print(send_message_ContentHash)
结果
Amount=50000&BackendURL=http://10.11.22.113:8803/QPay.ApiClient/AutoPush/PushSuccess&CurrencyID=TWD&OrderNo=A201804270001&PayType=A&PrdtName=虚拟帐号订单&ReturnURL=http://10.11.22.113:8803/QPay.ApiClient/Store/Return&ShopNo=BA0026_001
NonceValue='NjM2NjA0MzI4ODIyODguMzo3NzI0ZDg4ZmI5Nzc2YzQ1MTNhYzg2MTk3NDBlYTRhNGU0N2IxM2Q2M2JkMTIwOGU5YzZhMGFmNGY5MjA5YzVm'
send_message_TextHash=send_message_ContentHash+NonceValue+hashID
print(send_message_TextHash)
结果如下
Amount=50000&BackendURL=http://10.11.22.113:8803/QPay.ApiClient/AutoPush/PushSuccess&CurrencyID=TWD&OrderNo=A201804270001&PayType=A&PrdtName=虚拟帐号订单&ReturnURL=http://10.11.22.113:8803/QPay.ApiClient/Store/Return&ShopNo=BA0026_001NjM2NjA0MzI4ODIyODguMzo3NzI0ZDg4ZmI5Nzc2YzQ1MTNhYzg2MTk3NDBlYTRhNGU0N2IxM2Q2M2JkMTIwOGU5YzZhMGFmNGY5MjA5YzVm17D8E6558DC60E702A6B57E1B9B7060D
pip install import hashlib
执行如下
s2 = hashlib.sha256()
s2.update(send_message_TextHash.encode('utf-8'))
SignValue = s2.hexdigest().upper()
print(SignValue)
这篇的重点-安全签章就完成罗~
A3EAEE3B361B7E7E9B0F6422B954ECA5D54CEC6EAB0880CB484AA6FDA4154331
下一步就是 Message的产制罗
虽然这次铁人赛在非我预期的情况下中断了~但如第一篇说的,
头洗下去就继续吧!当作给自己的一个交待罗~
>>: Day12 数据图表化 - 如何建立 Visualize
Azure machine learning: training experiment and re...
大家好! 我们今天要实作的自订滚动卷轴,不仅能自订方向、选择更多样式,甚至支援度比 CSS 更广。 ...
由下图可知 onSaveInstanceState()是当生命周期进入onStop()时会被呼叫的c...
如果要控制元件出现或是消失,依照之前讨论的章节,会使用到v-if、v-show的指令来完成,但当你的...
⚠行前通知 考量到有些人可能还没学过Python,然後我的主题又是定为从HTML到Python爬虫的...