在范围内找不到工资单 [英] Cannot find paymentsheet in scope

查看:30
本文介绍了在范围内找不到工资单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用本教程通过FireBase将我的应用程序与Stripe连接-

https://stripe.com/docs/payments/accept-a-payment?platform=ios&ui=payment-sheet&uikit-swiftui=swiftui

我找不到工资单。为什么会这样说,又该如何理清呢?我只想使用Firebase将Stripe连接到我的应用程序。什么是工资单。我需要写一些表格吗?与其关联的其他代码应该是什么?我已附上错误的屏幕截图,并用粗体字母书写。

以下是错误的屏幕截图:-

现在,我的视图控制器是:-

   import Stripe
   import SwiftUI

   class MyBackendModel: ObservableObject {
 let backendCheckoutUrl = URL(string: "Your backend endpoint")! // Your backend endpoint
 @Published var paymentSheet: PaymentSheet?//**Cannot find type 'PaymentSheet' in scope**
 @Published var paymentResult: PaymentSheetResult?//**Cannot find type 'PaymentSheet' in scope**

   init() {
   STPAPIClient.shared.publishableKey = 

"pk_test_51HmAsMFzRM1fSBZ2tTT1SxPxRBzParFfjm6s0aXD0F5dYLeOSVCKtiZ4lq0TGwJxPhHpsq6Hga7I0QzRWisPYMdj00bDxAMTKf"

 }

    func preparePaymentSheet() {
  // MARK: Fetch the PaymentIntent and Customer information from the backend
   var request = URLRequest(url: backendCheckoutUrl)
   request.httpMethod = "POST"
    let task = URLSession.shared.dataTask(with: request, completionHandler: { [weak self] (data, response, error) in
  guard let data = data,
        let json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String : Any],
        let customerId = json["customer"] as? String,
        let customerEphemeralKeySecret = json["ephemeralKey"] as? String,
        let paymentIntentClientSecret = json["paymentIntent"] as? String,
        let self = self else {
        // Handle error
        return
      }

  // MARK: Create a PaymentSheet instance
  var configuration = PaymentSheet.Configuration()
  configuration.merchantDisplayName = "Example, Inc."
  configuration.customer = .init(id: customerId, ephemeralKeySecret: customerEphemeralKeySecret)

  DispatchQueue.main.async {
    self.paymentSheet = PaymentSheet(paymentIntentClientSecret: paymentIntentClientSecret, configuration: configuration)
    }
    })
    task.resume()
  }

     func onPaymentCompletion(result: PaymentSheetResult) {
    self.paymentResult = result
   }
  }

 struct CheckoutView: View {
  @ObservedObject var model = MyBackendModel()

   var body: some View {
    VStack {
    if let paymentSheet = model.paymentSheet {
    PaymentSheet.PaymentButton(
      paymentSheet: paymentSheet,
      onCompletion: model.onPaymentCompletion
        ) {
        Text("Buy")
        }
        } else {
        Text("Loading…")
       }
      if let result = model.paymentResult {
       switch result {
      case .completed:
        Text("Payment complete")
       case .failed(let error):
        Text("Payment failed: (error.localizedDescription)")
       case .canceled:
      Text("Payment canceled.")
      }
      }
      }.onAppear { model.preparePaymentSheet() }
     }
    }

请帮帮我。我已经尝试了很长时间将我的应用程序连接到Stripe,但没有成功。我只想要我的客户ID。以同时在条带仪表板和其他信息上显示。

推荐答案

支付单是在条带21.5.0版中添加的。如果您使用的是低于此级别的条带版本,则会出现此错误。可以通过指定更高的部署目标并重新安装Pod来解决此问题。

https://github.com/stripe/stripe-ios/releases

这篇关于在范围内找不到工资单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆