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 | 31 |
Tags
- map
- uitableview
- Human interface guide
- uiscrollview
- swiftUI
- UICollectionView
- 스위프트
- HIG
- MVVM
- 클로드코드
- Refactoring
- rxswift
- collectionview
- claude code
- 애니메이션
- RxCocoa
- Protocol
- Clean Code
- 클린 코드
- 리팩토링
- 리펙토링
- combine
- Xcode
- swift documentation
- Observable
- ios
- UITextView
- SWIFT
- clean architecture
- tableView
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS] 4. 애플페이 (Apply Pay) - 애플월렛과 앱에서 카드등록 개념 본문
애플페이 관련 목차
대응해야하는 영역
- 내앱에서 애플페이 결제는 지원하지 않고, 내앱에 있는 카드 정보를 애플월렛에 등록하여 애플월렛에서 결제하게끔 도와주는 방법을 대상으로 설명 예정 (Issuer App 관점)
1. 진입점이 애플월렛: 애플월렛 -> 내앱(Issuer App) -> 애플월렛
사용자가 애플월렛 앱에서 직접 카드를 추가(실물 카드 카메라 스캔 또는 번호 직접 입력)하는 도중, "이 사람이 진짜 카드 주인이 맞는지 발급사 앱에서 인증해라"라고 요청받아 넘어오는 플로우
- 핵심 메커니즘: 유니버설 링크를 통한 신원 확인 (Step-up Authentication)
- 흐름:
- 애플월렛이 발급사의 유니버설 링크를 호출하여 발급사 앱을 강제로 깨움.
- 발급사 앱이 켜지면서 URL에 담긴 토큰 정보를 파싱하고, 사용자에게 Face ID 또는 간편비밀번호 인증을 요구.
- 인증이 성공하면 발급사 백엔드가 TSP(카드 브랜드사)에 "인증 완료" 신호를 보냄.
- 앱이 shoebox:// 스킴을 호출하여 사용자를 다시 애플월렛으로 돌려보냄.
* shoebox 앱스킴: Apple Wallet(애플월렛) 앱을 호출하기 위해 Apple이 전 세계 모든 개발사에게 공식적으로 지정해 둔 실제 프로덕션용 URL 스킴
- 특징: 앱과 앱 사이를 전환(애플월렛 ➔ 발급사 앱 ➔ 애플월렛)하며 흐름이 이어짐

2. 진입점이 내앱: 내앱(Issuer App) -> 애플월렛
- 발급사 앱 안에서 사용자가 "애플 월렛에 추가" 버튼을 눌러 카드를 등록
- 핵심 메커니즘: 암호화 데이터 토싱 (Pass-Through)
- 흐름
- 1. 앱에서 Apple 표준 등록 시트(PKAddPaymentPassViewController)를 띄움.
- 2. 기기가 생성한 일회성 암호화 키(Nonce)를 발급사 앱이 받아서 발급사 백엔드로 전달.
- 3. 백엔드가 카드 정보와 Nonce를 결합해 암호화된 페이로드(Payload)를 만들어 앱으로 반환.
- 4. 앱이 이 페이로드를 그대로 Apple 서버에 제출하면 카드 등록 완료.
- 특징: 화면 전환 없이 발급사 앱 안에서 모달 시트 형태로 매끄럽게 종료

두 방식의 차이
가장 큰 차이는 카드 정보(원장)의 출발지와 UI 주도권이 누구에게 있느냐
| 비교 항목 | 🟢 내 앱에서 시작 (Green-Flow) | 🟡 애플월렛에서 시작 (Yellow-Flow) |
| 주도권 (시작점) | Issuer App (발급사 앱) | Apple Wallet (애플월렛 앱) |
| 카드 정보 입력 | 필요 없음 (앱 내부 카드 목록에서 선택) | 필요함 (사용자가 직접 입력 또는 카메라 스캔) |
| 핵심 기술 요소 | PassKit 프레임워크 델리게이트 구현 | Universal Link 및 URL Scheme (shoebox://) |
| 보안 작업의 본질 | 안전하게 카드 정보를 암호화하여 Apple에 전달 | 사용자가 본인이 맞는지 생체인증 등으로 검증 |
| 화면 경험 (UX) | 발급사 앱 내부에서 모달 창으로 해결 | 앱 간의 유기적인 스위칭 (App-to-App) |
'iOS 응용 (swift)' 카테고리의 다른 글
| [iOS - swift] 5. 애플페이 (Apply Pay) - PassKit을 사용하여 구현하기 (Green, Yellow, Orange 플로우) (0) | 2026.06.29 |
|---|---|
| [iOS - swift] 애플페이 목차 (1) | 2026.06.10 |
| [iOS] 3. 애플페이 (Apply Pay) - Xcode에 적용하기 (0) | 2026.06.10 |
| [iOS] 2. 애플페이 (Apply Pay) - 사전 설정 2단계 (앱 외적인 세팅) (1) | 2026.05.27 |
| [iOS] 1. 애플페이 (Apply Pay) - 처리해야하는 전체 플로우 (0) | 2026.05.20 |
Comments