Интеграция Stripe SDK с использованием Swift и Flutter - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь интегрировать Apple Pay в iOS, используя флаттер.Я использую методические каналы для связи со swift и завершения процесса оплаты.Я следовал за документацией, которая находится в этой ссылке

Тем не менее, я считаю, что застрял в самой последней части, которую я не понимаю, как продолжить поток.Поскольку я использую пользовательские интерфейсы флаттера, мне не нужны iOS ViewControllers.

Это код, который я пробовал до сих пор в AppDelegate.swift:

func handleApplePayButtonTapped(result: FlutterResult){
    let merchantIdentifier = "my.apple.merchant.id"
    let paymentRequest = Stripe.paymentRequest(withMerchantIdentifier:merchantIdentifier, country:"US", currency:"USD")
    paymentRequest.paymentSummaryItems = [
    PKPaymentSummaryItem(label:"Fancy Hat", amount:50.00),
    PKPaymentSummaryItem(label:"iHats, Inc", amount:50.00),
    ]

    if Stripe.canSubmitPaymentRequest(paymentRequest){
        //next steps ???
        result(String("Can submit payment request"))
    }else{
        result(String("Can't submit payment request"))
    }
}

Я называю этокод в пользовательском интерфейсе флаттера, использующий этот код:

Future<void> _doPayment() async {
String returnMsg;
try {
  final bool result = await platform.invokeMethod('checkIfDeviceSupportsApplePay');
  if(result){
    final String status = await platform.invokeMethod('handleApplePayButtonTapped');
    print(status);
  }
  returnMsg = '$result';
} on PlatformException catch (e) {
  returnMsg = "Failed: '${e.message}'.";
}
print(returnMsg);}

У меня уже есть публикуемый ключ Stripe, а также развернутый бэкэнд Heroku.Если вы проверили мой быстрый код, вы увидите, где я застрял на данный момент.

Поскольку я понял последовательность действий, осталось сделать следующее:

  • отправить картуподробности для бэкэнда и получите токен
  • с помощью токена, отправьте реквизиты платежа на сервер Stripe

Я очень новичок в языке swift, и примеры кода будут очень полезны длямне продолжить.

Спасибо.

1 Ответ

0 голосов
/ 06 февраля 2019

Похоже, что вы следуете за интеграцией Stripe Custom iOS с использованием встроенного PKPaymentAuthorizationViewController.

Вы должны прочитать шаги интеграции здесь: https://stripe.com/docs/mobile/ios/custom#apple-pay

По сути, ваши следующие шагибудет

  • создать экземпляр PKPaymentAuthorizationViewController с помощью paymentRequest
  • Установить себе его делегат
  • представить PKPaymentAuthorizationViewController
  • реализовать соответствующие методы делегата для полученияобратно токен Apple Pay (PKToken)
  • конвертирование PKToken в STPToken (токен Stripe)

Все эти и другие шаги подробно описаны в ссылке выше.

...