支付寶支付sign_type從RSA到RSA2遇到的問題


  1. 公鑰私鑰:
    1. 使用RSA簽名驗簽工具windows_V1.4生成公鑰私鑰(秘鑰長度2048為RSA2)
    2. 秘鑰自己保存使用,登錄支付寶開放平台,將公鑰保存到app_id對應的應用公鑰那里,保存完成,會生成對應的支付寶公鑰,此公鑰用來之后代碼使用。
  2. 支付以及回調流程:
    1. 預下單等接口的sign_type參數,統一為RSA2,並且,生成簽名方法需要更換如下:

       String sign = AlipaySignature.rsa256Sign(AlipaySignature.getSignContent(map), this.privateKey, "utf-8");
      
    2. 初始化支付寶客戶端時,需要使用帶有sing_type的構造參數,並且傳遞參數為RSA2:

       //初始化支付寶支付客戶端
       this.alipayClient = new DefaultAlipayClient(
       	 ConstanHolder.get("pay.alipay.url")
       	,ConstanHolder.get("pay.alipay.app_id")
       	,privateKey
       	,"json"
       	,"UTF-8"
       	,publicKey
       	,ConstanHolder.get("pay.alipay.sign_type")
       );	
      
    3. 驗簽時,需要使用驗證RSA2的方法(看了支付寶的實現方式,也可以采用rsaCheckV1(Map<String, String> params, String publicKey,String charset,String signType)這個方法來驗簽,必須傳遞signType為RSA2)

       Map<String,String> paramMap = req.getParamMap();
       String sign = paramMap.get("sign");
       String content = AlipaySignature.getSignCheckContentV1(paramMap);
       boolean flag = AlipaySignature.rsa256CheckContent(content,sign, publicKey, "UTF-8");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM