【问题标题】:Stripe SDK integration using swift and flutter使用 swift 和 Flutter 集成 Stripe SDK
【发布时间】:2019-06-29 14:45:15
【问题描述】:

我正在尝试使用颤振将 Apple Pay 集成到 iOS 中。我正在使用方法渠道与 swift 进行通信并完成付款过程。我遵循了link

中的文档

但是,我相信我已经卡在了最后部分,我不明白如何继续流程。由于我使用的是 Flutter UI,因此我不需要 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"))
    }
}

我正在使用这个代码在 Flutter UI 中调用这个代码:

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 部署的后端。如果你检查了我的 swift 代码,你会看到我现在卡在哪里了。

据我了解流程,剩下要做的是

  • 将卡详细信息发送到后端并获取令牌
  • 使用令牌,将付款详情发送到 Stripe 服务器

我对 Swift 语言非常陌生,代码示例对我继续学习很有帮助。

谢谢。

【问题讨论】:

    标签: ios swift flutter stripe-payments applepay


    【解决方案1】:

    您似乎正在使用原生 PKPaymentAuthorizationViewController 来关注 Stripe 自定义 iOS 集成。

    您应该阅读此处的集成步骤:https://stripe.com/docs/mobile/ios/custom#apple-pay

    基本上,您的下一步将是

    • 使用 paymentRequest 实例化一个 PKPaymentAuthorizationViewController
    • 将自己设置为它的代表
    • 出示 PKPaymentAuthorizationViewController
    • 实现相关委托方法以取回 Apple Pay 令牌 (PKToken)
    • 将 PKToken 转换为 STPToken(一种 Stripe 令牌)

    以上链接中详细介绍了所有这些步骤和更多内容。

    【讨论】:

    • 感谢您的澄清。您能否提供 submitTokenToBackend() 方法的示例实现?这将非常有帮助。
    • @SajadJaward 这完全取决于您的客户端服务器通信的工作方式。但基本上你会将你的令牌 ID 发布到你的服务器端端点。您的服务器端端点将解析令牌并在 Stripe 上创建一个 Charge。然后返回对客户请求的响应,让您的应用在客户端显示
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 2020-08-30
    • 2019-04-20
    相关资源
    最近更新 更多