1.開發需要什么環境?
就我個人開發而言,環境jdk8及以上,最合適,需要額外改動的東西最少,jdk7對於加密解密使用來講比較麻煩,
拋開無限制權限策略文件不談,就AES/GCM/NoPadding這也是不支持,如果jdk7開發涉及到修改jdk文件,一定要備
份,特別是還需要調用其他支付公司的接口,一定要注意對於加驗簽加解密是否有影響,切記;
2. 涉及哪些證書?
1.開發中主要用.p12證書(讀取到程序,而不是安裝到windows);
2.獲取平台證書加簽時會使用key.pem證書(驗簽時不使用,驗簽使用獲取的微信平台證書);
3.微信平台證書(用於加密數據);
3.微信小微測試環境為何返回 'hahah'?
如果你開發時經歷了千辛萬苦才調通它某一個接口,它卻返回haha(),那你就
中招了,不過也要恭喜你遵守了正確的開發流程,就目前來看從推出到20180825還暫無發使用測試環境,所以直接連
接生產環境,提交真實數據;
4.微信平台證書如何管理?
關於平台證書如何管理,官方給的是使用中控服務器,但對於大多數公司來講顯得不那么現實,由於平台證書是可
能不定期更換的,所以不能依據證書棄用時間來使用證書,我的建議是在數據庫建表管理證書(只儲存信息,不儲存證書
文件本身),每天定時獲取證書,判斷獲取的全部證書是否在數據庫中存在,存在只改證書棄用時間,不存在校驗與系統
時間差,小於等於系統時間解密證書(基於微信會提前推送新證書文件,抓住的是在某天存在兩個證書並且同時可用的時
間點完成切換),解密完成之后將之前啟用證書關閉,儲存新證書信息到數據庫並開啟使用狀態,需要加密時獲取啟用的
證書信息,以讀取證書文件,其中許多細節就不多講了;
5.申請API證書(ca權威頒發)是否會運行原來的API證書使用?
//答案是不影響,不會影響以前的業務,后續接口都會使用新的ca頒發的證書;
答案是影響,大約兩個月之后改成必須全部升級為新證書,所以必須更換原證書;
6.加簽驗簽是使用APIv3秘鑰還是原秘鑰?
使用的是原來的秘鑰,就目前感知來看APIv3秘鑰只在解密平台證書時使用;
7.對於指明簽名算法類型的接口應該用什么加驗簽?
使用MD5加密,HMAC-SHA256與MD5的加簽驗簽在微信官方提供的工具類中都用,使用很方便,不需要自己寫;
8.如何在調用圖片上傳時加載證書?
調用圖片上傳接口的文章不少,所以不多說,主要是難以找到既上傳圖片又使用證書的文章,推薦使用HttpsURLC
onnection,使用setSSLSocketFactory()方法添加證書,加載p12證書,我沒有看到有直接指導加載.p12的文章,所以連
蒙帶猜寫出了一個,幸運的是還能用,一張圖片供參考;

9.圖片上傳接口里示例代碼使用的是.pem證書,到底應該使用什么證書?
由於是新接口,基本沒有相關文章,所以比較迷惑人,答案是使用.p12;
10.RFC3339時間格式應該怎樣轉換成普通格式?
引入Joda-Time jar包;
11.開發時獲取項目路徑為/D:...時,使用示例代碼Paths.get()方法時無法讀取?
示例代碼時為了獲取證書的byte[]格式內容;直接使用io流讀取文件然后獲取byte[](io流可以正常讀取
/D:..這樣的開頭文件路徑);
12.簽名正確為什么會返回驗證簽名錯誤?
可能是加密數據字段未正常加密(自己出現過這個情況)
