diff --git a/New_College.Api/Controllers/Front/WeixinPayController.cs b/New_College.Api/Controllers/Front/WeixinPayController.cs
index 5423ddf..6501f64 100644
--- a/New_College.Api/Controllers/Front/WeixinPayController.cs
+++ b/New_College.Api/Controllers/Front/WeixinPayController.cs
@@ -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
}
- ///
- /// 暂时不用有bug
- ///
- ///
- ///
- [HttpPost]
- [AllowAnonymous]
- public async Task 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; }
- }
+
+
}
diff --git a/New_College.Api/New_College.xml b/New_College.Api/New_College.xml
index c56e570..fd57535 100644
--- a/New_College.Api/New_College.xml
+++ b/New_College.Api/New_College.xml
@@ -1016,13 +1016,6 @@
-
-
- 暂时不用有bug
-
-
-
-
服务器接口,因为是模板生成,所以首字母是大写的,自己可以重构下
diff --git a/New_College.Common/Helper/WeChatPaySignatureValidatorHelper.cs b/New_College.Common/Helper/WeChatPaySignatureValidatorHelper.cs
deleted file mode 100644
index 7af2b59..0000000
--- a/New_College.Common/Helper/WeChatPaySignatureValidatorHelper.cs
+++ /dev/null
@@ -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
- {
- {"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 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密钥进行比对。如果比对成功,则签名验证通过。
- }
- }
- }
-}