收藏
回答

调用wx.requestPayment 后 手机提示支付验证签名失败?

后端使用的v3接口 RSA签名类型

前端使用wx.requestPayment

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

6 个回答

  • 有来有去
    有来有去
    2022-06-14

    V3的版本参考 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_4.shtml#menu1, 底色为蓝色部分的demo示例,已经详细的解释了签名的字段格式如下:

    appId + "\n"+ timestamp + "\n" + nonceStr + "\n"+ packageStr +"\n" 的拼接形式

    packageStr的值为:prepay_id=wx201410272009395522657a690389285100 的形式字符串。


    注意packageStr的值,切记切记!!!!

    2022-06-14
    有用 3
    回复 1
    • 百炼钢
      百炼钢
      2022-07-15
      还是看这个文档,靠谱!赞!👍
      2022-07-15
      回复
  • @_@
    @_@
    2022-05-30

    楼主解决了这个签名问题了吗

    2022-05-30
    有用 1
    回复 2
    • weely.cc
      weely.cc
      2022-06-02
      确定api版本,如果是 v3, 按照这个文档生成签名就行了 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_4.shtml,我一开始把第一个参数给误转大写了,导致一直提示签名失败,后面改正后就ok了
      2022-06-02
      1
      回复
    • @_@
      @_@
      2022-06-02回复weely.cc
      我后面也解决了,我的问题是前端把参数传错了
      2022-06-02
      回复
  • 会上树的猪
    会上树的猪
    2022-07-13

    直接贴签名生成代码,拿去~~~

    /**
     * JSAPI调起支付所用签名 v3版本
     *
     * @param timeStamp  时间戳
     * @param nonceStr   随机字符串
     * @param packageStr packageStr格式:prepay_id=xxx
     * @return {@link String}
     * @see <a href="https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_4.shtml">小程序调起支付API</a>
     * @see <a href="https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1">微信支付接口签名校验工具</a>
     */
    @SneakyThrows
    public String getPaySign(String timeStamp, String nonceStr, String packageStr) {
        String sourceText = weChatConfig.getAppId() + StrUtil.LF + timeStamp + StrUtil.LF + nonceStr + StrUtil.LF + packageStr + StrUtil.LF;
        log.info("微信支付签名原文:{}", sourceText);
        byte[] sign = SecureUtil.sign(SignAlgorithm.SHA256withRSA)
                .setPrivateKey(PemUtil.loadPrivateKey(Files.newInputStream(Paths.get(weChatConfig.getMerchantPrivateKeyUri()))))
                .sign(sourceText);
        String paySign = Base64Encoder.encode(sign);
        log.info("微信支付签名密文:{}", paySign);
        return paySign;
    }
    


    2022-07-13
    有用
    回复
  • L1ang
    L1ang
    2022-04-20

    请问解决了吗

    2022-04-20
    有用
    回复
  • ◉‿◉ C。
    ◉‿◉ C。
    2022-03-13

    解决了吗,我卡这问题几天了,不管是内置或者工具验签都是通过了,就是签名失败

    2022-03-13
    有用
    回复 2
    • 今天也要下雨鸭
      今天也要下雨鸭
      2022-04-13
      我也是这样,验证通过还是签名失败,请问你现在解决了吗,是怎么解决的
      2022-04-13
      回复
    • 浅暖
      浅暖
      2023-06-21回复今天也要下雨鸭
      解决了吗
      2023-06-21
      回复
  • Cjiang
    Cjiang
    2022-02-24

    参考

    小程序支付一直提示requestPayment:fail 支付验证签名失败?? 微信支付技术助手1 的回答 - 微信开放社区 https://developers.weixin.qq.com/community/develop/doc/000e4abd46c1d823af59afcdb51000?_at=1645686152672&jumpto=comment&commentid=000a2a8c3f8cb066ac59c3895568

    2022-02-24
    有用
    回复
登录 后发表内容