|
@@ -24,6 +24,87 @@ namespace MySystem.Areas.Api.Controllers.v1
|
|
|
}
|
|
|
|
|
|
|
|
|
+ #region 支付宝服务平台支付回调
|
|
|
+ public string Notice()
|
|
|
+ {
|
|
|
+ StreamReader sr = new StreamReader(Request.Body);
|
|
|
+ string requestMes = sr.ReadToEnd();
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + "\r\n" + requestMes + "\r\n\r\n", "支付宝服务平台支付回调");
|
|
|
+ return PayCallBack(new AlipayFunction(_accessor.HttpContext).AlipayPublicKey, requestMes);
|
|
|
+ }
|
|
|
+
|
|
|
+ public string PayCallBack(string publickey, string requestMes, bool IsRedis = false)
|
|
|
+ {
|
|
|
+ // Library.function.WriteLog(requestMes, "支付宝回调日志");
|
|
|
+ var result = "fail";
|
|
|
+ var sPara = GetRequestPost(requestMes);
|
|
|
+ if (sPara.Count > 0) //判断是否有带返回参数
|
|
|
+ {
|
|
|
+ // Library.function.WriteLog("有参数", "支付宝回调日志");
|
|
|
+ bool verifyResult = false;
|
|
|
+ var aliNotify = new Com.Alipay.Notify();
|
|
|
+ string signtype = sPara["sign_type"];
|
|
|
+ var total_fee = 0m;
|
|
|
+ string strPrice = sPara["total_amount"];//金额
|
|
|
+ decimal.TryParse(strPrice, out total_fee);
|
|
|
+ verifyResult = AlipaySignature.RSACheckV1(sPara, publickey, "UTF-8", signtype, false);
|
|
|
+ // Library.function.WriteLog(verifyResult.ToString(), "支付宝回调日志");
|
|
|
+ if (verifyResult) //验证成功
|
|
|
+ {
|
|
|
+ // Library.function.WriteLog("验证成功\r\n\r\n", "支付宝回调日志");
|
|
|
+ //商户订单号
|
|
|
+ string out_trade_no = sPara["out_trade_no"];
|
|
|
+ //支付宝交易号
|
|
|
+ string trade_no = sPara["trade_no"];
|
|
|
+ //交易状态 TRADE_SUCCESS
|
|
|
+ string trade_status = sPara["trade_status"];
|
|
|
+
|
|
|
+ //交易成功
|
|
|
+ if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS")
|
|
|
+ {
|
|
|
+ RedisDbconn.Instance.AddList("PayCallBack", "{\"out_trade_no\":\"" + out_trade_no + "\",\"transaction_id\":\"" + trade_no + "\",\"total_fee\":\"" + total_fee + "\",\"pay_mode\":\"1\",\"openid\":\"\",\"attach\":\"\"}");
|
|
|
+ result = "success";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ public string MerAuth(string app_auth_code)
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + "\n" + Request.QueryString.ToString(), "支付宝代商家授权回调日志");
|
|
|
+ string result = new AlipayFunction().GetToken(app_auth_code);
|
|
|
+ function.WriteLog(result, "支付宝代商家授权回调日志");
|
|
|
+ //{"alipay_open_auth_token_app_response":{"code":"10000","msg":"Success","app_auth_token":"202306BB5e2aa2157bef47b7a8d918cadb0f1X25","app_refresh_token":"202306BB57fdb346273840b7aca1d63b34110D25","auth_app_id":"2021004102667228","expires_in":31536000,"re_expires_in":32140800,"tokens":[{"app_auth_token":"202306BB5e2aa2157bef47b7a8d918cadb0f1X25","app_refresh_token":"202306BB57fdb346273840b7aca1d63b34110D25","auth_app_id":"2021004102667228","expires_in":31536000,"re_expires_in":32140800,"user_id":"2088402028451259"}],"user_id":"2088402028451259"},"sign":"NLGZMLHbvb39KXeTBj0UPMVCeIYdxKymSXSBJAdRnuE8zCdJJTkk+flaclj63ljhK2WC/KOue/K1RSAjCepjtLVJaQxBfnTD/YXWHMRwcd8MM3aOX2D/wfl4VBgvzMJ2/fNAgycZ7ps2TiWyDrLz82DXtWpvXIRq0/NuZ6gILIdIl1jS/h4rgUB44ld+23ihNUuyqn1zV2EEm8ZZScEObnwg48sZ7Kd0PfOoXTJX/vfotFm3QXOzUwMNRDm6I2q+UvCGA355QaUvZhUzHOVUldvM4MaZom2TQDvpYf5EFTxSOZ7OglWjvJim1/ZcjUbqY00mTgoMoorrOH7p0OQyfA=="}
|
|
|
+ JsonData jsonObj = JsonMapper.ToObject(result);
|
|
|
+ if(jsonObj["alipay_open_auth_token_app_response"]["code"].ToString() == "10000")
|
|
|
+ {
|
|
|
+ string app_auth_token = jsonObj["alipay_open_auth_token_app_response"]["app_auth_token"].ToString();
|
|
|
+ MerchantAddInfo addInfo = maindb.MerchantAddInfo.FirstOrDefault(m => m.Id == 0);
|
|
|
+ if(addInfo != null)
|
|
|
+ {
|
|
|
+ addInfo.AlipayAuthToken = app_auth_token;
|
|
|
+ maindb.SaveChanges();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return "授权成功";
|
|
|
+ }
|
|
|
+
|
|
|
+ private SortedDictionary<string, string> GetRequestPost(string canshu)
|
|
|
+ {
|
|
|
+ var sArray = new SortedDictionary<string, string>();
|
|
|
+ string[] canshulist = canshu.Split('&');
|
|
|
+ foreach (var substring in canshulist)
|
|
|
+ {
|
|
|
+ string[] datalist = substring.Split('=');
|
|
|
+ sArray.Add(datalist[0], HttpUtility.UrlDecode(datalist[1]));
|
|
|
+ }
|
|
|
+ return sArray;
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+
|
|
|
#region 支付宝服务平台支付回调(好哒)
|
|
|
public Dictionary<string, string> HdNotice()
|
|
|
{
|