收藏
回答

微信支付 申请退款 报(400) 错误的请求 ?

微信支付 申请退款 报(400) 错误的请求 ?

   var url = "https://api.mch.weixin.qq.com/secapi/pay/refund";

            string strA = "appid=" + appid + "&mch_id=" + mch_id + "&nonce_str=" + nonce_str + "&out_trade_no=" + out_trade_no

                + "&total_fee=" + total_fee + "&out_refund_no=" + out_refund_no + "&refund_fee=" + refund_fee;

            string strk = strA + "&key=" + _keyGroup; //key为商户平台设置的密钥key(假)

            string strMD5 = MD5(strk).ToUpper();//MD5签名 

            var formData = "<xml>";

            formData += "<appid>" + appid + "</appid>";//appid  

            formData += "<mch_id>" + mch_id + "</mch_id>";//商户号 

            formData += "<nonce_str>" + nonce_str + "</nonce_str>";//随机字符串,不长于32位。 

            formData += "<out_refund_no>" + out_refund_no + "</out_refund_no>";//商户退款单号

            formData += "<out_trade_no>" + out_trade_no + "</out_trade_no>";//商户订单号  --待   

            formData += "<refund_fee>" + refund_fee + "</refund_fee>";//退款金额

            formData += "<total_fee>" + total_fee + "</total_fee>";//支付金额单位为(分)

            formData += "<sign>" + strMD5 + "</sign>"; //签名

            formData += "</xml>";

     

            //请求数据

            var getdata = sendPost(url, formData);



/// <summary>

        /// wx统一下单请求数据

        /// </summary>

        /// <param name="URL">请求地址</param>

        /// <param name="urlArgs">参数</param>

        /// <returns></returns>

        private static string sendPost(string URL, string urlArgs)

        {

            //context.Request["args"]

            System.Net.WebClient wCient = new System.Net.WebClient();

            wCient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

            byte[] postData = System.Text.Encoding.UTF8.GetBytes("body=" + urlArgs);


            byte[] responseData = wCient.UploadData(URL, "POST", postData);


            string returnStr = System.Text.Encoding.UTF8.GetString(responseData);//返回接受的数据 

            return returnStr;

        }

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

1 个回答

  • Memory (私信不回复)
    Memory (私信不回复)
    2023-03-20

    V2退款接口请求需要携带商户证书

    2023-03-20
    有用 1
    回复 5
    • 汤(软件开发)
      汤(软件开发)
      2023-03-20
      携带商户证书?是指的放在请求接口那边吗?还是直接下载证书放到服务器即可?
      2023-03-20
      回复
    • Memory (私信不回复)
      Memory (私信不回复)
      2023-03-20回复汤(软件开发)
      接口请求携带
      2023-03-20
      回复
    • 汤(软件开发)
      汤(软件开发)
      2023-03-20
      指定的网络密码不正确。
      2023-03-20
      回复
    • 汤(软件开发)
      汤(软件开发)
      2023-03-20
      这次报签名错误:
          string strA = &quot;appid=&quot; + appid + &quot;&amp;mch_id=&quot; + mch_id + &quot;&amp;nonce_str=&quot; + nonce_str + &quot;&amp;out_trade_no=&quot; + out_trade_no
                      + &quot;&amp;total_fee=&quot; + total_fee + &quot;&amp;out_refund_no=&quot; + out_refund_no + &quot;&amp;refund_fee=&quot; + refund_fee;
                  string strk = strA + &quot;&amp;key=&quot; + _keyGroup; //key为商户平台设置的密钥key(假)
                  string strMD5 = MD5(strk).ToUpper();//MD5签名
                  var formData = &quot;&lt;xml>&quot;;
                  formData += &quot;&lt;appid>&quot; + appid + &quot;&lt;/appid>&quot;;//appid
                  formData += &quot;&lt;mch_id>&quot; + mch_id + &quot;&lt;/mch_id>&quot;;//商户号
                  formData += &quot;&lt;nonce_str>&quot; + nonce_str + &quot;&lt;/nonce_str>&quot;;//随机字符串,不长于32位。
                  formData += &quot;&lt;out_refund_no>&quot; + out_refund_no + &quot;&lt;/out_refund_no>&quot;;//商户退款单号
                  formData += &quot;&lt;out_trade_no>&quot; + out_trade_no + &quot;&lt;/out_trade_no>&quot;;//商户订单号 --待
                  formData += &quot;&lt;refund_fee>&quot; + refund_fee + &quot;&lt;/refund_fee>&quot;;//退款金额
                  formData += &quot;&lt;total_fee>&quot; + total_fee + &quot;&lt;/total_fee>&quot;;//支付金额单位为(分)
                  formData += &quot;&lt;sign>&quot; + strMD5 + &quot;&lt;/sign>&quot;; //签名
                  formData += &quot;&lt;/xml>&quot;;
      2023-03-20
      回复
    • Memory (私信不回复)
      Memory (私信不回复)
      2023-03-20回复汤(软件开发)
      我建议你去用sdk吧https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay6_0.shtml
      2023-03-20
      回复
登录 后发表内容