새가슴
TPToss payments 개발자 커뮤니티
•Created by 새가슴 on 1/24/2025 in #❓┃연동개발-문의
iOS SwiftUI 샘플 코드 문의
안녕하세요. ios swiftUI spm을 사용해서 결제 모듈을 붙이고 있습니다.
샘플코드를 이용해서 실행을 해봤지만 결제하기 버튼이 나오지 않습니다.
#if !os(macOS) && canImport(SwiftUI)
import SwiftUI
import TossPayments
struct TossPaymentsView: View {
@State private var showingSuccess: Bool = false
@State private var showingFail: Bool = false
@StateObject var viewModel = TossPaymentsViewModel()
var body: some View { ScrollView { VStack(spacing: 0) { PaymentMethodWidgetView(widget: viewModel.widget, amount: PaymentMethodWidget.Amount(value: 1000)) AgreementWidgetView(widget: viewModel.widget) } } Button("결제하기") { viewModel.requestPayment(info: DefaultWidgetPaymentInfo(orderId: "123", orderName: "김토스")) } .alert(isPresented: $showingSuccess, content: { Alert(title: Text(verbatim: "Success"), message: Text(verbatim: viewModel.onSuccess?.orderId ?? "")) }) .alert(isPresented: $showingFail, content: { Alert(title: Text(verbatim: "Fail"), message: Text(verbatim: viewModel.onFail?.orderId ?? "")) }) .onReceive(viewModel.$onSuccess.compactMap { $0 }) { success in showingSuccess = true } .onReceive(viewModel.$onFail.compactMap { $0 }) { fail in showingFail = true } } } #endif
@StateObject var viewModel = TossPaymentsViewModel()
var body: some View { ScrollView { VStack(spacing: 0) { PaymentMethodWidgetView(widget: viewModel.widget, amount: PaymentMethodWidget.Amount(value: 1000)) AgreementWidgetView(widget: viewModel.widget) } } Button("결제하기") { viewModel.requestPayment(info: DefaultWidgetPaymentInfo(orderId: "123", orderName: "김토스")) } .alert(isPresented: $showingSuccess, content: { Alert(title: Text(verbatim: "Success"), message: Text(verbatim: viewModel.onSuccess?.orderId ?? "")) }) .alert(isPresented: $showingFail, content: { Alert(title: Text(verbatim: "Fail"), message: Text(verbatim: viewModel.onFail?.orderId ?? "")) }) .onReceive(viewModel.$onSuccess.compactMap { $0 }) { success in showingSuccess = true } .onReceive(viewModel.$onFail.compactMap { $0 }) { fail in showingFail = true } } } #endif
29 replies