General.Web/Controllers/API/NotifyController.cs
(开头部分) 12KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Threading.Tasks;
using System.Xml;
using Essensoft.AspNetCore.Payment.Alipay;
using Essensoft.AspNetCore.Payment.Alipay.Notify;
using Essensoft.AspNetCore.Payment.Alipay.Utility;
using Essensoft.AspNetCore.Payment.WeChatPay;
using Essensoft.AspNetCore.Payment.WeChatPay.Notify;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
namespace General.Mvc.Controllers.API
{
#region 支付宝异步通知
[Route("notify/alipay")]
public class AlipayNotifyController : Controller
{
private readonly IAlipayNotifyClient _client;
private readonly IOptions<AlipayOptions> _optionsAccessor;
public AlipayNotifyController(IAlipayNotifyClient client, IOptions<AlipayOptions> optionsAccessor)
{
_client = client;
_optionsAccessor = optionsAccessor;
}
/// <summary>
/// 应用网关
/// </summary>
/// <returns></returns>
[Route("gateway")]
[HttpPost]
public async Task<IActionResult> Gateway()
{
try
{
var service = Request.Form["service"].ToString();
switch (service)
{
// 激活开发者模式
case "alipay.service.check":
{
var options = _optionsAccessor.Value;
// 获取参数
var parameters = _client.GetParameters(Request);
var sign = parameters["sign"];
parameters.Remove("sign");
var signContent = AlipaySignature.GetSignContent(parameters);
// 验签
var isSuccess = AlipaySignature.RSACheckContent(signContent, sign, options.AlipayPublicKey, "GBK", options.SignType);
// 组XML响应内容
var response = MakeVerifyGWResponse(isSuccess, options.AlipayPublicKey, options.AppPrivateKey, "GBK", options.SignType);
return Content(response, "text/xml");
}
后面还有 276 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
