收藏
回答

今天安卓下支付接口是不是没有验证sign了

PayReq request = new PayReq(); request.appId = "wxd930ea5d5a258f4f"; request.partnerId = "1900000109"; request.prepayId= "1101000000140415649af9fc314aa427",; request.packageValue = "Sign=WXPay"; request.nonceStr= "1"; request.timeStamp= "1"; request.sign= "1"; api.sendReq(request);

如上 , 我把 nonceStr , timeStamp, sign 三个参数设置为固定值"1" , 居然还可以支付

回答关注问题邀请回答
收藏

2 个回答

  • 网
    2019-08-02

    transaction_id : 4200000340201908023868120227

    这是刚刚 我把sign值设置为固定"Sign=WXPay"时支付成功的订单号, 这就很异常了吧

    后来我又试了几次

    把 nonceStr, timeStamp, sign 随便传值都可以成功进入支付页面

    除了两种情况会返回 -1 也就是签名错误

    1. 生成签名时把 package 写成 packageValue , 算出来的签名就是错的 请求时会返回 -1

    2. 签名时没有把 appId , partnerId , prepayId , nonceStr , timeStamp 这些键转成小写也会返回 -1

    请问下还需要别的信息吗 ?

    最简单的测试方法就是将 nonceStr, timeStamp, sign 这个三个值设固定为"1"看看


    2019-08-02
    有用
    回复
  • 微信支付技术助手1
    微信支付技术助手1
    2019-08-02

    有验证的。你贴一下图。

    2019-08-02
    有用
    回复 1
    • 网
      2019-08-02
      transaction_id : 4200000340201908023868120227 这是刚刚 我把sign值设置为固定"Sign=WXPay"时支付成功的订单号, 这就很异常了吧 后来我又试了几次 把 nonceStr, timeStamp, sign 随便传值都可以成功进入支付页面 除了两种情况会返回 -1 也就是签名错误 生成签名时把 package 写成 packageValue , 算出来的签名就是错的 请求时会返回 -1 签名时没有把 appId , partnerId , prepayId , nonceStr , timeStamp 这些键转成小写也会返回 -1 请问你下还需要别的信息吗 ? 最简单的测试方法就是将 nonceStr, timeStamp, sign 这个三个值设固定为"1"看看
      2019-08-02
      回复
登录 后发表内容