收藏
回答

支付回调验签问题?

NotificationConfig config1 = new RSAAutoCertificateConfig.Builder()

                .merchantId(payOrder.getThirdMchId())

                .privateKey(privateKey)

                .merchantSerialNumber(key)

                .apiV3Key(apiV3key)

                .build();

        NotificationParser parser = new NotificationParser(config1);

        RequestParam requestParam = new RequestParam.Builder()

                .serialNumber(serialNumber)

                .nonce(nonce)

                .signature(signature)

                .timestamp(timestamp)

                .body(body)

                .build();

        try {

            Notification parse = parser.parse(requestParam, Notification.class);

            log.info("订单号{}通知内容为{}",payOrder.getPayNo(),JSON.toJSONString(parse));

        }catch (ValidationException e) {

            log.error("验签失败",e);

        }

一直返回异常 验签失败

Processing WechatPay notification,signature verification failed,signType[WECHATPAY2-SHA256-RSA2048]     serial[788F72CE6A38448B344E49E56EAA5EF29B6C8EE1]       message[1744796490

SGF0Qv2ebGGpPszyAixeFboai4GsCyQw

{"summary":"商家转账单据终态通知","event_type":"MCHTRANSFER.BILL.FINISHED","create_time":"2025-04-16T17:13:48+08:00","resource":{"associated_data":"mch_payment","ciphertext":"bHwL6SkNnIGuJOUseGxaxKuPckEqEbkSKkapj2sTvlWl4aUyM+tasQ/+6+rovJAA8KqQd3UKQu0O7zPT9I1QjGERp7578hV8K/arrCdbCmdlFNy4YZtT4FgDnxlqUukV94ziWAppwrm6qpKDAV4Xesg7lig7pwJCriMU8RLV4CIIh1JyVEcxRN2uSXhikJHNX4kKhFakDenUxnXWeWId5LioWaP/PeN1vhVPtuBL+u1oUN8HNag4PD896aMvk++FD5TBO/vfIpT+zxIOHeUH3fdaCc9P7uu0eaESFfq3K06AGMe5yZYL17qfPEIly6yoHlD0r1QpDH6wa0Itwn4X/1ScpD3AsrBt6YcODRg/Ju/s1oeM3v+aVcvm2Fi5wXstTUbDuWrwPZdEb/4aguELCJ951GuXT8ZHnMRQRv+RRLsBahSvj1eV0szxCtnNO4C1C95nlF7PE5vRTIng","original_type":"mch_payment","nonce":"AJSEpTGBbpZq","algorithm":"AEAD_AES_256_GCM"},"resource_type":"encrypt-resource","id":"53b544aa-f2c0-565f-80b7-0ba6da6e8b7f"}

]       sign[FUWHEJvG0RVHbcb6GHuCWkQ4cM4bN+3Gl3Sns57Mp75nryxmxvEZQNTR/zbsmyNNENrmN4NBtvDfmd0bAH/0lKrDJcSJA499wuOiuko2NEqAmaLds1a5AwxYDIFDdCl5UwCgN5jvvBCrh6idPSbuhsMwcZNHlbH6USvEx+bpQ73SZWLr4KO5yJFkS6Hdb7pWKtLTeCit8/hw6viaNjIkFkf97fLRC10opadKJsz+JexFfKt2nxmmOc22FDYXoZfx8yMAfH77ib4QD0Sov22YOJTAUwZLv8f/0ris3x44IbL4ft1BDHAB6LocyMV1QFR+Yh4mjmdvMdZZerzmpQX3HA==]

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

3 个回答

  • 烈火
    烈火
    2025-10-14

    感谢,是body问题。踩坑、避雷:如果用的springboot,加了拦截器、过滤器的,要放行回调url。不要处理body数据

    2025-10-14
    有用
    回复
  • loaf
    loaf
    2025-04-17

    实际收到的body字符串得是这个格式(你的参数顺序不是这个),你收到后肯定是自己框架修改了,要用实际收到的去验签才能过

    2025-04-17
    有用
    回复
  • Memory (私信不回复)
    Memory (私信不回复)
    2025-04-16

    手动验签能不能过?

    2025-04-16
    有用
    回复
登录 后发表内容