123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.Http;
- using Microsoft.Extensions.Logging;
- using Microsoft.Extensions.Options;
- using Microsoft.AspNetCore.Authorization;
- using System.Web;
- using MySystem.Areas.Admin.Controllers;
- using LitJson;
- using Library;
- using System.IO;
- using Aop.Api.Util;
- namespace MySystem.Areas.Api.Controllers.v1
- {
- [Area("Api")]
- [Route("Api/[controller]/[action]")]
- public class AlipayController : BaseController
- {
- public AlipayController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
- {
- }
- #region 支付宝支付回调
- public string Notice()
- {
- StreamReader sr = new StreamReader(Request.Body);
- string requestMes = sr.ReadToEnd();
-
- return PayCallBack("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxycehrmnTl2IaIAECP+0HWc1eWGM/T6x022K7K6fdf+xoyC97TBJaG4G3Bcon4gsJX+Sad5IA9OJIQ4eN1joM35hIlwcFZ6MmCuVXx/SMAKThIjK0jsRc6aTxVQG+GVCgS7dXMKb4Sm+vK2wEM6xtDeqcfYMB0BqGZRvxbIV59a2ooPrha4FkV6nNC9DQefzC0picHXV64oYUjMM2ed4ASTQVds7HP9BZfalz//APZcWdBV08f+xv7n79Twz/gNtVAadfuTAlcjsS6aK+G/OrZtr/diuemeRPRUKlVhcr5xOQDhqBgtdIw8M9Wp6I4ULXRlthKVBWToH9j6n9vDIiwIDAQAB", requestMes);
- }
-
- public string NoticePay()
- {
- StreamReader sr = new StreamReader(Request.Body);
- string requestMes = sr.ReadToEnd();
- function.WriteLog(DateTime.Now.ToString() + "\r\n" + requestMes + "\r\n\r\n", "支付宝支付回调2");
- return PayCallBack2("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnw14hKejqS+si/XZpNQpFAVOVXJIThj5Qn7H14n/vsb7uRLug1+Jcve8ehTkaN3s5ibrrELCnz0dvshi3cOz9svDSbLG5OdC1biAvZzpDkvVPswOd9f9jO8Jvqk3QTXTI3MSN9gOpKomI0te3qs5kkOQx6kRozzKjU/G//o/PbJCxpBxf/QNRV3XmCwJLZMBE7ukYqi1WO9Jra8jdczFKwrd/nhiKBKdupAtVVeKlylGD2i2YLkGAH1cLsPUN9DtzrXNblGXm2HK3l9SnMDjqnakiVdEQJTNYNpEiHaOJsVmPQL38nM6miz5wNd4gTchKzXPtoZWqto+eIvYaEA/KwIDAQAB", requestMes);
- }
-
-
-
-
-
- public string PayCallBack(string publickey, string requestMes, bool IsRedis = false)
- {
-
- var result = "fail";
- var sPara = GetRequestPost(requestMes);
- if (sPara.Count > 0)
- {
-
- 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);
-
- if (verifyResult)
- {
-
-
- string out_trade_no = sPara["out_trade_no"];
-
- string trade_no = sPara["trade_no"];
-
- 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 PayCallBack2(string publickey, string requestMes, bool IsRedis = false)
- {
-
- var result = "fail";
- var sPara = GetRequestPost(requestMes);
- if (sPara.Count > 0)
- {
-
- 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);
-
- if (verifyResult)
- {
-
-
- string out_trade_no = sPara["out_trade_no"];
-
- string trade_no = sPara["trade_no"];
-
- string trade_status = sPara["trade_status"];
-
- if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS")
- {
- RedisDbconn.Instance.AddList("PayCallBack2", "{\"out_trade_no\":\"" + out_trade_no + "\",\"transaction_id\":\"" + trade_no + "\",\"total_fee\":\"" + total_fee + "\",\"pay_mode\":\"1\",\"openid\":\"\",\"attach\":\"\"}");
- result = "success";
- }
- }
- }
- return result;
- }
-
- 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
- }
- }
|