Unity 원스토어 외부결제 사용하기 (15% 수수료)

부트페이 결제연동
5 min readApr 16, 2020

--

애플, 구글 스토어 인앱결제의 수수료는 30%로, 부담스러운 것이 사실이다. 국내 원스토어의 경우 인앱결제 20%, 외부결제 5%인데, 부트페이를 이용하면 외부결제 15%(PG 10% + 원스토어 5%)로 이용이 가능하다.

이전 포스팅을 참고하여, 부트페이 가맹 작업을 끝냈다고 가정하고 여기서는 Unity로 결제하는 방법에 대해서만 다루겠다.

1. bootpay.unitypackage 설치

현재 유니티 에셋스토어에는 배포가 이루어지지 않았습니다. UnityBootpay.package를 이곳에서 직접 다운로드 받도록합니다.

다운 받은 후 해당 프로젝트에 풀어줍니다

다운 받은 파일을 프로젝트에 드래그하여 인스톨 하면,

부트페이 라이브러리와 샘플Script(Assets/Scenes/ButtonScript.cs)가 보입니다.

BootpayViewObject (Assets/Plugins/BootpayViewObject.cs)는 수정하실 필요 없으시며, 결제연동은 샘플 Script(Assets/Scenes/ButtonScript.cs)를 참조하시면 되겠습니다.

2. BootpayViewObject 초기화

3. 결제정보 채우기

애플, 구글의 In App Purchase와는 다르게 결제할 상품을 미리 등록할 필요가 없다. 부트페이 사용시, 최종 결제할 상품명, 금액을 넘기면 바로 결제가 된다. 위 정보로 실행하면 아래와 같은 형태의 결제창이 뜬다.

활성화한 결제수단만 나타납니다

그러나 인앱결제 특성상 지불수단을 미리 등록해놓고, 다음에 또 결제시 비밀번호만 입력하면 간편하게 결제할 수 있는 결제시나리오를 적용하면, 구매율이 높아진다. 부트페이에서는 이를 간편결제창이라고 지칭하는데, 이를 사용하기 위해서는 서버사이드에서 REST API를 통해서 회원(사용자)의 고유 토큰을 발급받아야 한다. 발급받은 고유 토큰을 bootpayPayload.userToken 에 넣어주면 아래와 같은 형태의 결제창을 사용할 수 있다.

회원별로 지불수단을 등록하기 때문에 userToken을 발급받는 과정이 까다로울 수 있다 (보안 이슈)

간편결제창을 사용하기 위해 회원의 고유 토큰을 발급받기 위해서는 REST API를 사용해야 한다. 이때 서버사이드에서 사용해야 보안의 문제가 없다(서버가 있어야 한다). 서버 없이 발급받는 것은 보안상 추천하지 않는다. 문제가 될 경우 등록한 A유저의 지불수단에 대하여 B유저가 결제할 수 있다.(A 유저의 비밀번호를 알아맞추게 된다면) 이에 대해 부트페이는 책임지지 않기때문에 서버사이드에서 userToken을 발급받길 원한다. 이에 대한 매뉴얼은 이곳을 참조하면 된다.

위 매뉴얼을 참조한다면 userToken을 발급받아 결제에 적용하는 순서는 다음과 같습니다.

1. 운영하시는 서버에서 회원의 고유한 토큰을 발행 받음 (운영하시는 서버 → 부트페이 서버로 조회)

a. 이때 서버에서 accessToekn을 먼저 발급받고

b. 회원의 고유한 토큰을 발행받아야 함

2. Unity에서 운영하시는 서버로부터 발급받은 회원의 고유한 토큰을 받음 (Unity → 운영하시는 서버)

이에 대해 Unity에서 부트페이 서버로 직접 발급받는 경우, 보안에 문제가 될 수 있으니 절대 추천하지 않습니다.

샘플코드의 getRestToken, getUserToken 함수를 이해를 됩기 위한 예시일 뿐 절대 그대로 사용하여서는 안됩니다.

4. 결제하기

public void StartBootpay() {    
/// ... 생략 ...
obj.Request(payload.toJson(), toJson(user), "[" + string.Join(",", items.ToArray()) + "]", toJson(extra));
}

전체 코드매뉴얼을 참조해주시고, 기타 어려운 부분들이 있다면 부트페이 홈페이지 방문 후 우측하단 채팅을 통해 기술지원을 요청할 수 있습니다.

원스토어 관련 다른 글 보기)

(1/3) 인앱결제 15% 수수료 소개

(2/3) 원스토어 외부결제 이용하기

(3/3) Unity 원스토어 외부결제 사용하기

--

--