微信支付回调NOTIFY_URL始终为空的问题

fm4399 2016-07-30 09:30:18
我是做微信支付的菜鸟,下载了官方的.net实例,采用模式二扫码支付的方式,按照配置,我配置了回调地址:

采用模式二扫描支付的方式

但当我用微信扫描支付完成后,调用回调地址时,却发现里面是空的XML没有数据,这是怎么回事,该如何做,请老师们指点~
...全文
1418 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南小鱼 2017-04-01
  • 打赏
  • 举报
回复
但当我用微信扫描支付完成后,调用回调地址时,却发现里面是空的XML没有数据 哥只做过jsapi支付,对扫码支付没涉及,据哥了解,回调地址是腾讯调用的,并非你调用。
threenewbee 2017-03-31
  • 打赏
  • 举报
回复
http://www.cnblogs.com/zhangs1986/p/4469506.html
戴跃雄 2017-03-31
  • 打赏
  • 举报
回复
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; try { #region //获取微信返回数据流 Stream s = Current.Request.InputStream; int count = 0; byte[] buffer = new byte[1024]; System.Text.StringBuilder builder = new System.Text.StringBuilder(); while ((count = s.Read(buffer, 0, 1024)) > 0) { builder.Append(System.Text.Encoding.UTF8.GetString(buffer, 0, count)); } s.Flush(); s.Close(); s.Dispose(); string xmlString = builder.ToString(); XmlDocument xml = new XmlDocument(); xml.LoadXml(xmlString); #endregion if (xml.SelectSingleNode("/xml/result_code").InnerText.Equals("SUCCESS")) //支付成功 { var out_trade_no = xml.SelectSingleNode("/xml/out_trade_no").InnerText; //商户订单号 var total_fee_str = xml.SelectSingleNode("/xml/total_fee").InnerText; //客户实付金额 float total_fee = 0; float.TryParse(total_fee_str, out total_fee); context.Response.Write(makeXML(true)); } else //支付失败 { context.Response.Write(makeXML(false)); } } catch (Exception e) { System.IO.File.AppendAllText(Current.Server.MapPath("/logs/log.log"), "\r\n" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\r\n" + e.Message + "\r\n"); context.Response.Write(makeXML(false)); } } 写个ashx,把上面代码复制上去就行了
江南小鱼 2016-11-23
  • 打赏
  • 举报
回复
撸主,微信支付大概是这么个流程: 1、先发起预支付,腾讯会返回一个预交易id 2、用第一步返回的预交易id发起支付(post请求给腾讯的时候,会把回调地址传过去),腾讯受理成功后,会回调你配置的回调地址(在回调页面,你才真实的去在你的系统去做真实的交易) 回调是给腾讯调用的撒
sirbo007 2016-11-23
  • 打赏
  • 举报
回复
ResultNotifyPage.aspx
是支付成功后, 微信服务器异步通知你程序 支付结果用的
微信服务器会提交一组xml数据给你这个 ResultNotifyPage.aspx, 你要通过xml对象来解析这些返回的数据
做验证判断
还有, ResultNotifyPage.aspx 的路径绝对要保密,因为可能会被别人利用,做欺骗的

返回数据参考格式 (网络照搬)
<xml>
<appid><![CDATA[wx8888888888888888]]></appid>
<bank_type><![CDATA[CFT]]></bank_type>
<fee_type><![CDATA[CNY]]></fee_type>
<is_subscribe><![CDATA[Y]]></is_subscribe>
<mch_id><![CDATA[10012345]]></mch_id>
<nonce_str><![CDATA[60uf9sh6nmppr9azveb2bn7arhy79izk]]></nonce_str>
<openid><![CDATA[ou9dHt0L8qFLI1foP-kj5x1mDWsM]]></openid>
<out_trade_no><![CDATA[wx88888888888888881414411779]]></out_trade_no>
<result_code><![CDATA[SUCCESS]]></result_code>
<return_code><![CDATA[SUCCESS]]></return_code>
<sign><![CDATA[0C1D7F2534F1473247550A5A138F0CEB]]></sign>
<sub_mch_id><![CDATA[10012345]]></sub_mch_id>
<time_end><![CDATA[20141027200958]]></time_end>
<total_fee>1</total_fee>
<trade_type><![CDATA[JSAPI]]></trade_type>
<transaction_id><![CDATA[1002750185201410270005514026]]></transaction_id>
</xml>
fm4399 2016-07-30
  • 打赏
  • 举报
回复
那通过用户微信支付后,我应该怎么知道是否已支付了呢,怎么获取支付的数据呢
  • 打赏
  • 举报
回复
回调地址是给腾讯用户 -> 回调地址是给腾讯用的 当用户在自己的手机上支付成功,微信支付平台的服务器就会作为客户端而访问你的web服务器,访问 ResultNotifyPage.aspx 来通知此事件。 如果你连这个时序都没有搞清楚,那么你对 ResultNotifyPage.aspx 的代码肯定也就一点都看不懂了。 另外,就算是胡乱调用它,为什么“返回为空”作为一个程序员也应该是调试、知道为什么的。不可能稀里糊涂地抛给别人的。
  • 打赏
  • 举报
回复
调用回调地址?回调地址是给腾讯用户,你调它干什么? 搞清楚微信支付流程时序,不要张冠李戴。
fm4399 2016-07-30
  • 打赏
  • 举报
回复
回调ResultNotifyPage.aspx内容:

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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