source/HF.Core/HF.Finance.Data/WeiXin/ResultNotify.cs
(开头部分) 6KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HF.Framework;
using System.Data;
using HF.Finance.Data;
namespace HF.Util.WxPayAPI
{
/// <summary>
/// 支付结果通知回调处理类
/// 负责接收微信支付后台发送的支付结果并对订单有效性进行验证,将验证结果反馈给微信支付后台
/// </summary>
public class ResultNotify:Notify
{
public ResultNotify(Page page):base(page)
{
}
public override void ProcessNotify()
{
WxPayData notifyData = GetNotifyData();
//检查支付结果中transaction_id是否存在
if (!notifyData.IsSet("transaction_id"))
{
//若transaction_id不存在,则立即返回结果给微信支付后台
WxPayData res = new WxPayData();
res.SetValue("return_code", "FAIL");
res.SetValue("return_msg", "支付结果中微信订单号不存在");
LogHelper.Error(this.GetType().ToString(), "The Pay result is error : " + res.ToXml());
page.Response.Write(res.ToXml());
page.Response.End();
}
if (!notifyData.IsSet("attach"))
{
WxPayData res = new WxPayData();
res.SetValue("return_code", "FAIL");
res.SetValue("return_msg", "回调时attach参数没有返回");//存应收款Id
LogHelper.Error(this.GetType().ToString(), "回调时attach参数没有返回, " + res.ToXml());
page.Response.Write(res.ToXml());
page.Response.End();
}
string transaction_id = notifyData.GetValue("transaction_id").ToString();
string recid = notifyData.GetValue("attach").ToString();
string total_fee = notifyData.GetValue("total_fee").ToString();
ReceivablesData receivData = new ReceivablesData();
DataRow recRow = receivData.GetDataRow("Finance_Receivables", "Id", recid);
if(recRow==null)
{
//若订单查询失败,理论上调试成功后不允许出现为空的情况。
WxPayData res = new WxPayData();
res.SetValue("return_code", "FAIL");
res.SetValue("return_msg", "没找到应收款id=" + recid);
LogHelper.Error(this.GetType().ToString(), "没找到应收款id=" + recid);
page.Response.Write(res.ToXml());
page.Response.End();
}
string payStatus = recRow["PayStatus"].ToString();
后面还有 80 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读 AI
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
