{return_msg=mch_id参数格式错误, return_code=FAIL} 这个错误是怎么犯的啊,
如何解决 ,求前辈们指教。在线等。。。。。
我的商户号对了好几遍,没有错误啊,不就是 申请成功后给的商户号吗。而且我把商户号这个参数去掉了,它还是报这个错误。
//发起微信支付请求
public static String httpsRequest(String requestUrl, String requestMethod, String outputStr) {
try {
URL url = new URL(requestUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
System.out.println(conn);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
// 设置请求方式(GET/POST)
conn.setRequestMethod(requestMethod);
conn.setRequestProperty("content-type", "application/x-www-form-urlencoded");
// 当outputStr不为null时向输出流写数据
if (null != outputStr) {
OutputStream outputStream = conn.getOutputStream();
// 注意编码格式
outputStream.write(outputStr.getBytes("UTF-8"));
System.out.println("999999999999999999999"+outputStream);
outputStream.close();
}
System.out.println("!!!!!!!!!!"+conn);
// 从输入流读取返回内容
InputStream inputStream = conn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@"+inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str = null;
StringBuffer buffer = new StringBuffer();
while ((str = bufferedReader.readLine()) != null) {
System.out.println("121232"+str);
buffer.append(str);
}
// 释放资源
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
inputStream = null;
conn.disconnect();
return buffer.toString();
} catch (ConnectException ce) {
System.out.println("连接超时:{}"+ ce);
} catch (Exception e) {
System.out.println("https请求异常:{}"+ e);
}
return null;
}
//微信统一下单参数设置
public static String WXParamGenerate(String description,String out_trade_no,double total_fee,String product_id) throws Exception{
int fee = (int)(total_fee * 100.00);
Map<String,String> param = new HashMap<String,String>();
param.put("appid",ConstantUtil.APP_ID);
param.put("mch_id",ConstantUtil.MCH_ID);
param.put("nonce_str",NonceStr()); //随机字符串
param.put("body",description); //商品描述
param.put("out_trade_no",out_trade_no); //商户订单号
param.put("total_fee",fee+""); //金额
param.put("spbill_create_ip",GetIp()); //获取Ip
param.put("notify_url",ConstantUtil.WEIXIN_NOTIFY); //获取回调函数
param.put("trade_type","MWEB"); //支付类型 《H5支付》
param.put("product_id",product_id+""); //商品ID
//获取签名
String sign = GetSign(param);
param.put("sign", sign);
/* StringBuffer d =new StringBuffer();
String dd =parseMapToXml(d,param);
System.out.println("45645465465645465645"+dd);*/
return GetMapToXML(param);
}
生成的xml
<xml>
<sign>![CDATA[861D4992EB4C8C1E044EE874DB241A84]]</sign>
<body>![CDATA[sdfsdf]]</body>
<mch_id>![CDATA[1236523159]]</mch_id>
<product_id>![CDATA[1]]</product_id>
<spbill_create_ip>![CDATA[10.100.1.20]]</spbill_create_ip>
<total_fee>![CDATA[100]]</total_fee>
<notify_url>![CDATA[http://www.weixin.com/mobile/weixin/weixin_pay_result.jsp]]
</notify_url>
<appid>![CDATA[wx6a1ed640f5a09b19]]</appid>
<out_trade_no>![CDATA[1509506925f3981795-af0c-4931-af3a-3c8b7f732433]]
</out_trade_no>
<nonce_str>![CDATA[MC4zMjcxMzY1NDU1MjM1MDE3OjpXZW]]</nonce_str>
<trade_type>![CDATA[MWEB]]</trade_type>