微信小程序请求后台调用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.
在这里抛出的异常
在方法外添加如下代码
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(); }
额。看这段代码,大概可以猜到这个的意思是一个商户号的证书获取一次就行了,第一次获取到之后就存到map里面,后面再需要用到证书的时候只需要从map里面取就行了,不用再调接口获取
https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/wechatpay5_0.shtml