public virtual async Task <GetPcLoginACodeOutput> GetPcLoginACodeAsync(string miniProgramName) { var miniProgram = await _miniProgramRepository.GetAsync(x => x.Name == miniProgramName); var options = new AbpWeChatMiniProgramOptions { OpenAppId = miniProgram.OpenAppIdOrName, AppId = miniProgram.AppId, AppSecret = miniProgram.AppSecret, EncodingAesKey = miniProgram.EncodingAesKey, Token = miniProgram.Token }; using (_weChatMiniProgramAsyncLocal.Change(options)) { var token = Guid.NewGuid().ToString("N"); var handlePage = await SettingProvider.GetOrNullAsync(MiniProgramsSettings.PcLogin.HandlePage); var aCodeResponse = await _aCodeService.GetUnlimitedACodeAsync(token, handlePage); if (aCodeResponse.ErrorCode != 0) { throw new WeChatBusinessException(aCodeResponse.ErrorCode, aCodeResponse.ErrorMessage); } return(new GetPcLoginACodeOutput { Token = token, ACode = aCodeResponse.BinaryData }); } }
public WeChatMiniProgramGrantValidator( IEventService eventService, IWeChatOpenIdFinder weChatOpenIdFinder, UserManager <IdentityUser> userManager, IIdentityUserRepository userRepository, IStringLocalizer <Volo.Abp.Identity.Localization.IdentityResource> identityLocalizer, IStringLocalizer <AbpIdentityServerResource> identityServerLocalizer, IOptions <AbpWeChatMiniProgramOptions> options) : base(eventService, weChatOpenIdFinder, userManager, userRepository, identityLocalizer, identityServerLocalizer) { Options = options.Value; }