收藏
回答

自动获取微信平台证书错误该如何解决?

微信小程序请求后台调用JSAPI下单,用的是自动获取微信平台证书


,请求成功微信小程序端调用wx.requestPayment,发起微信支付,第一次支付成功,再重新执行一遍这一套操作,后台就报错:java.lang.IllegalStateException: The corresponding provider for the merchant already exists.

大致是第一次获取微信平台证书成功,第二次就报了java.lang.IllegalStateException: The corresponding provider for the merchant already exists.

在这里抛出的异常

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

2 个回答

  • Double-Z
    Double-Z
    2023-07-03

    在方法外添加如下代码

    private Config config;
    private NativePayService service;
    

    方法内:

    if (config == null){
        config =
                new RSAAutoCertificateConfig.Builder()
                        .merchantId(mchid)
                        .privateKey(privateKey)
                        .merchantSerialNumber(merchantSerialNumber)
                        .apiV3Key(apiV3key)
                        .build();
    }
    
    // 构建service
    if (service == null){
        service = new NativePayService.Builder().config(config).build();
    }
    
    2023-07-03
    有用
    回复 2
    • Terry Sur
      Terry Sur
      2023-08-18
      那多台服务器怎么办?A服务器获取了config,正常使用,B服务器再次获取的时候,也是报这个错
      2023-08-18
      回复
    • 师傅被妖怪抓走了
      师傅被妖怪抓走了
      2023-11-14回复Terry Sur
      解决了吗
      2023-11-14
      回复
  • showms
    showms
    2023-02-06

    额。看这段代码,大概可以猜到这个的意思是一个商户号的证书获取一次就行了,第一次获取到之后就存到map里面,后面再需要用到证书的时候只需要从map里面取就行了,不用再调接口获取

    2023-02-06
    有用
    回复 5
登录 后发表内容