using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Nirvana.Common.ApiBase; using Senparc.Weixin; using Senparc.Weixin.MP; using Senparc.Weixin.WxOpen.AdvancedAPIs.Sns; using Senparc.Weixin.WxOpen.Containers; using Senparc.Weixin.WxOpen.Entities; using Senparc.Weixin.WxOpen.Entities.Request; using Senparc.Weixin.WxOpen.Helpers; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using YBDevice.Api.DBServices; using YBDevice.Entity; namespace YBDevice.Api.Controllers { /// /// 小程序管理 /// [Route("api/[controller]/[action]")] [ApiController] public class WxOpenController : ControllerBase { public static readonly string Component_Token = Senparc.Weixin.Config.SenparcWeixinSetting.Component_Token; public static readonly string Component_EncodingAESKey = Senparc.Weixin.Config.SenparcWeixinSetting.Component_EncodingAESKey; public static readonly string Component_Appid = Senparc.Weixin.Config.SenparcWeixinSetting.Component_Appid; public static readonly string Component_Secret = Senparc.Weixin.Config.SenparcWeixinSetting.Component_Secret; /// /// wx.login登陆成功之后发送的请求 /// /// /// [HttpPost] public async Task OnLoginAsync([FromBody] WXOpenLoginSubmitModel model) { return await new WxOpenApp().OnLoginAsync(model); } /// /// 签名测试 /// /// /// /// /// [HttpPost] public ResultInfo CheckWxOpenSignature(string sessionId, string rawData, string signature) { var checkSuccess = Senparc.Weixin.WxOpen.Helpers.EncryptHelper.CheckSignature(sessionId, rawData, signature); return new ResultInfo(checkSuccess ? ResultState.SUCCESS : ResultState.FAIL, checkSuccess ? "签名校验成功" : "签名校验失败"); } /// /// 解密用户数据 /// /// /// [HttpPost] public async Task DecodeEncryptedDataAsync([FromBody] WxOpenDecryptSubmitModel model) { return await new WxOpenApp().DecryptDataAsync(model); } } }