Я пытаюсь интегрировать Apple Pay в iOS с помощью флаттера. Я использую каналы метода для связи со Swift и завершения процесса оплаты. Я следовал документации, которая находится по этой ссылке.
Тем не менее, я считаю, что застрял в самой финальной части, в которой я не понимаю, как продолжить поток. Поскольку я использую интерфейсы флаттера, мне не нужны iOS ViewController.
Это код, который я пробовал до сих пор в 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
Я очень новичок в быстром языке, и образцы кода будут очень полезны для меня, чтобы продолжить.
Спасибо.