Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- tableView
- RxCocoa
- Clean Code
- Protocol
- uitableview
- 리팩토링
- uiscrollview
- clean architecture
- MVVM
- SWIFT
- ios
- Observable
- Xcode
- UITextView
- combine
- map
- 리펙토링
- 스위프트
- HIG
- Refactoring
- Human interface guide
- 클로드코드
- UICollectionView
- collectionview
- 클린 코드
- swiftUI
- rxswift
- swift documentation
- claude code
- 애니메이션
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS] 1. 애플페이 (Apply Pay) - 처리해야하는 전체 플로우 본문
애플페이 관련 목차
애플페이을 준비하는 앱 개념
- Issuer App vs Merchant App
- Issuer App: 단순히 특정 A앱에서 카드들을 애플월렛에 등록하는 역할 (provisioning 이라고 함)
- Merchant App: A앱에서 애플페이를 이용한 결제기능을 제공하는 역할
- 중요한 것
- Issuer App은 Apple Develop페이지에서 Pass Type ID 등록만하면 됨
- Merchant App은 Apple Develop페이지에서 Merchant ID 등록, CSR 업로드, App ID 등록을 해줘야함 (아래에서 소개 예정)
처리해야하는 전체 플로우

1단계: Apple Developer 인프라 설정

Apple Pay 결제 데이터의 암호화 키체인을 구성하는 단계
- Merchant ID (판매자 식별자) 생성: 우리 앱이 Apple Pay 시스템에서 결제를 요청할 수 있는 고유한 상점 ID(merchant.com.domain...)를 등록하는 과정
- Payment Processing Certificate (결제 처리 인증서) 생성: 사용자가 페이스 ID 등으로 인증하면 Apple 서버는 결제 정보를 암호화. 이때 암호화에 사용되는 공개키(Public Key)를 Apple에 등록하고, 이를 복호화할 수 있는 개인키(Private Key) 쌍을 만드는 과정
2단계: 결제 대행사(PG) 연동 및 환경 설정

Apple Pay 결제 데이터를 복호화하고 실제 원화(KRW) 결제 승인을 처리할 PG사 연동 단계
- PG사 선정 및 계약: 토스페이먼츠, 포트원, NHN KCP, KG이니시스 등 Apple Pay 지원 국내 PG사 선택 및 가맹 계약 진행
- 인증서 업로드: 1단계에서 생성한 Payment Processing Certificate(.cer 파일)를 PG사 상점 관리자 콘솔에 등록
- 💡 등록 이유: Apple 서버가 암호화하여 앱으로 전송한 결제 데이터(Token)를 PG사가 복호화할 수 있도록 권한을 위임하는 작업
3단계: Xcode 프로젝트 개발 환경 설정

생성한 Merchant ID를 Xcode 프로젝트와 동기화하여 앱에 Apple Pay 권한을 부여하는 단계
- Apple Pay Capability 추가: Xcode 프로젝트의 Signing & Capabilities 탭에서 + Capability 버튼을 통해 Apple Pay 기능 추가
- Merchant ID 매핑: 추가된 Apple Pay 섹션의 새로고침(🔄) 버튼을 클릭하여 생성해 둔 ID를 동기화하고 해당 체크박스 선택
- 완료 시 프로젝트 내 [프로젝트명].entitlements 파일이 자동 생성/업데이트되며 Apple Pay 권한이 명시됨
4단계: 앱 내 결제 로직 구현 (코드 작성)

사용자 결제 버튼 클릭부터 Apple Pay 시트 인증 및 최종 결제 완료까지의 클라이언트 코드 구현 단계 (PassKit 프레임워크 활용)
- PG사 iOS SDK 설치: SPM 또는 CocoaPods를 통해 선택한 PG사의 최신 iOS SDK를 프로젝트에 추가
- Apple Pay 전용 버튼 배치: Apple 디자인 가이드라인을 준수하는 내장 이니셜라이저 기반의 PKPaymentButton을 UI에 배치
- 결제 요청서(PKPaymentRequest) 정의: Merchant ID, 국가 코드(KR), 통화 코드(KRW), 지원 카드 브랜드 목록 지정 및 결제 금액 목록(PKPaymentSummaryItem) 구성 (배열의 마지막 아이템이 최종 결제 총액)
- 결제 시트 표시 및 델리게이트 구현: PKPaymentAuthorizationController를 통해 화면 하단에 Apple Pay 결제 시트 노출 및 사용자 인증 처리
- 토큰 추출 및 PG사 전달: didAuthorizePayment 콜백 메서드로 전달된 PKPayment 객체에서 암호화된 결제 데이터(payment.token.paymentData)를 추출하여 PG사 결제 승인 API로 전송
- 결제 결과 처리: PG사 서버의 최종 결제 승인 결과에 따라 Apple Pay 시트에 성공/실패 애니메이션을 표시하고 시트 종료(dismiss)
'iOS 응용 (swift)' 카테고리의 다른 글
| [iOS] 3. 애플페이 (Apply Pay) - Xcode에 적용하기 (0) | 2026.06.10 |
|---|---|
| [iOS] 2. 애플페이 (Apply Pay) - 사전 설정 2단계 (앱 외적인 세팅) (1) | 2026.05.27 |
| [iOS - swift] 전체빌드와 증분빌드 차이점 (2) | 2025.12.10 |
| [iOS - swift] 3. VScode에 깃헙 코파일럿 활용 방법 (github copilot, 지침, 프롬프트, instruction, prompt) (2) | 2025.11.12 |
| [iOS - swift] 1. VScode에 깃헙 코파일럿 세팅 방법 (github copilot) (0) | 2025.10.29 |
Comments
