最新項目,開發(fā)支付寶預授權功能,使用的是官方的SDK,在調用的時候卻報錯了:int() argument must be a string, a bytes-like object or a number, not “Sequence”。直接翻譯報錯的內容是:int()參數(shù)必須是字符串、類似字節(jié)的對象或數(shù)字,而不是“Sequence”。奇奇怪怪的報錯,不知道原因,因為用的是官方的sdk調用的,按理來說只有可能是我的問題。
找了網上的解決方案發(fā)現(xiàn),原來因為私鑰的問題,支付寶的私鑰分為兩種格式,PKCS8和PKCS1,如果這里填了不正確的格式,就會報這個錯誤,所以我們只需要轉換一下秘鑰的格式就可以了。
官方文檔標明了PKCS8用于java ,非JAVA使用PKCS1,我用的是Python來實現(xiàn)的,所以我們需要用PKCS1的秘鑰格式,轉換的方式也很簡單,使用支付寶開放平臺秘鑰工具就可以自動轉換秘鑰格式。
這里使用很方便,只需要把秘鑰貼進去轉換,他就會自動識別格式并且轉換成另外一種格式。