public static WeiPayResult WeiXinPayOut(OutPayWeiInfo payinfos, string Mch_appid, string Mchid, string Check_Name, string _key) { SortedDictionary <string, string> dictionary = new SortedDictionary <string, string>(); dictionary.Add("mch_appid", Mch_appid); dictionary.Add("mchid", Mchid); dictionary.Add("nonce_str", payinfos.Nonce_Str); dictionary.Add("partner_trade_no", payinfos.Partner_Trade_No); dictionary.Add("openid", payinfos.Openid); dictionary.Add("check_name", Check_Name); dictionary.Add("amount", payinfos.Amount.ToString()); dictionary.Add("desc", payinfos.Desc); dictionary.Add("spbill_create_ip", Globals.ServerIP()); dictionary.Add("re_user_name", payinfos.Re_User_Name); dictionary.Add("device_info", ""); string str = _key; string str2 = ""; StringBuilder builder = new StringBuilder(); builder.AppendLine("<xml>"); foreach (string str3 in dictionary.Keys) { if (dictionary[str3] != "") { string str5 = str2; str2 = str5 + "&" + str3 + "=" + dictionary[str3]; builder.AppendLine("<" + str3 + ">" + dictionary[str3] + "</" + str3 + ">"); } } builder.AppendLine("<sign>" + GetMD5(str2.Remove(0, 1) + "&key=" + str, "utf-8").ToUpper() + "</sign>"); builder.AppendLine("</xml>"); HttpHelp help = new HttpHelp(); string xml = help.DoPost(WeiPayUrl, builder.ToString(), WeixinCertPassword, WeiXinCertPath); WeiPayResult result = new WeiPayResult { return_code = "FAIL", return_msg = "访问服务器出错了!", err_code = "SERVERERR", UserId = payinfos.UserId, Amount = payinfos.Amount, partner_trade_no = payinfos.Partner_Trade_No }; if (help.errstr != "") { result.return_msg = help.errstr; return(result); } try { XmlDocument document = new XmlDocument(); document.LoadXml(xml); result.return_code = document.SelectSingleNode("/xml/return_code").InnerText; result.return_msg = document.SelectSingleNode("/xml/return_msg").InnerText; if (result.return_code.ToUpper() == "SUCCESS") { result.result_code = document.SelectSingleNode("/xml/result_code").InnerText; if (result.result_code.ToUpper() == "SUCCESS") { result.mch_appid = document.SelectSingleNode("/xml/mch_appid").InnerText; result.mchid = document.SelectSingleNode("/xml/mchid").InnerText; result.device_info = document.SelectSingleNode("/xml/device_info").InnerText; result.nonce_str = document.SelectSingleNode("/xml/nonce_str").InnerText; result.result_code = document.SelectSingleNode("/xml/result_code").InnerText; result.partner_trade_no = document.SelectSingleNode("/xml/partner_trade_no").InnerText; result.payment_no = document.SelectSingleNode("/xml/payment_no").InnerText; result.payment_time = document.SelectSingleNode("/xml/payment_time").InnerText; return(result); } result.err_code = document.SelectSingleNode("/xml/err_code").InnerText; return(result); } result.err_code = "FAIL"; } catch (Exception exception) { Globals.Debuglog(xml, "_DebuglogBatchPayment.txt"); result.return_code = "FAIL"; result.return_msg = exception.Message.ToString(); } return(result); }
public static WeiPayResult WeiXinPayOut(OutPayWeiInfo payinfos, string Mch_appid, string Mchid, string Check_Name, string _key) { WeiPayResult weiPayResult; SortedDictionary <string, string> strs = new SortedDictionary <string, string>() { { "mch_appid", Mch_appid }, { "mchid", Mchid }, { "nonce_str", payinfos.Nonce_Str }, { "partner_trade_no", payinfos.Partner_Trade_No }, { "openid", payinfos.Openid }, { "check_name", Check_Name }, { "amount", payinfos.Amount.ToString() }, { "desc", payinfos.Desc }, { "spbill_create_ip", Globals.ServerIP() }, { "re_user_name", payinfos.Re_User_Name }, { "device_info", "" } }; string str = _key; string mD5 = ""; StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("<xml>"); foreach (string key in strs.Keys) { if (strs[key] != "") { string str1 = mD5; string[] item = new string[] { str1, "&", key, "=", strs[key] }; mD5 = string.Concat(item); item = new string[] { "<", key, ">", strs[key], "</", key, ">" }; stringBuilder.AppendLine(string.Concat(item)); } } mD5 = mD5.Remove(0, 1); mD5 = string.Concat(mD5, "&key=", str); mD5 = OutPayHelp.GetMD5(mD5, "utf-8"); mD5 = mD5.ToUpper(); stringBuilder.AppendLine(string.Concat("<sign>", mD5, "</sign>")); stringBuilder.AppendLine("</xml>"); HttpHelp httpHelp = new HttpHelp(); string str2 = httpHelp.DoPost(OutPayHelp.WeiPayUrl, stringBuilder.ToString(), OutPayHelp.WeixinCertPassword, OutPayHelp.WeiXinCertPath); WeiPayResult innerText = new WeiPayResult() { return_code = "FAIL", return_msg = "访问服务器出错了!", err_code = "SERVERERR", UserId = payinfos.UserId, Amount = payinfos.Amount, partner_trade_no = payinfos.Partner_Trade_No }; if (!(httpHelp.errstr != "")) { try { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(str2); innerText.return_code = xmlDocument.SelectSingleNode("/xml/return_code").InnerText; innerText.return_msg = xmlDocument.SelectSingleNode("/xml/return_msg").InnerText; if (!(innerText.return_code.ToUpper() == "SUCCESS")) { innerText.err_code = "FAIL"; } else { innerText.result_code = xmlDocument.SelectSingleNode("/xml/result_code").InnerText; if (!(innerText.result_code.ToUpper() == "SUCCESS")) { innerText.err_code = xmlDocument.SelectSingleNode("/xml/err_code").InnerText; } else { innerText.mch_appid = xmlDocument.SelectSingleNode("/xml/mch_appid").InnerText; innerText.mchid = xmlDocument.SelectSingleNode("/xml/mchid").InnerText; innerText.device_info = xmlDocument.SelectSingleNode("/xml/device_info").InnerText; innerText.nonce_str = xmlDocument.SelectSingleNode("/xml/nonce_str").InnerText; innerText.result_code = xmlDocument.SelectSingleNode("/xml/result_code").InnerText; innerText.partner_trade_no = xmlDocument.SelectSingleNode("/xml/partner_trade_no").InnerText; innerText.payment_no = xmlDocument.SelectSingleNode("/xml/payment_no").InnerText; innerText.payment_time = xmlDocument.SelectSingleNode("/xml/payment_time").InnerText; } } } catch (Exception exception1) { Exception exception = exception1; Globals.Debuglog(str2, "_DebuglogBatchPayment.txt"); innerText.return_code = "FAIL"; innerText.return_msg = exception.Message.ToString(); } weiPayResult = innerText; } else { innerText.return_msg = httpHelp.errstr; weiPayResult = innerText; } return(weiPayResult); }
public static WeiPayResult WeiXinPayOut(OutPayWeiInfo payinfos, string Mch_appid, string Mchid, string Check_Name, string _key) { SortedDictionary <string, string> sortedDictionary = new SortedDictionary <string, string>(); sortedDictionary.Add("mch_appid", Mch_appid); sortedDictionary.Add("mchid", Mchid); sortedDictionary.Add("nonce_str", payinfos.Nonce_Str); sortedDictionary.Add("partner_trade_no", payinfos.Partner_Trade_No); sortedDictionary.Add("openid", payinfos.Openid); sortedDictionary.Add("check_name", Check_Name); sortedDictionary.Add("amount", payinfos.Amount.ToString()); sortedDictionary.Add("desc", payinfos.Desc); sortedDictionary.Add("spbill_create_ip", Globals.ServerIP()); sortedDictionary.Add("re_user_name", payinfos.Re_User_Name); sortedDictionary.Add("device_info", ""); string text = ""; StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine("<xml>"); foreach (string current in sortedDictionary.Keys) { if (sortedDictionary[current] != "") { string text2 = text; text = string.Concat(new string[] { text2, "&", current, "=", sortedDictionary[current] }); stringBuilder.AppendLine(string.Concat(new string[] { "<", current, ">", sortedDictionary[current], "</", current, ">" })); } } text = text.Remove(0, 1); text = text + "&key=" + _key; text = OutPayHelp.GetMD5(text, "utf-8"); text = text.ToUpper(); stringBuilder.AppendLine("<sign>" + text + "</sign>"); stringBuilder.AppendLine("</xml>"); HttpHelp httpHelp = new HttpHelp(); string text3 = httpHelp.DoPost(OutPayHelp.WeiPayUrl, stringBuilder.ToString(), OutPayHelp.WeixinCertPassword, OutPayHelp.WeiXinCertPath); WeiPayResult weiPayResult = new WeiPayResult(); weiPayResult.return_code = "FAIL"; weiPayResult.return_msg = "访问服务器出错了!"; weiPayResult.err_code = "SERVERERR"; weiPayResult.UserId = payinfos.UserId; weiPayResult.Amount = payinfos.Amount; weiPayResult.partner_trade_no = payinfos.Partner_Trade_No; WeiPayResult result; if (httpHelp.errstr != "") { weiPayResult.return_msg = httpHelp.errstr; result = weiPayResult; } else { try { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(text3); weiPayResult.return_code = xmlDocument.SelectSingleNode("/xml/return_code").InnerText; weiPayResult.return_msg = xmlDocument.SelectSingleNode("/xml/return_msg").InnerText; if (weiPayResult.return_code.ToUpper() == "SUCCESS") { weiPayResult.result_code = xmlDocument.SelectSingleNode("/xml/result_code").InnerText; if (weiPayResult.result_code.ToUpper() == "SUCCESS") { weiPayResult.mch_appid = xmlDocument.SelectSingleNode("/xml/mch_appid").InnerText; weiPayResult.mchid = xmlDocument.SelectSingleNode("/xml/mchid").InnerText; weiPayResult.device_info = xmlDocument.SelectSingleNode("/xml/device_info").InnerText; weiPayResult.nonce_str = xmlDocument.SelectSingleNode("/xml/nonce_str").InnerText; weiPayResult.result_code = xmlDocument.SelectSingleNode("/xml/result_code").InnerText; weiPayResult.partner_trade_no = xmlDocument.SelectSingleNode("/xml/partner_trade_no").InnerText; weiPayResult.payment_no = xmlDocument.SelectSingleNode("/xml/payment_no").InnerText; weiPayResult.payment_time = xmlDocument.SelectSingleNode("/xml/payment_time").InnerText; } else { weiPayResult.err_code = xmlDocument.SelectSingleNode("/xml/err_code").InnerText; } } else { weiPayResult.err_code = "FAIL"; } } catch (Exception ex) { Globals.Debuglog(text3, "_DebuglogBatchPayment.txt"); weiPayResult.return_code = "FAIL"; weiPayResult.return_msg = ex.Message.ToString(); } result = weiPayResult; } return(result); }