public async Task <ShareUrlResult> CreateShareURLAsync(string sdkId, AsymmetricCipherKeyPair keyPair, Uri apiUrl, DynamicScenario dynamicScenario) { ShareUrlResult result = await Task.Run(async() => await DynamicSharingService.CreateShareURL( _httpClient, apiUrl, sdkId, keyPair, dynamicScenario).ConfigureAwait(false)) .ConfigureAwait(false); return(result); }
public IActionResult DBSStandard() { try { string yotiKeyFilePath = Environment.GetEnvironmentVariable("YOTI_KEY_FILE_PATH"); _logger.LogInformation( string.Format( "yotiKeyFilePath='{0}'", yotiKeyFilePath)); StreamReader privateKeyStream = System.IO.File.OpenText(yotiKeyFilePath); var yotiClient = new YotiClient(_clientSdkId, privateKeyStream); DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithIdentityProfileRequirements(new { trust_framework = "UK_TFIDA", scheme = new { type = "DBS", objective = "BASIC" } }).Build(); var dynamicScenario = new DynamicScenarioBuilder() .WithCallbackEndpoint("/account/connect") .WithPolicy(dynamicPolicy) .WithSubject(new { subject_id = "some_subject_id_string" }) .Build(); ShareUrlResult shareUrlResult = yotiClient.CreateShareUrl(dynamicScenario); ViewBag.YotiClientSdkId = _clientSdkId; return(View("DBSCheck", shareUrlResult)); } catch (Exception e) { _logger.LogError( exception: e, message: e.Message); TempData["Error"] = e.Message; TempData["InnerException"] = e.InnerException?.Message; return(RedirectToAction("Error", "Account")); } }
public IActionResult DynamicScenario() { try { string yotiKeyFilePath = Environment.GetEnvironmentVariable("YOTI_KEY_FILE_PATH"); _logger.LogInformation( string.Format( "yotiKeyFilePath='{0}'", yotiKeyFilePath)); StreamReader privateKeyStream = System.IO.File.OpenText(yotiKeyFilePath); var yotiClient = new YotiClient(_clientSdkId, privateKeyStream); var givenNamesWantedAttribute = new WantedAttributeBuilder() .WithName("given_names") .Build(); DynamicPolicy dynamicPolicy = new DynamicPolicyBuilder() .WithWantedAttribute(givenNamesWantedAttribute) .WithFullName() .WithSelfie() .WithPhoneNumber() .WithAgeOver(18) .WithRememberMeId(true) .Build(); var dynamicScenario = new DynamicScenarioBuilder() .WithCallbackEndpoint("/account/connect") .WithPolicy(dynamicPolicy) .Build(); ShareUrlResult shareUrlResult = yotiClient.CreateShareUrl(dynamicScenario); ViewBag.YotiClientSdkId = _clientSdkId; return(View("DynamicScenario", shareUrlResult)); } catch (Exception e) { _logger.LogError( exception: e, message: e.Message); TempData["Error"] = e.Message; TempData["InnerException"] = e.InnerException?.Message; return(RedirectToAction("Error", "Account")); } }
public async Task CreateShareURLAsyncShouldReturnCorrectValues() { string shareUrl = @"https://yoti.com/shareurl"; string refId = "NpdmVVGC-28356678-c236-4518-9de4-7a93009ccaf0-c5f92f2a-5539-453e-babc-9b06e1d6b7de"; Mock <HttpMessageHandler> handlerMock = SetupMockMessageHandler( HttpStatusCode.OK, "{\"qrcode\":\"" + shareUrl + "\",\"ref_id\":\"" + refId + "\"}"); var engine = new YotiClientEngine(new HttpClient(handlerMock.Object)); DynamicScenario dynamicScenario = TestTools.ShareUrl.CreateStandardDynamicScenario(); ShareUrlResult shareUrlResult = await engine.CreateShareURLAsync(SdkId, _keyPair, new Uri(Constants.Api.DefaultYotiApiUrl), dynamicScenario); Assert.IsNotNull(shareUrlResult); Assert.AreEqual(new Uri(shareUrl), shareUrlResult.Url); Assert.AreEqual(refId, shareUrlResult.RefId); }