小程序
小游戏
企业微信
微信支付
扫描小程序码分享
该接口调用,老是返回“商户号mchid有误,请检查后重试”,看下面的错误码列表也没有这种提示,我们已经确认了appid跟mch_id,都没有填错,这是什么原因?
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
上代码
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
上代码
public class WxpayService {
private final static Logger log = LoggerFactory.getLogger(WxpayService.class);
@Autowired
WxSecureTools wxSecureTools;
@Autowired
WxHttpClient wxHttpClient;
@Autowired
WxMchConfig wxMchConfig;
public String testWxpay() {
try {
String requestXml = buildRequestParam();
log.info("request xml : {}", requestXml);
String result = wxHttpClient.post(wxMchConfig.getBindAppIdUrl(), requestXml, false);
log.info("response xml : {}", result);
return result;
} catch (Exception e) {
log.error("post error", e);
}
return null;
}
private String buildRequestParam() throws Exception {
SubMchBindAppIdReqVo reqVo = new SubMchBindAppIdReqVo();
reqVo.setAppid(wxMchConfig.getAppId());
reqVo.setMch_id(wxMchConfig.getMchId());
reqVo.setSub_appid("wx8xxxxxxxxx7");
reqVo.setSub_mch_id("34xxxxxxxx32");
String waittingForSign = StringUtils.convert(reqVo) + "&key=" + wxMchConfig.getSecretKey();
String sign = wxSecureTools.getMD5(waittingForSign);
reqVo.setSign(sign);
Document document = DocumentHelper.createDocument();
Element rootEle = document.addElement("xml");
rootEle.addElement("appid").addCDATA(reqVo.getAppid());
rootEle.addElement("mch_id").addCDATA(reqVo.getMch_id());
rootEle.addElement("sub_appid").addCDATA(reqVo.getSub_appid());
rootEle.addElement("sub_mch_id").addCDATA(reqVo.getSub_mch_id());
rootEle.addElement("sign").addCDATA(reqVo.getSign());
document.setXMLEncoding("UTF-8");
return document.asXML();
}
}