收藏
回答

输入源“/body/appid”映射到字段“公众号ID”必填性规则校验失败,此字段为必填项?

httpResponseBody[{"code":"PARAM_ERROR","detail":{"location":"body","value":""},"message":"输入源“/body/appid”映射到字段“公众号ID”必填性规则校验失败,此字段为必填项"}] HttpRequest[{"http_method":"POST","url":"https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi","uri":"https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi","headers":{"headers":{"Authorization":"WECHATPAY2-SHA256-RSA2048 mchid=\"1726162024\",nonce_str=\"N2Cj55GzN1lC8uMv5QK1UKeHZX5OFKPk\",timestamp=\"1757034222\",serial_no=\"336A00EB0C3E2F439F38575AD8A90D8DCEF1A60F\",signature=\"RWCt+ecI3S+MPLoD9GxsGSf8/66lgUUYT5628251gJ21gx5VHjNxQoofGNJEBZ5ug7Lhc/y4qSKoNmecrOnB+Vo/XmK0nYk4xB2tC60Cktlk6Kb9vvl5VekaTMU/tA9G1/30sUruqdAR8NCO5cTzk5wtSYvdT8jEcYMTYa4scwH++SoMhQCiMR0W/CQixTT1Aqywt7UmMb9lG8VCwokAfqyUugNU67OhCRTNV3XCXf1GPQpPRe78eGHfU6wrfKpR+EPqeSZpSTzq3gt+l98yPW9qCo5t2GKOJrtnpKBT0eD9AXXj+cC6Pk5JzKHCHuWC+LqpLsU+V2uYtM7Bpyacqw==\"","Accept":"application/json","User-Agent":"WechatPay-Java/0.2.17 (Windows 11/10.0) Java/17.0.9 Credential/WechatPay2Credential Validator/WechatPay2Validator okhttp3/null","Content-Type":"application/json","Wechatpay-Serial":"PUB_KEY_ID_0117261620242025082900212360003201"}},"body":{"body":"{\"description\":\"微信支付测试\",\"out_trade_no\":\"ORDER_1757034221777\",\"notify_url\":\"https://www.wazhi.com.cn/pay/notify/pay/notify/wx/1935602979520557057\",\"amount\":{\"total\":10,\"currency\":\"CNY\"},\"payer\":{\"openid\":\"1935594625381310465\"}}"}}]


com.wechat.pay.java.core.exception.ServiceException: Wrong HttpStatusCode[400]

httpResponseBody[{"code":"PARAM_ERROR","detail":{"location":"body","value":""},"message":"输入源“/body/appid”映射到字段“公众号ID”必填性规则校验失败,此字段为必填项"}] HttpRequest[{"http_method":"POST","url":"https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi","uri":"https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi","headers":{"headers":{"Authorization":"WECHATPAY2-SHA256-RSA2048 mchid=\"1726162024\",nonce_str=\"N2Cj55GzN1lC8uMv5QK1UKeHZX5OFKPk\",timestamp=\"1757034222\",serial_no=\"336A00EB0C3E2F439F38575AD8A90D8DCEF1A60F\",signature=\"RWCt+ecI3S+MPLoD9GxsGSf8/66lgUUYT5628251gJ21gx5VHjNxQoofGNJEBZ5ug7Lhc/y4qSKoNmecrOnB+Vo/XmK0nYk4xB2tC60Cktlk6Kb9vvl5VekaTMU/tA9G1/30sUruqdAR8NCO5cTzk5wtSYvdT8jEcYMTYa4scwH++SoMhQCiMR0W/CQixTT1Aqywt7UmMb9lG8VCwokAfqyUugNU67OhCRTNV3XCXf1GPQpPRe78eGHfU6wrfKpR+EPqeSZpSTzq3gt+l98yPW9qCo5t2GKOJrtnpKBT0eD9AXXj+cC6Pk5JzKHCHuWC+LqpLsU+V2uYtM7Bpyacqw==\"","Accept":"application/json","User-Agent":"WechatPay-Java/0.2.17 (Windows 11/10.0) Java/17.0.9 Credential/WechatPay2Credential Validator/WechatPay2Validator okhttp3/null","Content-Type":"application/json","Wechatpay-Serial":"PUB_KEY_ID_0117261620242025082900212360003201"}},"body":{"body":"{\"description\":\"微信支付测试\",\"out_trade_no\":\"ORDER_1757034221777\",\"notify_url\":\"https://www.wazhi.com.cn/pay/notify/pay/notify/wx/1935602979520557057\",\"amount\":{\"total\":10,\"currency\":\"CNY\"},\"payer\":{\"openid\":\"1935594625381310465\"}}"}}]

at com.wechat.pay.java.core.http.AbstractHttpClient.validateResponse(AbstractHttpClient.java:77) ~[wechatpay-java-core-0.2.17.jar:0.2.17]

at com.wechat.pay.java.core.http.AbstractHttpClient.execute(AbstractHttpClient.java:47) ~[wechatpay-java-core-0.2.17.jar:0.2.17]

at com.wechat.pay.java.service.payments.jsapi.JsapiService.prepay(JsapiService.java:164) ~[wechatpay-java-0.2.17.jar:0.2.17]

at com.wazhi.cloud.pay.handler.impl.WechatJsApiPayHandler.doPay(WechatJsApiPayHandler.java:53) ~[classes/:na]

at com.wazhi.cloud.pay.handler.AbstractPayOrderHandler.pay(AbstractPayOrderHandler.java:24) ~[classes/:na]

at com.wazhi.cloud.pay.controller.PayOrderController.create(PayOrderController.java:35) ~[classes/:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]

at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]

at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:354) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) ~[spring-aop-6.1.11.jar:6.1.11]

at com.wazhi.cloud.common.security.aspect.WzInnerAopAspect.around(WzInnerAopAspect.java:51) ~[classes/:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]

at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:173) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) ~[spring-aop-6.1.11.jar:6.1.11]

at com.wazhi.cloud.common.security.aspect.WzInnerAopAspect.around(WzInnerAopAspect.java:51) ~[classes/:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]

at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:173) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.11.jar:6.1.11]

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) ~[spring-aop-6.1.11.jar:6.1.11]

at com.wazhi.cloud.pay.controller.PayOrderController$$SpringCGLIB$$0.create(<generated>) ~[classes/:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]

at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]

at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) ~[spring-web-6.1.11.jar:6.1.11]

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) ~[spring-web-6.1.11.jar:6.1.11]

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) ~[spring-webmvc-6.1.11.jar:6.1.11]

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) ~[spring-webmvc-6.1.11.jar:6.1.11]

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) ~[spring-webmvc-6.1.11.jar:6.1.11]

at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-6.1.11.jar:6.1.11]

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) ~[spring-webmvc-6.1.11.jar:6.1.11]

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.11.jar:6.1.11]

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.11.jar:6.1.11]

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) ~[spring-webmvc-6.1.11.jar:6.1.11]

at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:547) ~[jakarta.servlet-api-6.0.0.jar:6.0.0]

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.11.jar:6.1.11]

at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614) ~[jakarta.servlet-api-6.0.0.jar:6.0.0]

at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at com.wazhi.cloud.common.myabtis.tenant.WzTenantContextFilter.doFilter(WzTenantContextFilter.java:45) ~[classes/:na]

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.11.jar:6.1.11]

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.11.jar:6.1.11]

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at cn.dev33.satoken.filter.SaPathCheckFilterForJakartaServlet.doFilter(SaPathCheckFilterForJakartaServlet.java:55) ~[sa-token-spring-boot3-starter-1.37.0.jar:na]

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.11.jar:6.1.11]

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.11.jar:6.1.11]

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113) ~[spring-web-6.1.11.jar:6.1.11]

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.11.jar:6.1.11]

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.11.jar:6.1.11]

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.11.jar:6.1.11]

at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) ~[undertow-core-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) ~[undertow-core-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) ~[undertow-core-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) ~[undertow-core-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:276) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:132) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:256) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:101) ~[undertow-servlet-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393) ~[undertow-core-2.3.13.Final.jar:2.3.13.Final]

at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859) ~[undertow-core-2.3.13.Final.jar:2.3.13.Final]

at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) ~[jboss-threads-3.5.0.Final.jar:3.5.0.Final]

at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513) ~[jboss-threads-3.5.0.Final.jar:3.5.0.Final]

at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538) ~[jboss-threads-3.5.0.Final.jar:3.5.0.Final]

at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282) ~[xnio-api-3.8.8.Final.jar:3.8.8.Final]

at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]


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

3 个回答

  • Memory (私信不回复)
    Memory (私信不回复)
    2025-09-05

    要严格按照文档要求传参数的,你 body 的 appid 都没给

    2025-09-05
    有用
    回复 12
    • 黄建林
      黄建林
      2025-09-05
      好的,多谢
      2025-09-05
      回复
    • 黄建林
      黄建林
      2025-09-05
      openid 可以设置一个固定值吗
      2025-09-05
      回复
    • Memory (私信不回复)
      Memory (私信不回复)
      2025-09-05回复黄建林
      你所有用户都是一个人?
      2025-09-05
      回复
    • 黄建林
      黄建林
      2025-09-05
      也就是是这个id是微信的登录id,需要登录后才能获取到这个id,目前是pc网站是不是不适用这种场景,需要用户又登录一次不太合理
      2025-09-05
      回复
    • 黄建林
      黄建林
      2025-09-05
      native的方式,只需要使用圈红的地址生成扫码用的二维码就行吗?
      2025-09-05
      回复
    查看更多(7)
  • 黄建林
    黄建林
    2025-09-05
        cachedConfig = new RSAPublicKeyConfig.Builder()
                .merchantId(payConfig.getMchId())
               .privateKeyFromPath(payConfig.getPrivateKeyPath()) // 商户私钥路径
               .publicKeyFromPath(payConfig.getWechatPayCertPath()) // 微信支付公钥路径
                .publicKeyId(payConfig.getPublicKeyId()) // 公钥ID
                .merchantSerialNumber(payConfig.getCertSerialNo())
                .apiV3Key(payConfig.getApiv3Key())
                .build();
    
    } catch (Exception e) {
        throw new IllegalArgumentException("微信支付配置初始化失败: " + e.getMessage() +
            "\n请检查私钥文件格式是否正确,路径: " + payConfig.getPrivateKeyPath(), e);
    }
    


    2025-09-05
    有用
    回复 1
    • 黄建林
      黄建林
      2025-09-05
      这里面需要用那个参数
      2025-09-05
      回复
  • จุ๊บ
    จุ๊บ
    2025-09-05

    所以你body里面的appId 在哪呢?mchid又在哪? 严格按照文档的写

    2025-09-05
    有用
    回复
登录 后发表内容