Yi.Framework.Net6/Yi.Framework.WeChatPay/Core/Notify/ResultNotify.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
namespace Yi.Framework.WeChatPay.Core
{
public class ResultNotify : AbstractNotify
{
private readonly PayApi _PayApi;
private readonly ILogger<ResultNotify> _logger;
public ResultNotify(PayApi PayApi,ILogger<ResultNotify> logger, IHttpContextAccessor httpContextAccessor) :base(httpContextAccessor)
{
this._PayApi = PayApi;
this._logger = logger;
}
/// <summary>
/// 处理支付回调
/// </summary>
/// <returns></returns>
public override PayData ProcessNotify()
{
PayData notifyData = GetNotifyData();
//解析数据
string totalFee = notifyData.GetValue("total_fee").ToString(); //订单金额
string outTradeNo = notifyData.GetValue("out_trade_no").ToString(); //订单编号
string transactionId = notifyData.GetValue("transaction_id").ToString(); //商户订单号
string bankType = notifyData.GetValue("bank_type").ToString(); //银行类型
_logger.LogInformation($"======支付回调参数:{totalFee}=={outTradeNo}=={transactionId}=={bankType}");
if (totalFee.Equals("") || outTradeNo.Equals("") || transactionId.Equals("") || bankType.Equals(""))
{
PayData res = new();
res.SetValue("return_code", "FAIL");
res.SetValue("return_msg", "支付回调返回数据不正确");
_logger.LogInformation("支付错误结果 : " + res.ToXml());
return res;
}
//检查支付结果中transaction_id是否存在--流水号
if (!notifyData.IsSet("transaction_id"))
{
//若transaction_id不存在,则立即返回结果给微信支付后台
PayData res = new();
res.SetValue("return_code", "FAIL");
res.SetValue("return_msg", "支付结果中微信订单号不存在");
_logger.LogInformation("支付错误结果 : " + res.ToXml());
return res;
}
//查询订单,判断订单真实性
if (!QueryOrder(transactionId))
{
//若订单查询失败,则立即返回结果给微信支付后台
PayData res = new();
res.SetValue("return_code", "FAIL");
res.SetValue("return_msg", "订单查询失败");
_logger.LogInformation("订单查询失败 : " + res.ToXml());
return res;
后面还有 41 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
