3,143
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Xml.Linq;
using System.IO;
using System.Net;
using DingCanBLL;
public partial class example_ResultNotifyPage : System.Web.UI.Page
{
OrderBLL oBLL = new OrderBLL();
protected void Page_Load(object sender, EventArgs e)
{
string postStr = "";
/// <summary>
/// 微信支付回调
/// </summary>
/// <param name="xml"></param>
if (Request.HttpMethod.ToLower() == "post")
{
Stream s = System.Web.HttpContext.Current.Request.InputStream;
byte[] b = new byte[s.Length];
s.Read(b, 0, (int)s.Length);
postStr = Encoding.UTF8.GetString(b);
if (!string.IsNullOrEmpty(postStr))
{
//封装请求类
var res = XDocument.Parse(postStr);
if (res.Element("xml").Element("return_code").Value == "SUCCESS")
{
WriteTxt(string.Format(@"商户订单号:{0},订单状态:{1},金额:{2},时间:{3},openid:{4}",
res.Element("xml").Element("out_trade_no").Value,
res.Element("xml").Element("result_code").Value,
res.Element("xml").Element("total_fee").Value,
res.Element("xml").Element("time_end").Value,
res.Element("xml").Element("openid").Value
));
//保存订单信息,并返回微信应答
Response.Write(string.Format(@"<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>"));
//////////////////////////////////////////处理订单业务///////////////////////////////////
string orderid = Request.Cookies["orderid"].Value;
bool bol = oBLL.UpdateOrderState("2", orderid);
if (bol)
{
Response.Redirect("../AllOrder.aspx?sta=2");
}
else
{
Response.Write("<span style='color:#00CD00;font-size:20px'>订单状态更新失败。</span><br/>");
}
/////////////////////////////////////////////////////////////////////////////////////////////
}
else
{
WriteTxt(res.ToString());
Response.Write(string.Format(@"<xml>
<return_code><![CDATA[{0}]]></return_code>
<return_msg><![CDATA[{1}]]></return_msg>
</xml>", "FAIL", res.Element("xml").Element("return_msg").Value));
}
}
}
}
/// <summary>
/// 记录bug,以便调试
/// </summary>
/// <returns></returns>
public bool WriteTxt(string str)
{
try
{
FileStream fs = new FileStream(Server.MapPath("success.txt"), FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
//开始写入
sw.WriteLine("");
sw.WriteLine("--------" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "------------");
sw.WriteLine("");
sw.WriteLine(str);
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
}
catch (Exception)
{
return false;
}
return true;
}
}