feat:去掉不需要的代码内容

develop
old易 2024-01-25 17:57:05 +08:00
parent f44b0ff515
commit 7dd0560323
3 changed files with 4 additions and 205 deletions

View File

@ -190,17 +190,7 @@ namespace New_College.Api.Controllers.Front
}
};
// WebHookHelper.WebHookmarkdownSend("Check sign success");
//检查支付结果中transaction_id是否存在
//if (!data.IsSet("transaction_id"))
//{
// DingHookHelper.DingTalkHookMessage("回调PayNotify", "支付结果中微信订单号不存在");
// //若transaction_id不存在则立即返回结果给微信支付后台
// res.SetValue("return_code", "FAIL");
// res.SetValue("return_msg", "支付结果中微信订单号不存在");
// //WebHookHelper.WebHookmarkdownSend("支付结果中微信订单号不存在");
// return Content(res.ToXml(), "text/xml");
//}
// 执行订单状态操作
string out_trade_no = data.GetValue("out_trade_no").ToString();
logger.LogInformation("开始回调PayNotify" + out_trade_no);
@ -312,124 +302,13 @@ namespace New_College.Api.Controllers.Front
}
/// <summary>
/// 暂时不用有bug
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public async Task<IActionResult> NewPayNotify(WeChatPayCallobject model)
{
DingHookHelper.DingTalkHookMessage("开始回调PayNotify", "开始回调PayNotify");
// 处理微信支付回调数据
if (model.event_type == "TRANSACTION.SUCCESS")
{
DingHookHelper.DingTalkHookMessage("result_code", "SUCCESS");
// 订单支付成功处理逻辑
var info = await v_OrderInfoRepository.Query(x => x.out_trade_no == "");
if (info.Count <= 0)
{
DingHookHelper.DingTalkHookMessage("回调PayNotify", "在自有平台未找到该订单号" + "");
//WebHookHelper.WebHookmarkdownSend("支付结果中微信订单号不存在");
return Content("\"return_code\", \"FAIL\"");
}
var oneinfo = info.FirstOrDefault();
oneinfo.Status = EnumOrderType.payoff;
var rep = await v_OrderInfoRepository.Update(oneinfo);
if (rep)
{
DingHookHelper.DingTalkHookMessage("支付回调成功", oneinfo.out_trade_no + ":修改为VIP");
//修改用户信息 修改为VIp
var customerinfo = await v_CustomerInfoRepository.QueryById(oneinfo.CustomerId);
customerinfo.IsVIP = true;
customerinfo.VipCode = oneinfo.CardNo;
await v_CustomerInfoRepository.Update(customerinfo);
var oldorderlist = await v_OrderInfoRepository.Query(c => c.CustomerId == oneinfo.CustomerId && c.Status == EnumOrderType.payment);
oldorderlist.ForEach(async a =>
{
a.Status = EnumOrderType.Cancel;
await v_OrderInfoRepository.Update(a);
});
//支付成功后根据用户code找到对应用户修改vip 状态
return Ok("SUCCESS");
}
else
{
// string attach = data.GetValue("attach").ToString();
// WebHookHelper.WebHookmarkdownSend(attach);
DingHookHelper.DingTalkHookMessage("回调PayNotify", "在自有平台未找到该订单号" + "");
//res.SetValue("return_code", "FAIL");
//res.SetValue("return_msg", "在自有平台未找到该订单号");
return Content("\"return_code\", \"FAIL\"");
}
}
//else if (model.result_code == "FAIL")
//{
// DingHookHelper.DingTalkHookMessage("result_code", "订单支付失败处理逻辑");
// 订单支付失败处理逻辑...
//}
return Content("SUCCESS");
}
}
public class WeChatPayCallobject
{
public string id { get; set; }
public DateTime create_time { get; set; }
public string resource_type { get; set; }
public string event_type { get; set; }
public string summary { get; set; }
public Resource resource { get; set; }
}
public class Resource
{
public string original_type { get; set; }
public string algorithm { get; set; }
public string ciphertext { get; set; }
public string associated_data { get; set; }
public string nonce { get; set; }
}
public class WeChatPayCallbackModel
{
public string return_code { get; set; }
public string return_msg { get; set; }
public string appid { get; set; }
public string mch_id { get; set; }
public string nonce_str { get; set; }
public string sign { get; set; }
public string result_code { get; set; }
public string openid { get; set; }
public string is_subscribe { get; set; }
public string trade_type { get; set; }
public string bank_type { get; set; }
public string total_fee { get; set; }
public string fee_type { get; set; }
public string transaction_id { get; set; }
public string out_trade_no { get; set; }
public string attach { get; set; }
public string time_end { get; set; }
}
}

View File

@ -1016,13 +1016,6 @@
</summary>
<returns></returns>
</member>
<member name="M:New_College.Api.Controllers.Front.WeixinPayController.NewPayNotify(New_College.Api.Controllers.Front.WeChatPayCallobject)">
<summary>
暂时不用有bug
</summary>
<param name="model"></param>
<returns></returns>
</member>
<member name="F:New_College.Api.Controllers.HighSchoolRankController._d_HighSchoolRankServices">
<summary>
服务器接口,因为是模板生成,所以首字母是大写的,自己可以重构下

View File

@ -1,73 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace New_College.Common.Helper
{
public class WeChatPaySignatureValidator
{
private readonly string appId;
private readonly string mchId;
private readonly string apiKey;
//public WeChatPaySignatureValidator(string appId, string mchId, string apiKey)
//{
// this.appId = appId;
// this.mchId = mchId;
// this.apiKey = apiKey;
//}
public static bool VerifySignature(string returnCode, string returnMsg, string appId, string mchId, string nonceStr, string sign, string resultCode)
{
// 获取微信支付回调的全部参数,包括商户自定义参数等。
var allParams = new SortedDictionary<string, string>
{
{"return_code", returnCode},
{"return_msg", returnMsg},
{"appid", appId},
{"mch_id", mchId},
{"nonce_str", nonceStr},
{"sign", sign},
{"result_code", resultCode}
// 这里可以添加其他商户自定义的参数,并按照字典序排序。
};
// 将所有参数按照键值对的形式拼接成一个字符串。
var strToBeSigned = JoinByKey(allParams);
// 验证签名如果验证通过则返回true否则返回false。
return CheckSignature(strToBeSigned, WeixinConfig.APIv3Key);
}
private static string JoinByKey(SortedDictionary<string, string> dict)
{
var sb = new StringBuilder();
foreach (var kv in dict)
{
sb.Append(kv.Key);
sb.Append("=");
sb.Append(kv.Value);
sb.Append("&");
}
// 去掉最后一个"&"字符。
if (sb.Length > 0) sb.Length -= 1;
return sb.ToString();
}
private static bool CheckSignature(string strToBeSigned, string apiSecret)
{
// 使用商户的API密钥进行签名验证。这里使用SHA256算法进行加密。
using (var sha256 = SHA256.Create())
{
var dataToBeSigned = Encoding.UTF8.GetBytes(strToBeSigned);
var dataSigned = sha256.ComputeHash(dataToBeSigned);
var dataSignedBase64 = Convert.ToBase64String(dataSigned);
return apiSecret == dataSignedBase64; // 这里将签名结果与商户的API密钥进行比对。如果比对成功则签名验证通过。
}
}
}
}