1. 程式人生 > 其它 >獲取RSA加密公鑰

獲取RSA加密公鑰

獲取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";

好了,有什麼問題下方留言.......