在进行微信支付native下单时,系统报错提示
我的代码如下
/** 商户号 */
public static String merchantId = "15********";
/** 商户API私钥路径 */
public static String privateKeyPath = "E:\\project\\QS\\aaa\\src\\main\\resources\\15*******cert\\apiclient_key.pem";
/** 商户证书序列号 */
public static String merchantSerialNumber = "4A8C8FF*******";
/** 微信支付平台证书路径 */
public static String wechatPayCertificatePath = "E:\\project\\QS\\aaa\\src\\main\\resources\\15********cert\\apiclient_cert.pem";
public String CreteQR(UserDO userDO){
QueryWrapper<UserDO> wrapper = new QueryWrapper<>();
wrapper.eq("name",userDO.getName());
List<UserDO> users = userDAO.selectList(wrapper);
//预下单生成
PrepayRequest request = new PrepayRequest();
request.setAppid("wx09********");
request.setMchid("15********");
request.setDescription(users.get(0).getIfmember().equals("0") ? "充值会员" : "续费会员");
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String out_trade_no = fmt.format(new Date());
request.setOutTradeNo(out_trade_no); //商户系统内部订单号
request.setNotifyUrl("http://********/aaa/ResNotifyUrl"); //通知地址
Amount amount = new Amount();
amount.setTotal(2000);
amount.setCurrency("CNY");
request.setAmount(amount);
// 初始化商户配置
RSAConfig config =
new RSAConfig.Builder()
.merchantId(merchantId)
// 使用 com.wechat.pay.java.core.util 中的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
.privateKeyFromPath(privateKeyPath)
.merchantSerialNumber(merchantSerialNumber)
.wechatPayCertificatesFromPath(wechatPayCertificatePath)
.build();
PrepayResponse resp = new NativePayService.Builder().config(config).build().prepay(request);
return resp.getCodeUrl();
}
我都是用的JAR包里面自带的方法为什么会出现签名错误,是因为引入证书或者KEY的路径的时候不对吗?