protected void RefundQueryGridView_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "refundStatus") { int rowIndex = Convert.ToInt32(e.CommandArgument); string refundNo = refunds[rowIndex].refundNo.ToString(); BCRefundStatusQueryResult result = BCPay.BCRefundStatusQuery("WX", refundNo); Response.Write("<span style='color:#00CD00;font-size:20px'>" + result.resultCode + "</span><br/>"); Response.Write("<span style='color:#00CD00;font-size:20px'>" + result.resultMsg + "</span><br/>"); Response.Write("<span style='color:#00CD00;font-size:20px'>" + result.errDetail + "</span><br/>"); Response.Write("<span style='color:#00CD00;font-size:20px'>" + result.refundStatus + "</span><br/>"); } }
/// <summary> ///退款状态查询"(只支持微信) /// </summary> /// <param name="channel">渠道类型 /// 暂时只能填WX /// </param> /// <param name="refundNo">商户退款单号 /// </param> /// <returns> /// BCRefundStatusQueryResult /// </returns> public static BCRefundStatusQueryResult BCRefundStatusQuery(string channel, string refundNo) { Random random = new Random(); string refundStatusUrl = BCPrivateUtil.mLocalDefaultHosts[random.Next(0, 4)] + BCConstants.version + BCConstants.refundStatusURL; long timestamp = BCUtil.GetTimeStamp(DateTime.Now); JsonData data = new JsonData(); data["app_id"] = BCCache.Instance.appId; data["app_sign"] = BCPrivateUtil.getAppSignature(BCCache.Instance.appId, BCCache.Instance.appSecret, timestamp.ToString()); data["timestamp"] = timestamp; data["channel"] = channel; data["refund_no"] = refundNo; string paraString = data.ToJson(); string url = refundStatusUrl + "?para=" + HttpUtility.UrlEncode(paraString, Encoding.UTF8); try { HttpWebResponse response = BCPrivateUtil.CreateGetHttpResponse(url, BCCache.Instance.networkTimeout, null, null); string respString = BCPrivateUtil.GetResponseString(response); JsonData responseData = JsonMapper.ToObject(respString); BCRefundStatusQueryResult result = new BCRefundStatusQueryResult(); result.resultCode = int.Parse(responseData["result_code"].ToString()); result.resultMsg = responseData["result_msg"].ToString(); if (responseData["result_code"].ToString() == "0") { result.refundStatus = responseData["refund_status"].ToString(); } else { result.errDetail = responseData["err_detail"].ToString(); } return(result); } catch (Exception e) { BCRefundStatusQueryResult result = new BCRefundStatusQueryResult(); result.resultCode = 99; result.resultMsg = e.Message; return(result); } }