Exemplo n.º 1
0
        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
                });
            }
        }
Exemplo n.º 2
0
 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;
 }