就我我的開發而言,環境jdk8及以上,最合適,須要額外改動的東西最少,jdk7對於加密解密使用來說比較麻煩,算法
拋開無限制權限策略文件不談,就AES/GCM/NoPadding這也是不支持,若是jdk7開發涉及到修改jdk文件,必定要備數據庫
份,特別是還須要調用其餘支付公司的接口,必定要注意對於加驗籤加解密是否有影響,切記; windows
1.開發中主要用.p12證書(讀取到程序,而不是安裝到windows);服務器
2.獲取平臺證書加簽時會使用key.pem證書(驗籤時不使用,驗籤使用獲取的微信平臺證書);微信
3.微信平臺證書(用於加密數據);工具
若是你開發時經歷了千辛萬苦才調通它某一個接口,它卻返回haha(),那你就測試
中招了,不過也要恭喜你遵照了正確的開發流程,就目前來看從推出到20180825還暫無發使用測試環境,因此直接連加密
接生產環境,提交真實數據;3d
關於平臺證書如何管理,官方給的是使用中控服務器,但對於大多數公司來說顯得不那麼現實,因爲平臺證書是可blog
能不按期更換的,因此不能依據證書棄用時間來使用證書,個人建議是在數據庫建表管理證書(只儲存信息,不儲存證書
文件自己),天天定時獲取證書,判斷獲取的所有證書是否在數據庫中存在,存在只改證書棄用時間,不存在校驗與系統
時間差,小於等於系統時間解密證書(基於微信會提早推送新證書文件,抓住的是在某天存在兩個證書而且同時可用的時
間點完成切換),解密完成以後將以前啓用證書關閉,儲存新證書信息到數據庫並開啓使用狀態,須要加密時獲取啓用的
證書信息,以讀取證書文件,其中許多細節就很少講了;
//答案是不影響,不會影響之前的業務,後續接口都會使用新的ca頒發的證書;
答案是影響,大約兩個月以後改爲必須所有升級爲新證書,因此必須更換原證書;
使用的是原來的祕鑰,就目前感知來看APIv3祕鑰只在解密平臺證書時使用;
使用MD5加密,HMAC-SHA256與MD5的加簽驗簽在微信官方提供的工具類中都用,使用很方便,不須要本身寫;
調用圖片上傳接口的文章很多,因此很少說,主要是難以找到既上傳圖片又使用證書的文章,推薦使用HttpsURLC
onnection,使用setSSLSocketFactory()方法添加證書,加載p12證書,我沒有看到有直接指導加載.p12的文章,因此連
蒙帶猜寫出了一個,幸運的是還能用,一張圖片供參考;
因爲是新接口,基本沒有相關文章,因此比較迷惑人,答案是使用.p12;
引入Joda-Time jar包;
示例代碼時爲了獲取證書的byte[]格式內容;直接使用io流讀取文件而後獲取byte[](io流能夠正常讀取
/D:..這樣的開頭文件路徑);
多是加密數據字段未正常加密(本身出現過這個狀況)