1

У меня есть приложение в Windows UWP (для рабочего стола/планшета и телефона), и я интегрируюсь с платежным шлюзом Paypal. Когда я готов передать данные в paypal, мне нужно открыть всплывающий браузер и показать диалог PayPal для подтверждения пользователей. (Страница https://checkout.paypal.com/one-touch-login-sandbox/index.html)Windows UWP Launcher.LaunchUriAsync метод для открытия всплывающего диалогового окна браузера

Я пытаюсь открыть страницу с помощью Launcher.LaunchUriAsync, как показано ниже,

Uri uri = new Uri(args.Uri.AbsoluteUri); 
LauncherOptions options = new LauncherOptions(); 
options.TargetApplicationPackageFamilyName = "Microsoft.MicrosoftEdge_8wekyb3d8bbwe"; 

LaunchUriResult result = await Launcher.LaunchUriForResultsAsync(uri, options); 

Этот код открывает браузер Microsoft Грань, но не показывает всплывающее сообщение, а я получаю обратный вызов в методе NavigationCompleted с IsSuccess истинным. Кроме того, сразу после обратного вызова браузер исчезает, что мешает мне подтвердить платеж для продолжения транзакции.

Кроме того, я получаю сообщение «Не видите безопасный браузер PayPal? Мы поможем вам перезапустить окна для завершения покупки» с помощью кнопки «Продолжить», но кнопка «Продолжить» не отвечает в приложении UWP. Когда я получаю то же сообщение на своем веб-сайте, кнопка «Продолжить» показывает всплывающее окно в браузере, чтобы пользователь мог ответить.

Я хотел бы узнать, есть ли лучший способ открыть браузер из приложения UWP и получить подтверждение после успешной транзакции браузера?

Спасибо заранее

+0

Код, который нужно открыть, не работает, даже когда я пытаюсь с http://www.google.com. 'Uri uri = новый Uri (« http://www.google.com »); LauncherOptions options = new LauncherOptions(); options.TargetApplicationPackageFamilyName = "Microsoft.MicrosoftEdge_8wekyb3d8bbwe"; LaunchUriResult result = await Launcher.LaunchUriForResultsAsync (uri, options); ' –

ответ

1

Я думаю, что вы пошли в неправильное направление интеграции с платежным шлюзом Paypal в вашем UWP приложения. Есть проблемы с безопасностью, невозможно использовать ваш метод для интеграции Paypal, вот пример на SO, вы можете посмотреть Why is PayPal not working inside a WinRT WebView control.

После небольшого исследования я обнаружил, что в настоящее время нет официального SDK для интеграции Paypal в приложение UWP, и даже есть один, он должен быть предназначен для использования доверенными клиентами (например, серверами, контролирующими торговцы) и не предназначен для использования ненадежными клиентами (например, все, что работает на машине, которая не контролируется продавцом).

Теперь рекомендуется открыть веб-браузер из своего приложения, чтобы завершить транзакцию через Braintree v.zero, вы также можете ознакомиться с официальным номером Paypal Developer Experience.

+0

Я пытаюсь сделать то же самое с приведенным выше кодом. Теперь я запускаю код без WebView, но я пытаюсь открыть браузер Edge непосредственно из приложения UWP с URL-адресом paypal checkout. Я получаю result.Status как LaunchUriStatus.Success, но result.Result имеет значение null. Он пытается открыть браузер, и он сразу исчезает. –

+0

@NidheeshPuthalath, но вы используете 'LaunchUriForResultsAsync', этот запрос целевого приложения обрабатывает ваш квест и отправляет информацию обратно в исходное приложение, когда заканчивается работа. Я сомневаюсь, что Эддж сделает для вас эту работу. –

+0

Я понимаю, что и попытался дождаться Launcher.LaunchUriAsync (uri, options); метод также. Это также ведет себя так же, как и другой метод (т. Е. Открытие браузера Edge и закрытие сразу). Как я уже упоминал в приведенном выше комментарии, я пробовал это с помощью http://www.google.com, а результат такой же. Это означает, что открытие браузера с URL-адресом нужно обрабатывать по-разному в UWP? –

Смежные вопросы