獲取RSA加密公鑰
阿新 • • 發佈:2021-10-20
獲取RSA加密公鑰是為“企業轉賬到銀行卡”這個介面做準備的,這裡獲取到的是PKCS#1公鑰的,
還需要轉成PKCS#8公鑰的,因為現在的api介面需要的是PKCS#8公鑰,否則會報錯的。
需要啊準備的東西如下:
商戶號、api祕鑰、微信證書
需要引入依賴
<!-- alipay--> <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <!--<version>3.7.26.ALL</version>--> </dependency>
下面直接上程式碼
/** * 獲取RSA加密公鑰 * * @return 證書 */ @Override public Map<String, String> getPublicKey() { try { Map<String, String> params = new HashMap<String, String>(4); params.put("mch_id", WxPayConfig.MCH_ID); params.put("nonce_str", String.valueOf(System.currentTimeMillis())); params.put("sign_type", "MD5"); String createSign = WxPayKit.createSign(params, WxPayConfig.API_SECRET, SignType.MD5); params.put("sign", createSign); //獲取證書路徑 File file = ResourceUtils.getFile(WxPayConfig.CERT_PATH);//FileInputStream certStream = new FileInputStream(file); String publicKey = WeChatPayApi.getPublicKey(params, file.toString(), WxPayConfig.MCH_ID); Map<String, String> map = WXPayUtil.xmlToMap(publicKey); System.out.println(map.get("pub_key")); return map; } catch (Exception e) { e.printStackTrace(); throw new CustomException("系統繁忙,請稍後重試"); } }
/** * 證書地址: resource下 */ public static final String CERT_PATH = "classpath:cert/apiclient_cert.p12";
好了,有什麼問題下方留言.......