아이폰에서 PG 연동하기

스타트업이 PG 결제 연동을 위해서는
인앱결제는 애플에서 제공하는 In App Purchase 모듈과, 외부 결제 모듈 2가지로 구분할 수 있다. 비실물(콘텐츠, 아이템 등)은 In App Purchase, 실물(배송 거래, 기프티콘 등) 거래는 외부 결제 모듈을 사용하며, In App Purchase의 경우 결제수수료 30%, 외부 결제 모듈의 경우 약 3% 수준에 해당한다. 앱 개발사들은 외부 결제 모듈을 선호하지만, 구글 플레이나 앱스토어는 자신들이 제공하는 In App Purchase 모듈을 사용하길 강제한다. 그러나 실물 거래의 경우 외부 결제 모듈을 사용할 수 있다.
문제와 해결 방법
iOS 10 버전부터는 보안정책으로 LSApplicationQueriesSchemes 을 통하여 사용하고자 하는 URL scheme들을 등록하길 권장하고 있다. 하지만 이 포스팅에서는, 각 은행사들의 scheme를 변경/추가/삭제에 대응하기 어렵다고 판단하여, custom URL scheme 요청 시 WKWebView에서 네이티브 코드로 앱을 실행하는 방법을 사용합니다. 코드가 궁금하신 분들인 이곳을 참조하자.
ISP 결제방식과 같이 외부 앱 호출 후 다시 앱으로 돌아오는 이슈 또한 이 포스팅에서는 문제 되지 않는다. app scheme를 이용한 외부 앱 -> 개발사 앱 리턴 시에는, 결제정보를 생성할 때 app scheme parameter를 넘겨주어야 합니다. 이 포스팅에서는 간편 결제 연동 방법으로, 부트페이를 사용한다. 부트페이에서는 PG 사와의 업무협약을 통해 아이폰에서도 외부 앱에서 결제 진행 후, 원래 앱으로 돌아온 후 라이프 사이클 대로 처리가 가능한 코드를 제공한다.
공식 문서
부트페이에서는 버전업이 수시로 일어나기 때문에 이 포스팅에서는 자세한 구현 방법은 링크로 대체한다.
