7. 1.Apple Pay ?
1.Wallet App 에서 카드 등록
출처 https://www.apple.com/apple-pay/#
fi
lm-card
- 카드를 등록할 때 로그인된 Apple Account에 카드가 등록됩
니다.
- 카드를 등록한 계정이 로그인 되어있는 iPhone,iPad,Mac
에서 사용 가능합니다.
- Apple Watch에서 사용하기 위해서는 별도의 설정이 필요합
니다.
8. 1.Apple Pay ?
2. Wallet App에 등록된 카드로 결제
출처 https://support.apple.com/en-us/HT201239
- 결제에는 Apple 계정 비밀번호(또는 Touch ID,Face ID)가 필요
11. 2.일본에서 Apple Pay 활용
- 오프라인 점포에서 NFC를 이용한 Apple Pay 결제
- Apple Pay로 Suica(한국의 티머니 동일한 서비스) 사용
- Safari에서 결제 수단으로 사용
- iOS(iPadOS) App의 결제 수단으로 사용
12. 2.일본에서 Apple Pay 활용
오프라인 점포에서 NFC를 이용한 Apple Pay 결제
출처 https://www.apple.com/jp/apple-pay/
- 오프라인 점포에 구비된 NFC 단말기에
iPhone(Apple Watch)를 가져다 대면 Apple Pay로 결제가 가능.
13. 2.일본에서 Apple Pay 활용
Apple Pay로
Suica(한국의 티머니 동일한 서비스) 사용
출처 https://www.apple.com/jp/apple-pay/
- 실물 교통 카드를 iPhone에 가져다 대는 것만으로 iPhone에 Suica 등
록 가능.
- 신규 Suica를 iPhone에서 발급받는 것도 가능.
- Suica 충전을 Suica App으로 가능.(Apple Pay 대신 일반 신용/체크
카드 사용 가능)
- 한국의 티머니와 동일하게 지하철/버스 탑승을 iPhone(Apple Watch)
를 갖다 대는 것만으로 사용 가능.
- Suica로 결제가 가능한 편의점 등의 오프라인 상점에서도 사용 가능.
14. 2.일본에서 Apple Pay 활용
Safari에서 결제 수단으로 사용
출처 https://www.apple.com/jp/apple-pay/
15. 2.일본에서 Apple Pay 활용
iOS(iPadOS) App의 결제 수단으로 사용
출처 https://www.apple.com/jp/apple-pay/
👉 오늘의 메인 주제 👈
17. iOS(iPadOS) App의
결제 수단으로 사용할 때
3.Apple Pay 도입
- 배송이 필요한 상품을 판매하는 iOS App.
출처 https://www.apple.com/jp/apple-pay/
- 판매된 상품은 배송 방법,배송지,
고객 요청 사항의 입력이 필요.
18. 구매정보,구매 번호,처리된 지불 통지
3.Apple Pay 도입
출처 https://www.gmo-pg.com/en/service/mulpay/apple-pay/
🗄
💳
🧑💻
1
8
7
2
5
10
6
3
4
9
1.암호화된 결제 정보가 전송
2.암호화된 지불 정보에 따른 지불 처리 (판매자 -> Provider)
3.Token number 에 따른 결제 처리 (Provider -> 카드회사)
4.지불 처리 결과의 알림 (카드회사 -> Provider)
5.지불 처리 결과의 알림 (Provider -> 판매자)
6.결제 완료 알림 (판매자 -> 고객)
7.서비스 제공 / 제품 전달 (판매자 -> 고객)
8.판매 금액 (고객 -> 카드회사)
9.판매 금액 (카드회사 -> Provider)
10.판매 금액 (Provider -> 판매자)
고객 Provider
판매자
카드 회사
판매 금액
34. 2.결제 시트에서 주문 내용 확인
+ FaceID (Touch ID)
출처 : https://developer.apple.com/apple-pay/planning/
4.Apple Pay 구현
✔ 확인해야 할 것
- Payment Sheet 만들기
35. 4.Apple Pay 구현
2.결제 시트에서 주문 내용 확인
+ FaceID (Touch ID)
출처 : https://developer.apple.com/apple-pay/planning/
36. 4.Apple Pay 구현
2.결제 시트에서 주문 내용 확인
+ FaceID (Touch ID)
출처 : https://developer.apple.com/apple-pay/planning/
PaymentSheet 만들 때 입력할 value
Apple 계정 정보 or 회원 정보
Wallet App에서 가져오는 정보
37. 출처 : https://developer.apple.com/apple-pay/planning/
4.Apple Pay 구현
PaymentSheet 만들 때 입력할 value
Apple 계정 정보 or 회원 정보
Wallet App에서 가져오는 정보
func setupApplePayButton() {
applePayButton.addTarget(self, action: #selector(presentToPaymentVC), for: .touchUpInside)
}
@objc func presentToPaymentVC() {
let item = PKPaymentSummaryItem(label: "삼겹살 500g", amount: NSDecimalNumber(integerLiteral: 10_000))
let request = PKPaymentRequest()
request.currencyCode = "KRW"
request.countryCode = "JP" // "KR"은 아직 안됩니다 🥺
request.supportedNetworks = [.amex, .visa, .masterCard]
request.merchantCapabilities = .capability3DS
request.merchantIdentifier = "merchant.com.example.applePay" // 임의의 Identifier value
request.paymentSummaryItems = [item]
guard let paymentViewController = PKPaymentAuthorizationViewController(paymentRequest: request)
else { return }
paymentViewController.delegate = self
present(paymentViewController, animated: true)
}
}
extension ViewController: PKPaymentAuthorizationViewControllerDelegate {
func paymentAuthorizationViewControllerDidFinish(_ controller: PKPaymentAuthorizationViewController) {
applePayButton.isHidden = true
paymentStatusLabel.isHidden = false
}
}
38. 출처 : https://developer.apple.com/apple-pay/planning/
4.Apple Pay 구현
PaymentSheet 만들 때 입력할 value
Apple 계정 정보 or 회원 정보
Wallet App에서 가져오는 정보
func setupApplePayButton() {
applePayButton.addTarget(self, action: #selector(presentToPaymentVC), for: .touchUpInside)
}
@objc func presentToPaymentVC() {
let item = PKPaymentSummaryItem(label: "삼겹살 500g", amount: NSDecimalNumber(integerLiteral: 10_000))
let request = PKPaymentRequest()
request.currencyCode = "KRW"
request.countryCode = "JP" // "KR"은 아직 안됩니다 🥺
request.supportedNetworks = [.amex, .visa, .masterCard]
request.merchantCapabilities = .capability3DS
request.merchantIdentifier = "merchant.com.example.applePay" // 임의의 Identifier value
request.paymentSummaryItems = [item]
guard let paymentViewController = PKPaymentAuthorizationViewController(paymentRequest: request)
else { return }
paymentViewController.delegate = self
present(paymentViewController, animated: true)
}
}
extension ViewController: PKPaymentAuthorizationViewControllerDelegate {
func paymentAuthorizationViewControllerDidFinish(_ controller: PKPaymentAuthorizationViewController) {
applePayButton.isHidden = true
paymentStatusLabel.isHidden = false
}
}
39. 출처 : https://developer.apple.com/apple-pay/planning/
4.Apple Pay 구현
PaymentSheet 만들 때 입력할 value
Apple 계정 정보 or 회원 정보
Wallet App에서 가져오는 정보
func setupApplePayButton() {
applePayButton.addTarget(self, action: #selector(presentToPaymentVC), for: .touchUpInside)
}
@objc func presentToPaymentVC() {
let item = PKPaymentSummaryItem(label: "삼겹살 500g", amount: NSDecimalNumber(integerLiteral: 10_000))
let request = PKPaymentRequest()
request.currencyCode = "KRW"
request.countryCode = "JP" // "KR"은 아직 안됩니다 🥺
request.supportedNetworks = [.amex, .visa, .masterCard]
request.merchantCapabilities = .capability3DS
request.merchantIdentifier = "merchant.com.example.applePay" // 임의의 Identifier value
request.paymentSummaryItems = [item]
guard let paymentViewController = PKPaymentAuthorizationViewController(paymentRequest: request)
else { return }
paymentViewController.delegate = self
present(paymentViewController, animated: true)
}
}
extension ViewController: PKPaymentAuthorizationViewControllerDelegate {
func paymentAuthorizationViewControllerDidFinish(_ controller: PKPaymentAuthorizationViewController) {
applePayButton.isHidden = true
paymentStatusLabel.isHidden = false
}
}
40. 출처 : https://developer.apple.com/apple-pay/planning/
4.Apple Pay 구현
PaymentSheet 만들 때 입력할 value
Apple 계정 정보 or 회원 정보
Wallet App에서 가져오는 정보
func setupApplePayButton() {
applePayButton.addTarget(self, action: #selector(presentToPaymentVC), for: .touchUpInside)
}
@objc func presentToPaymentVC() {
let item = PKPaymentSummaryItem(label: "삼겹살 500g", amount: NSDecimalNumber(integerLiteral: 10_000))
let request = PKPaymentRequest()
request.currencyCode = "KRW"
request.countryCode = "JP" // "KR"은 아직 안됩니다 🥺
request.supportedNetworks = [.amex, .visa, .masterCard]
request.merchantCapabilities = .capability3DS
request.merchantIdentifier = "merchant.com.example.applePay" // 임의의 Identifier value
request.paymentSummaryItems = [item]
guard let paymentViewController = PKPaymentAuthorizationViewController(paymentRequest: request)
else { return }
paymentViewController.delegate = self
present(paymentViewController, animated: true)
}
}
extension ViewController: PKPaymentAuthorizationViewControllerDelegate {
func paymentAuthorizationViewControllerDidFinish(_ controller: PKPaymentAuthorizationViewController) {
applePayButton.isHidden = true
paymentStatusLabel.isHidden = false
}
}
ApplePay 대행사인 Provider가 대응하고 있는 카드사로만 설정해줘야 한다.
41. 출처 : https://developer.apple.com/apple-pay/planning/
4.Apple Pay 구현
PaymentSheet 만들 때 입력할 value
Apple 계정 정보 or 회원 정보
Wallet App에서 가져오는 정보
func setupApplePayButton() {
applePayButton.addTarget(self, action: #selector(presentToPaymentVC), for: .touchUpInside)
}
@objc func presentToPaymentVC() {
let item = PKPaymentSummaryItem(label: "삼겹살 500g", amount: NSDecimalNumber(integerLiteral: 10_000))
let request = PKPaymentRequest()
request.currencyCode = "KRW"
request.countryCode = "JP" // "KR"은 아직 안됩니다 🥺
request.supportedNetworks = [.amex, .visa, .masterCard]
request.merchantCapabilities = .capability3DS
request.merchantIdentifier = "merchant.com.example.applePay" // 임의의 Identifier value
request.paymentSummaryItems = [item]
guard let paymentViewController = PKPaymentAuthorizationViewController(paymentRequest: request)
else { return }
paymentViewController.delegate = self
present(paymentViewController, animated: true)
}
}
extension ViewController: PKPaymentAuthorizationViewControllerDelegate {
func paymentAuthorizationViewControllerDidFinish(_ controller: PKPaymentAuthorizationViewController) {
applePayButton.isHidden = true
paymentStatusLabel.isHidden = false
}
}
42. 출처 : https://developer.apple.com/apple-pay/planning/
4.Apple Pay 구현
PaymentSheet 만들 때 입력할 value
Apple 계정 정보 or 회원 정보
Wallet App에서 가져오는 정보
func setupApplePayButton() {
applePayButton.addTarget(self, action: #selector(presentToPaymentVC), for: .touchUpInside)
}
@objc func presentToPaymentVC() {
let item = PKPaymentSummaryItem(label: "삼겹살 500g", amount: NSDecimalNumber(integerLiteral: 10_000))
let request = PKPaymentRequest()
request.currencyCode = "KRW"
request.countryCode = "JP" // "KR"은 아직 안됩니다 🥺
request.supportedNetworks = [.amex, .visa, .masterCard]
request.merchantCapabilities = .capability3DS
request.merchantIdentifier = "merchant.com.example.applePay" // 임의의 Identifier value
request.paymentSummaryItems = [item]
guard let paymentViewController = PKPaymentAuthorizationViewController(paymentRequest: request)
else { return }
paymentViewController.delegate = self
present(paymentViewController, animated: true)
}
}
extension ViewController: PKPaymentAuthorizationViewControllerDelegate {
func paymentAuthorizationViewControllerDidFinish(_ controller: PKPaymentAuthorizationViewController) {
applePayButton.isHidden = true
paymentStatusLabel.isHidden = false
controller.dismiss(animated: true)
}
}
57. 5.Apple Pay 개발시의 주의점
Apple Pay 버튼을
다른 결제 수단과 동일하게
선택할 수 있게하면 안되나요?
물론 단독 배치가 아니더라도 가능합니다.
참고 : Make the Most of Apple Pay
출처 : https://developer.apple.com/apple-pay/planning/
58. minne iOS 어플리케이션 화면
5.Apple Pay 개발시의 주의점
Apple Pay 에는
어떤 카드를 등록하더라도
사용이 가능한가요?
Apple Pay의 결제 대행사인 Provider가 지원하고 있는 카드사에 의존됩니다.
Example
- Provider 회사가 Master Card,AMEX만 지원하고 VISA는 지원하지 않는다면,
VISA 카드를 Wallet에 등록하더라도 해당 App에서 Apple Pay 결제는 불가능합
니다.😥
참고 : Apple Pay Provider
59. 5.Apple Pay 개발시의 주의점
상품 화면 쇼핑 카트의 주문 내용 입력 화면
Apple Pay 버튼은
꼭 상품 화면에도 추가해야하나요?
필수는 아니지만,유저의 편리성이 증대됩니다.(Apple피셜)
참고 : Buttons and Marks - Apple Pay
출처 : https://developer.apple.com/apple-pay/planning/
60. 5.Apple Pay 개발시의 주의점
Unit Test나 UI Test는 가능한가요?
제가 담당했었을 당시에는 아직 API가 구비되지 않아서 제가 담당했던 서비스에서는 사람이 Test 했습니다.😭
출처 : https://developer.apple.com/apple-pay/planning/
61. 5.Apple Pay 개발시의 주의점
Apple Pay에 등록할 수 있는
Test용 신용카드가 있나요?
https://developer.apple.com/apple-pay/sandbox-testing/
출처 : https://developer.apple.com/apple-pay/planning/