Как добавить кнопку Google для сохранения на телефоне и добавить платежные карты через мобильное приложение xamarin

Я успешно создал платежные карты Google с поддержкой ядра ASP.Net, и мои остальные api успешно возвращают токен JWT. Кроме того, я использовал веб-кнопку сохранения на телефоне и JWT, который работает нормально, но мне нужно интегрировать проходы с моим приложением Xamarin Forms. В xamrin, как я добавляю кнопку «Сохранить на телефон» и как привязать JWT вместе с этой кнопкой?


person MK Vimalan    schedule 05.12.2019    source источник
comment
не могли бы вы рассказать, как вы можете создавать пассы? Я специально зацикливаюсь на "доверенных пользователях" и "статусе рассмотрения в классе"   -  person Tim    schedule 19.03.2021


Ответы (1)


Наконец, я нашел решение. Если ваш внутренний сервер возвращает JWT для вашего платежного талона Google, вы можете добиться этого в формах Xamarin через службу зависимостей.

Если вы можете использовать ссылку и намерение JWT, метод запроса JWT POST и собственный Android SDK. См. Это рекомендации

Мой тип пропуска - карта лояльности, поэтому я использовал Ссылка JWT и метод намерения

Прежде чем интегрировать проход в ваше приложение, вы можете протестировать JWT с помощью браузера Chrome. Нажмите здесь (https://pay.google.com/gp/v/save/ {jwt_generated}) URL с вашим JWT в браузере Chrome, если JWT в порядке, вы увидите проход в браузере

Достигать

  1. Создайте интерфейс в своем проекте PCL

          namespace App.DependencyServices
          {
              public interface IGPayPass
              {
                 void LoadGPayPass(string JWT);
              }
          }
    
  2. Создайте нативную реализацию в своем Android-проекте

    public class GPayImplementation : IGPayPass
    {
     /// <summary>
     ///     summary:
     ///         This methode load the google pay pass from the JWT and open the pay passes in Google pay app
     ///         To show the pass in google pay we have to create an ACTION_VIEW
     ///         If pass is the loyality pass we can use the JWT link and intent method(https://developers.google.com/pay/passes/guides/get-started/implementing-the-api/save-to-google-pay#use-jwt-link-and-intent)
    ///         To load the pass send the https request to google pass class object like https://pay.google.com/gp/v/save/{jwt_generated}
    ///
    ///     parameters:
    ///         JWT : The server return this token for pay passes and pass via dependency service to this native implementation
    ///
    ///     returns:
    ///
    /// </summary>
    /// <param name="JWT"></param>
       public void LoadGPayPass(string JWT)
       {
          //create context
          Context context = Android.App.Application.Context;
    
          string url = "https://pay.google.com/gp/v/save/" + JWT;
    
          //Send the https request to google pay pass class object via Android intent
          Intent intent = new Intent(Intent.ActionView, Uri.Parse(url));
    
          //Assign new task Flag for intent otherwise runtime exepption will return
          intent.AddFlags(ActivityFlags.NewTask);
          context.StartActivity(intent);
       }
    }
    
  3. Использовать собственную реализацию в проекте PCL через службу зависимостей

            if (response.HttpCode == HttpStatusCode.OK)
            {
                ResponseSting = response.Results.ToString();
    
                //Remove quates from the JWT string
                MembershipCardAndroidJWT = ResponseSting.TrimStart('"').TrimEnd('"');
    
                //Pass The JWT string via dependency service to the Anroid native Environment
                DependencyService.Get<IGPayPass>().LoadGPayPass(MembershipCardAndroidJWT);
            }
    

В пользовательском интерфейсе нет кнопки по умолчанию, такой как веб-кнопка Google, но вы должны следовать руководящим принципам бренда (https://developers.google.com/pay/passes/guides/get-started/api-guidelines/brand-guidelines)

вы можете использовать любую кнопку и запустить этот метод с помощью onclik или команды

Этот метод использует передачу JWT с сервера и передачу в кошелек Google.

введите описание изображения здесь

введите описание изображения здесь

person MK Vimalan    schedule 06.12.2019