Skip to content

调用微信支付createOrderV3接口,出现:数据查询结果为空 报错 #3408

Open
@limingAlex1314

Description

@limingAlex1314

调用微信支付v3下单接口,支付单生成了,但是出现调用https://api.mch.weixin.qq.com/v3/merchant-service/complaint-notifications接口记录,并提示:数据查询结果为空

WxJava 模块名: weixin-java-pay
WxJava 版本号:4.5.3.B
代码:
private R createWxOrder(UnionBaseRequest request, PayConfig payConfig) throws WxPayException {
WxPayService wxPayService = new WxPayServiceImpl();
WxPayConfig wxPayConfig = new WxPayConfig();
wxPayConfig.setAppId(request.getSubAppId());
wxPayConfig.setMchId(payConfig.getMchId());
wxPayConfig.setApiV3Key(payConfig.getApiV3Key());
if (StringUtils.isNotBlank(payConfig.getPrivateCertContent())) {
wxPayConfig.setPrivateCertContent(payConfig.getPrivateCertContent().getBytes());
}
if (StringUtils.isNotBlank(payConfig.getPrivateKeyContent())) {
wxPayConfig.setPrivateKeyContent(payConfig.getPrivateKeyContent().getBytes());
}
wxPayConfig.setPrivateKeyPath(payConfig.getPrivateKeyPath());
wxPayConfig.setPrivateCertPath(payConfig.getPrivateCertPath());
wxPayService.setConfig(wxPayConfig);

	WxPayUnifiedOrderV3Request v3Request = new WxPayUnifiedOrderV3Request();

	String orderDesc = request.getOrderDesc();

	v3Request.setDescription(orderDesc);
	String merOrderId = request.getMerOrderId();
	if (StringUtils.isNotEmpty(merOrderId) && merOrderId.startsWith(UnionPayConstants.ORDER_ID_PREFIX)) {
		merOrderId = merOrderId.replace(UnionPayConstants.ORDER_ID_PREFIX, "");
	}
	v3Request.setOutTradeNo(merOrderId);
	v3Request.setNotifyUrl(wxPayConfigProperties.getNotifyUrl() + "/" + payConfig.getTenantId());

	WxPayUnifiedOrderV3Request.Amount amount = new WxPayUnifiedOrderV3Request.Amount();
	amount.setTotal(request.getTotalAmount().intValue());
	amount.setCurrency("CNY");
	v3Request.setAmount(amount);

	WxPayUnifiedOrderV3Request.Payer payer = new WxPayUnifiedOrderV3Request.Payer();
	payer.setOpenid(request.getOpenId());
	v3Request.setPayer(payer);

	v3Request.setAttach(request.getSubAppId());
	v3Request.setTimeExpire(DateUtil.format(DateUtil.parse(request.getExpireTime(), "yyyy-MM-dd HH:mm:ss"), "yyyy-MM-dd'T'HH:mm:ssXXX"));

	WxPayUnifiedOrderV3Result.JsapiResult jsapiResult = ((UnionPayController) AopContext.currentProxy()).createOrderV3(v3Request, wxPayService);
	log.info("微信支付jsapiResult:{}", JSON.toJSONString(jsapiResult));
	JSONObject miniPayRequest = new JSONObject();
	JSONObject payParam = new JSONObject();
	payParam.put("appId", jsapiResult.getAppId());
	payParam.put("timeStamp", jsapiResult.getTimeStamp());
	payParam.put("package", jsapiResult.getPackageValue());
	payParam.put("paySign", jsapiResult.getPaySign());
	payParam.put("signType", jsapiResult.getSignType());
	payParam.put("nonceStr", jsapiResult.getNonceStr());
	miniPayRequest.put("miniPayRequest", payParam);

	String miniPayUrl = payConfig.getMiniPayUrl();
	if (StringUtils.isNotEmpty(miniPayUrl)) {
		try {
			miniPayUrl = miniPayUrl + "?payDataStr=" + URLEncoder.encode(payParam.toJSONString(), StandardCharsets.UTF_8.toString());
		} catch (UnsupportedEncodingException e) {
			log.error("", e);
		}
		miniPayRequest.put("miniPayUrl", miniPayUrl);
	}

	return R.ok(miniPayRequest);
}

@auditlog(obsType = "现金(微信)", stage = "付款(拉起)")
public WxPayUnifiedOrderV3Result.JsapiResult createOrderV3(WxPayUnifiedOrderV3Request v3Request, WxPayService wxPayService) throws WxPayException {
return wxPayService.createOrderV3(TradeTypeEnum.JSAPI, v3Request);
}

日志:
日志

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions