已折磨两天!求助!!微信支付回调页面不能触发

米迷 2015-12-15 02:56:50
用的是官方给的.net版demo。

支付能成功。前台也能返回get_brand_wcpay_request:ok

回调页面已经设置过了,外网可以直接访问。
public const string NOTIFY_URL = "http://服务器域名/example/ResultNotifyPage.aspx";

ResultNotifyPage.aspx后台代码如下


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;
}

}
...全文
579 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34888284 2016-05-05
  • 打赏
  • 举报
回复
我的不能执行回调。谁告诉我一下。
米迷 2015-12-18
  • 打赏
  • 举报
回复
已解决。因为服务器没有写LOGO的权限,我以为没有调用到回调页面,后来我在回调页面里加一个写数据库的操作。发现是可以执行的。感谢1楼,结贴。
qq_33380734 2015-12-16
  • 打赏
  • 举报
回复
你先看下你回调页面接口地址是否设置的正确,看一下这个接口能否收到微信发来的请求,如果能收到,可能是你处理微信发来的xml数据处理的不对。如果连请求都收不到,就说明你回调地址写的就有问题,微信的请求根本没发到你这个接口上。先试着一步一步解决问题

3,143

社区成员

发帖
与我相关
我的任务
社区描述
微信开发即微信公众平台开发,将企业信息、服务、活动等内容通过微信网页的方式进行表现,通过二次开发可以将公众账号由一个媒体型营销工具转化成提供服务的产品。
社区管理员
  • 微信开发
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧