收藏
回答

参数错误:输入的商户订单号有误,会不会是由其它原因引起的,如果不是,订单号该怎么写?

{xml=

SUCCESS

参数错误:输入的商户订单号有误

FAIL

PARAM_ERROR

参数错误:输入的商户订单号有误

, err_code=PARAM_ERROR, return_msg=参数错误:输入的商户订单号有误, result_code=FAIL, err_code_des=参数错误:输入的商户订单号有误, return_code=SUCCESS}

parameterMap.put("out_trade_no", "202412201932");//商户订单号


回答关注问题邀请回答
收藏

2 个回答

  • me
    me
    1天前
    try {
                //项目保存的插件对象,不用在意,只要有mchId即可
                String  mch_id = WeChatConfig.WX_APP_MCH_ID;
                //用来生成32位随机字符
                String  nonceStr = WXPayUtil.generateNonceStr();
                Map parameterMap = new HashMap<>();
                parameterMap.put("appid", WeChatConfig.WX_APP_ID);//商户账号appid
                parameterMap.put("mch_id", mch_id);//商户号
                parameterMap.put("nonce_str", nonceStr);//随机字符串
                parameterMap.put("out_trade_no", "202412201932");//商户订单号
                parameterMap.put("openid", openId);//用户openid
                parameterMap.put("check_name", "NO_CHECK");//校验用户姓名选项
                parameterMap.put("trade_type", "APP");//交易类型
                parameterMap.put("body", "提现");//商品描述
    //            parameterMap.put("spbill_create_ip", WeChatConfig.WX_CREATE_IP);
    //            parameterMap.put("notify_url", "http://yuanxin2.sjzyuanxin.com:8080/api/wxNotify");//通知地址
                // 单位:分
                parameterMap.put("sign_type", "MD5");//金额
                parameterMap.put("total_fee", String.valueOf(amount));//金额
                parameterMap.put("timeStamp", String.valueOf(System.currentTimeMillis() / 1000));
    //            parameterMap.put("desc", "提现");//企业付款备注
                // 生成签名信息
                SortedMap signMap;
    //            signMap = WeChatPayUtils.insertSignInfo(nonceStr);
    //            String sign = WeChatPayUtils.createSign(signMap, WeChatConfig.WX_APP_PRIVATE_KEY);
    //            String sign = WeChatPayUtils.createSign(signMap, "ff0f99b51203a30*************");
                System.out.println("sign:" + generateSign(parameterMap));
                parameterMap.put("sign", generateSign(parameterMap));//签名
    
                //map转为xml工具类
                String postDataXML = XMLUtils.mapToXml(parameterMap, true);
                System.out.println("postDataXML:" + postDataXML);
                //调用微信提现请求
                String result = sendPost(postDataXML, mch_id);
                //微信返回xml类型的结果转为map
                Map  responseMap = XMLUtils.xmlToMap(result);
    
                System.out.println(responseMap.toString());
    
                return  "提现成功!";
            } catch (Exception e) {
                return  "提现失败:" + e.getMessage();
            }
        }
    


    1天前
    有用
    回复
  • Memory
    Memory
    1天前

    把请求接口,完整请求参数贴出来,单看这一个看不出问题

    1天前
    有用
    回复 8
    • me
      me
      1天前
      我这是在main里测试
      1天前
      回复
    • me
      me
      1天前
      public static String withdrawalCash(String openId, BigDecimal amount) {
      1天前
      回复
    • Memory
      Memory
      1天前回复me
      你这参数怎么乱七八糟的?
      1天前
      回复
    • me
      me
      1天前
      那应该是什么参数?转账和支付用的是一个密钥吗
      1天前
      回复
    • me
      me
      1天前
      apiclient_cert.p12转账是用这个证书吗
      1天前
      回复
    查看更多(3)
登录 后发表内容