Cannot find paymentsheet in scope(在范围内找不到工资单)
问题描述
我正在使用本教程通过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
这篇关于在范围内找不到工资单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!