Notice
Recent Posts
Recent Comments
Link
관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS] 4. 애플페이 (Apply Pay) - 애플월렛과 앱에서 카드등록 개념 본문

iOS 응용 (swift)

[iOS] 4. 애플페이 (Apply Pay) - 애플월렛과 앱에서 카드등록 개념

jake-kim 2026. 6. 17. 01:35

애플페이 관련 목차

전체 목차 링크


대응해야하는 영역

  • 내앱에서 애플페이 결제는 지원하지 않고, 내앱에 있는 카드 정보를 애플월렛에 등록하여 애플월렛에서 결제하게끔 도와주는 방법을 대상으로 설명 예정 (Issuer App 관점)

1. 진입점이 애플월렛: 애플월렛 -> 내앱(Issuer App) -> 애플월렛

사용자가 애플월렛 앱에서 직접 카드를 추가(실물 카드 카메라 스캔 또는 번호 직접 입력)하는 도중, "이 사람이 진짜 카드 주인이 맞는지 발급사 앱에서 인증해라"라고 요청받아 넘어오는 플로우

 

  • 핵심 메커니즘: 유니버설 링크를 통한 신원 확인 (Step-up Authentication)
  • 흐름:
    1. 애플월렛이 발급사의 유니버설 링크를 호출하여 발급사 앱을 강제로 깨움.
    2. 발급사 앱이 켜지면서 URL에 담긴 토큰 정보를 파싱하고, 사용자에게 Face ID 또는 간편비밀번호 인증을 요구.
    3. 인증이 성공하면 발급사 백엔드가 TSP(카드 브랜드사)에 "인증 완료" 신호를 보냄.
    4. 앱이 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)

 

Comments