原生app簽名如何轉換成快應用簽名

 

在對接快應用微信支付時發現,快應用微信支付申請使用的包名和簽名須是某個原生app的包名和簽名。

參考文檔截圖如下:

App 微信支付申請時需要填入的包名、簽名截圖如下:

可見快應用微信支付的申請是按一個原生app的方式申請的。包名還好,兩者填寫一樣就行;而簽名比較麻煩,因爲原生app簽名文件是一個*.keystore文件;快應用的簽名文件是兩個pem文件(certificate.pem和private.pem)。爲保證簽名一致(快應用簽名須和微信支付申請填入的原生app簽名一致),須將原生簽名文件*.keystore轉成快應用的需要的兩個pem簽名文件。

經反覆查資料和試驗,發現這種下面的轉換過程是可行的。

 

原生app簽名文件.keystore文件的生成

終端運行下面命令:

keytool -genkey -alias app.keystore -keyalg RSA -validity 20000 -keystore app.keystore

根據提示依次填入需要的內容和密碼,這裏一定要要記下這個密碼,後面會用到
 

查看.keystore 文件的內容,並獲取微信支付申請頁需要的簽名內容

運行下面命令:

keytool -list -v -keystore test.keystore -storepass 000111(第一步的密碼)

如果成功的話,會在展示的結果裏找到MD5的內容.將MD5後面的編碼值去掉冒號後組成一個十六進制字符串,這就是微信支付申請頁需要填入的簽名內容。

 

將keystore文件轉換爲pkcs12格式的文件

keytool -importkeystore -srckeystore my.keystore -destkeystore tmp.p12 -srcstoretype JKS -deststoretype PKCS12

輸入生成keystore時的密碼

最後發現同一目錄下生成tmp.p12文件

 

將PKCS12格式的文件 dump成pem

openssl pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem

 

同樣輸入keystore的密碼

最後同一目錄下生成  tmp.rsa.pem

 

生成certificate.pem 和privae.pem

用記事本將第四步生成的tmp.rsa.pem打開,會發現裏面包含certificate 和 private 內容。

複製“BEGIN CERTIFICATE” (包含)至“END CERTIFICATE” (包含)的內容到(新建個文件) certificate.pem

複製 “BEGIN RSA PRIVATE KEY”(包含)至 “END RSA PRIVATE KEY” (包含)的內容 到(同上) private.pem

這樣就生成了兩個pem文件:一個公鑰一個私鑰。這就是快應用工程最後需要的簽名文件。

 

生成release.rpk

在快應用工程目錄下的“sign”目錄內創建“release”目錄,同時將第6步生成的兩個pem文件copy到該目錄下

然後在終端命令行運行:npm run release

 

最後,到工程目錄”dist“目錄下會就能看到已經生成的release.rpk

 

 

關於微信app支付申請注意事項

1,微信app支付申請的包名不能隨便改,一旦上線使用終生不得修改。

2,測試階段,簽名可以改,改完之後立即生效,但是要把微信客戶端卸載掉重新測試。因爲微信客戶端會緩存之前的簽名。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章