Ручка кредитной карты добавлена ​​в кошелек Apple Pay - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь реализовать кнопку SetUp Apple Pay в моем приложении iOS Xamarin. Я добавил кнопку и обработчик щелчка для этого. Затем я использую PKPassLibrary.OpenPaymentSetup (), чтобы открыть кошелек. Затем, если пользователь успешно добавил Карту в Кошелек, мне нужно обработать это событие, изменив «SetUp ApplePay button» на «Pay with Apple Pay». Но я не могу найти работающий какой-либо обработчик событий или что-то в этом роде.

Что я пробовал:

private PKPassLibrary _library;
private NSObject _walletNotificationSubscription;
private void OnSetuApplePayClicked(object button, EventArgs args)
{
   _library = new PKPassLibrary();
   _library.OpenPaymentSetup();
    _walletNotificationSubscription = PKPassLibrary.Notifications.ObserveDidChange(_library, HandleEventHandler);
}
void HandleEventHandler(object sender, NSNotificationEventArgs e)
      {
         _walletNotificationSubscription.Dispose();

         ViewModel.UpdateApplePay();
         SetButtonVisibility();
      }

но это не работает.

П.С .: Наверное, я наблюдаю неправильные события.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Кажется, что нет обратных вызовов или событий (по крайней мере, у Xamarin). Итак, мне пришлось переключить логическое свойство контроллера, когда пользователь отправляется в кошелек, а затем, когда пользователь возвращается в приложение, я отслеживаю событие приложения «WillEnterForeground», где я проверяю, является ли логическое свойство истинным (если true, то пользователь возвращается из Кошелек).

Обратите внимание, что в этом случае «ViewWillAppear» не работает, это не аналог Android «OnResume».

Также обратите внимание, что карта активируется через 15-20 секунд после добавления ее в кошелек, поэтому я использую «цикл прослушивания» для отслеживания активации карты.

Когда карта, наконец, активируется, я переключаю кнопку с «Настройка Apple Pay» на «Оплатить через Apple Pay».

0 голосов
/ 04 сентября 2018

Попробуйте использовать следующий код:

     if(PKPaymentAuthorizationViewController.CanMakePayments)
         {
            //the device supports Apple Pay

            //check whether the user can make a payment with a bank card ,such as Amex ,MasterCard,Visa,ChinaUnion and so on
            NSString[] paymentString = { PKPaymentNetwork.Amex, PKPaymentNetwork.ChinaUnionPay, PKPaymentNetwork.MasterCard, PKPaymentNetwork.Visa };

            if(PKPaymentAuthorizationViewController.CanMakePaymentsUsingNetworks(paymentString))
            {
                //user has added bank card ,do something you want
            }
            else
            {
                //user has not added bank card
            }

         }
       else
         {
            //the device doesn't support Apple Pay
         }

Существуют и другие способы оплаты, вы можете проверить их в

public static class PKPaymentNetwork

...