@@ -25,6 +25,13 @@ public final class PaymentWidgetViewController: ViewController {
2525 private lazy var amountInputField = TextField ( )
2626 private lazy var orderIdInputField = TextField ( )
2727 private lazy var orderNameInputField = TextField ( )
28+ private lazy var subOrderMerchantBusinessNumberInputField = TextField ( )
29+ private lazy var subOrderMerchantNameInputField = TextField ( )
30+ private lazy var subOrderMerchantCountryInputField = TextField ( )
31+ private lazy var subOrderMerchantPostalCodeInputField = TextField ( )
32+ private lazy var subOrderMerchantAddressInputField = TextField ( )
33+ private lazy var subOrderMerchantDetailAddressInputField = TextField ( )
34+ private lazy var subOrderNameInputField = TextField ( )
2835
2936 private lazy var widget : PaymentWidget = PaymentWidget (
3037 clientKey: Environment . clientKey,
@@ -72,6 +79,13 @@ public final class PaymentWidgetViewController: ViewController {
7279 stackView. addArrangedSubview ( amountInputField)
7380 stackView. addArrangedSubview ( orderIdInputField)
7481 stackView. addArrangedSubview ( orderNameInputField)
82+ stackView. addArrangedSubview ( subOrderMerchantBusinessNumberInputField)
83+ stackView. addArrangedSubview ( subOrderMerchantNameInputField)
84+ stackView. addArrangedSubview ( subOrderMerchantCountryInputField)
85+ stackView. addArrangedSubview ( subOrderMerchantPostalCodeInputField)
86+ stackView. addArrangedSubview ( subOrderMerchantAddressInputField)
87+ stackView. addArrangedSubview ( subOrderMerchantDetailAddressInputField)
88+ stackView. addArrangedSubview ( subOrderNameInputField)
7589 stackView. addArrangedSubview ( paymentMethodWidget)
7690 stackView. addArrangedSubview ( 빈화면)
7791 stackView. addArrangedSubview ( agreementWidget)
@@ -82,9 +96,25 @@ public final class PaymentWidgetViewController: ViewController {
8296 orderIdInputField. text = UUID ( ) . uuidString
8397 orderNameInputField. title = " orderName "
8498 orderNameInputField. text = " 토스페이먼츠 세트 "
99+ subOrderMerchantBusinessNumberInputField. title = " subOrders[0].merchantBusinessNumber "
100+ subOrderMerchantBusinessNumberInputField. text = " 1234567890 "
101+ subOrderMerchantNameInputField. title = " subOrders[0].merchantName "
102+ subOrderMerchantNameInputField. text = " 토스 상점 "
103+ subOrderMerchantCountryInputField. title = " subOrders[0].merchantAddress.country "
104+ subOrderMerchantCountryInputField. text = " KR "
105+ subOrderMerchantPostalCodeInputField. title = " subOrders[0].merchantAddress.postalCode "
106+ subOrderMerchantPostalCodeInputField. text = " 06133 "
107+ subOrderMerchantAddressInputField. title = " subOrders[0].merchantAddress.address "
108+ subOrderMerchantAddressInputField. text = " 서울특별시 강남구 테헤란로 "
109+ subOrderMerchantDetailAddressInputField. title = " subOrders[0].merchantAddress.detailAddress "
110+ subOrderMerchantDetailAddressInputField. text = " 10층 "
111+ subOrderNameInputField. title = " subOrders[0].orderName "
112+ subOrderNameInputField. text = " 하위 주문 "
85113
86114 amountInputField. textField. addTarget ( self , action: #selector( textFieldDidChanged ( _: ) ) , for: . editingChanged)
87115 amountInputField. textField. keyboardType = . numberPad
116+ subOrderMerchantBusinessNumberInputField. textField. keyboardType = . numberPad
117+ subOrderMerchantPostalCodeInputField. textField. keyboardType = . numberPad
88118
89119 widget. delegate = self
90120 widget. paymentMethodWidget? . widgetUIDelegate = self
@@ -105,10 +135,39 @@ public final class PaymentWidgetViewController: ViewController {
105135 info: DefaultWidgetPaymentInfo (
106136 orderId: orderIdInputField. textField. text ?? UUID ( ) . uuidString,
107137 orderName: orderNameInputField. textField. text ?? " 테스트 결제 " ,
108- appScheme: Environment . Constant. appScheme
138+ appScheme: Environment . Constant. appScheme,
139+ subOrders: [ makeSubOrder ( ) ]
109140 )
110141 )
111142 }
143+
144+ private func makeSubOrder( ) -> SubOrder {
145+ SubOrder (
146+ merchantBusinessNumber: textValue ( subOrderMerchantBusinessNumberInputField, default: " 1234567890 " ) ,
147+ merchantName: textValue ( subOrderMerchantNameInputField, default: " 토스 상점 " ) ,
148+ merchantAddress: SubOrder . MerchantAddress (
149+ country: textValue ( subOrderMerchantCountryInputField, default: " KR " ) ,
150+ postalCode: textValue ( subOrderMerchantPostalCodeInputField, default: " 06133 " ) ,
151+ address: textValue ( subOrderMerchantAddressInputField, default: " 서울특별시 강남구 테헤란로 " ) ,
152+ detailAddress: optionalTextValue ( subOrderMerchantDetailAddressInputField)
153+ ) ,
154+ orderName: textValue ( subOrderNameInputField, default: " 하위 주문 " )
155+ )
156+ }
157+
158+ private func textValue( _ textField: TextField , default defaultValue: String ) -> String {
159+ guard let text = textField. textField. text, !text. isEmpty else {
160+ return defaultValue
161+ }
162+ return text
163+ }
164+
165+ private func optionalTextValue( _ textField: TextField ) -> String ? {
166+ guard let text = textField. textField. text, !text. isEmpty else {
167+ return nil
168+ }
169+ return text
170+ }
112171}
113172
114173extension PaymentWidgetViewController {
0 commit comments