zmop接口的坑(芝麻信用認證)
- 最近項目裏要用到實名認證,因爲便宜用到了芝麻信用的實名認證。
1. 環境(zmop依賴於M2Crypto)
ubuntu 環境下使用最新版的M2Crypto(0.27.0)有問題,一直報不支持 ssl v3 加密,需要把M2Crypto安裝成0.26.4版本的才行
2. rsa 公鑰私鑰(邏輯理清)
zmop中rsa的用法是:
- 使用之前先把生成公私鑰,把我的公鑰放到芝麻信用平臺上,把zmop的公鑰拿下來保存。
- 公鑰加密,私鑰解密
- 私鑰簽名,公鑰解籤
- 從商戶–>zmop的請求:用‘zmop的公鑰’加密,用的‘我的私鑰’簽名,到zmop那邊,他用‘zmop的私鑰’解密,用我的公鑰驗籤。
- 從zmop–>商戶的返回:用‘我的公鑰’加密,用‘zmop的私鑰’簽名,到我這邊,我用‘我的私鑰’解密,用‘zmop的公鑰驗籤’。
我們要做的是:
- 生成公私鑰,自己只用保存私鑰,把公鑰交給zmop的app
- 把公鑰交給zmop後,獲取到zmop的公鑰,並保存(這裏有個坑:點擊芝麻信用頁面‘複製’按鈕不管用,直接右擊‘檢查元素’,從html標籤中尋找公鑰即可)
- 最後的結果是:
- 我保存的:我的私鑰+zmop的公鑰
- zmop保存的:我的公鑰+zmop的私鑰
3. 傳參格式str
rsa加密參數的話使用的是unicode格式的話會報錯:
RSAError at /zmop/biz-no/
data too large for key size
所以需要把參數轉化成str格式,如:str(transaction_id)