woainiliushuning
MOnkey?
采纳率75%
2017-10-31 08:31

微信 支付,{return_msg=mch_id参数格式错误, return_code=FAIL}

5
已采纳

{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>

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • woainiliushuning MOnkey? 4年前

    我的商户号对了好几遍,没有错误啊,不就是 申请成功后给的商户号吗。而且我把商户号这个参数去掉了,它还是报这个错误。

    点赞 2 评论 复制链接分享
  • weixin_46579966 weixin_46579966 1年前

    return_msg=mch_id

    点赞 评论 复制链接分享
  • sqlstar 南瓜虫 3年前

    也是报错:mch_id参数格式错误

    大佬们,帮忙看看这个有什么问题:

    《appid》《![CDATA[wx4562b5fc04722c84]]》《/appid》
    《mch_id》《![CDATA[1434555465]]》《/mch_id》
    《sub_mch_id》《![CDATA[1788623152]]》《/sub_mch_id》
    《nonce_str》《![CDATA[1add1a30ac87aa2db72f57a2375d8fec]]》《/nonce_str》
    《sign》《![CDATA[0CB01533B8C1EF103065174F50BCA001]]》《/sign》
    《body》《![CDATA[body1234]]》《/body》
    《out_trade_no》《![CDATA[8774040423F040ba8AD16C329D4C4285]]》《/out_trade_no》
    《total_fee》《![CDATA[99]]》《/total_fee》
    《spbill_create_ip》《![CDATA[123.12.12.123]]》《/spbill_create_ip》
    《notify_url》《![CDATA[http://wxpay.wxutil.com/pub_v2/pay/notify.v2.php]]》《/notify_url》
    《trade_type》《![CDATA[MWEB]]》《/trade_type》
    《scene_info》《![CDATA[{"h5_info": {"type":"Wap","wap_url": "https://pay.qq.com","wap_name": "腾讯充值"}}]]》《/scene_info》

    点赞 1 评论 复制链接分享
  • sqlstar 南瓜虫 3年前

    大佬们,帮忙看看这个有什么问题:

    <![CDATA[wx4562b5fc04722c84]]>
    <![CDATA[1434555465]]>
    <![CDATA[1788623152]]>
    <![CDATA[1add1a30ac87aa2db72f57a2375d8fec]]>
    <![CDATA[0CB01533B8C1EF103065174F50BCA001]]>

    <![CDATA[body1234]]>
    <![CDATA[8774040423F040ba8AD16C329D4C4285]]>
    <![CDATA[99]]>
    <![CDATA[123.12.12.123]]>
    <![CDATA[http://wxpay.wxutil.com/pub_v2/pay/notify.v2.php]]>
    <![CDATA[MWEB]]>
    <![CDATA[{"h5_info": {"type":"Wap","wap_url": "https://pay.qq.com","wap_name": "腾讯充值"}}]]>
    点赞 1 评论 复制链接分享
  • showbo GoCityPass新加坡曼谷通票 4年前

    10位数字,不要把@...重复的那部分加上

    点赞 1 评论 复制链接分享
  • weixin_40871771 weixin_40871771 4年前

    mch_id是微信商户平台的账号,纯数字,10位左右吧,地址是pay.weixin.qq.com

    点赞 评论 复制链接分享
  • ejiao1233 alunSemiconductor 4年前

    不是写了商户号参数格式错误了么

    点赞 评论 复制链接分享