美文网首页工作生活
支付宝sign时闪退问题

支付宝sign时闪退问题

作者: NineThm | 来源:发表于2019-07-02 08:59 被阅读0次

    支付宝demo中,有个sign方法是会报错的,具体错误如下


    error

    而且定位过去的时候,显示的错误是这个


    order0nfoUtil2_0.java
    跟随着debug进去以后就是这句话出了问题
    sign.png

    首先,这么写是没有问题的,但是会在6.0以下的机子上报错和闪退,以上就没有问题,网上写的解决方案是

    KeyFactory keyf = KeyFactory.getInstance("RSA" , "BC");
    

    这样写,的确在8.0以下的机子上成功运行,但是到了Android 9.0 ,又会造成这个问题,导致闪退。查阅了相关资料,发现Android P(9.0)之后对RSA加密进行了修改 ,今后是不需要BC这个参数了的,所以我们需要对Android的版本进行判断,从而判断如何进行加密,代码如下:

    KeyFactory keyf =  null ;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
        keyf = KeyFactory.getInstance("RSA");     //适配Android P及以后版本,否则报错NoSuchAlgorithmException
    } else {
        keyf = KeyFactory.getInstance(ALGORITHM, "BC");
    }
    

    编译结束后就可以进行运行了

    吐槽一下支付宝的技术客服是真的坑,问问题都答不到点子上,一直要我们发demo,而且官方文档也很坑啊,你们官方竟然不改改么!!!过分!

    参考文献:
    https://www.jianshu.com/p/883851bbc988

    相关文章

      网友评论

        本文标题:支付宝sign时闪退问题

        本文链接:https://www.haomeiwen.com/subject/pbwncctx.html