收藏
回答

微信支付退款通知中的加密串req_info如何解密?


1)官方的文档和demo没有提供了方法?


2)搞这么复杂干什么,多此一举


3)网上搜的那些方法基本不能用。


我用的是java,在mac 电脑上调试。

最后一次编辑于  2019-01-17
回答关注问题邀请回答
收藏

4 个回答

  • 波
    2019-01-18

    解密方式

    解密步骤如下: 

    (1)对加密串A做base64解码,得到加密串B

    (2)对商户key做md5,得到32位小写key* ( key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置 )

    (3)用key*对加密串B做AES-256-ECB解密(PKCS7Padding)

    解密demo:https://github.com/btbxbob/wxpay-refund-notify-decrypt-helper

    2019-01-18
    赞同
    回复 1
    • 杜海亮
      杜海亮
      2019-01-18

      1)我说的是java下的,不是php的,所以下面在java下讨论问题

      2)步骤中的 base64界面和MD5都没什么问题

      3)关键是 AES-256-ECB解密(PKCS7Padding)这个东西很复杂,网上说什么TMD美国出口限制,要从oracle官网下载 无限制包,修改jre下的  /jre/lib/security/US_export_policy.jar,local_policy.jar,每个jre版本还下的都不一样。

      4)最可恨的是,我都按照上面要求做了,还是不行,出现异常 Exception in thread "main" java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/ECB/PKCS7Padding

      5)所以疯掉,最关键做这个没有意义。。。一个退款通知要单独加密,而其他都不加密,搞不懂为什么啊



      2019-01-18
      1
      回复
  • A0🍁杨安康
    A0🍁杨安康
    2019-06-19

    真不知道是真么想的,退款通知用这种恶心的解密方式,jdk还需要替换jar包,垃圾

    2019-06-19
    赞同
    回复
  • ZXK^O^😄
    ZXK^O^😄
    2019-03-19

    现在也遇到这个解密问题,无限制包什么的都下载解决了  结果一直报javax.crypto.BadPaddingException: pad block corrupted

    网上搜了各种方法 尝试完了还是报这个错   请问大佬有解决这个问题吗?

    2019-03-19
    赞同
    回复
  • 小阳
    小阳
    2019-01-18

    一样,也不给个示例代码。太垃圾了

    2019-01-18
    赞同
    回复 3
    • 波
      2019-01-18

      解密方式

      解密步骤如下: 

      (1)对加密串A做base64解码,得到加密串B

      (2)对商户key做md5,得到32位小写key* ( key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置 )

      (3)用key*对加密串B做AES-256-ECB解密(PKCS7Padding)

      解密demo:https://github.com/btbxbob/wxpay-refund-notify-decrypt-helper


      2019-01-18
      回复
    • 小阳
      小阳
      2019-01-18回复

      只有php,没有java吗??

      2019-01-18
      回复
    • 波
      2019-01-18回复小阳

      您好,现在只有这个,请作为参考,后续有别的语言,会通知到各位的。

      2019-01-18
      回复
登录 后发表内容