programing2016. 2. 18. 13:06

브레인트리 (https://www.braintreepayments.com/)

페이팔이 인수한 회사로 페이팔SDK보다 안드로이드 개발자가 쓰기편리하다. 커스트마이징도할수있고....( 이것저것 해야될게많아서 공부를 많이했다)

브레인트리사이트 접속하면 Try the sandbox라는 버튼이보인다.

가입하면 sandbox 테스트를 할수있다.

여기서 말하는 sandbox란 테스트서버를 말하며, 페이팔과 브레인트리는 LIVE환경과 SANDBOX환경을 제공한다.

가입하고 로그인하면 Dashboard가 나온다. 

Dashboard가 잘되있다 눈에보이는 버튼의 거의 모든것이 서버 구현시 라이브러리로 제공하고있다.


#브레인트리 결제 흐름도

. 샘플앱을 기준으로 앱을 실행하면 1회용 Token을 받아온다 (내서버에 getToken API를 구현하여야한다)

  그것을 가지고 DropIn을 실행하면 결제를 시도한다

. 결제를 시도하면 main view로 돌아오면서 Nonce라는 키가 생성이되서 샘플앱 메인에 보이는것을 확인할수 있다.

. 아직 결제가 완료된것은 아니며 Nonce 키로 Create a Transaction을 호출해야 결제가 완료된다.\

  (내서버에 Transaction API를 구현하여야한다)


클라이언트 구현 API 

@GET("/client_token")
void getClientToken(....)

- @POST("/nonce/transaction")
void createTransaction(....)

retrofit 라이브러리를 이용하지 않고 다른 라이브러리를 사용하고있어 braintree sample sdk에 있는 retrofit 를 쓰기위해 API를 커스트마이징 하여 사용하였다.


# 결제상태

. Authorized : Transaction 성공시 최초상태이다.
              (결제 취소시 수수료없이 환불가능하다)

Authorizion expired : 브레인트리 문서상으로 확인시 아멕스 카드는 7일후 expired, 비자, 마스터카드는 10일, 그외카드는 30일후 자동으로 expired 가 된다.

. voided : Authorized 상태에서 결제취소하면 이상태가된다.

. Submitted for settlement : 카드사에 결제 승인을 요청한상태이다.

. Settled : 카드사 결제 승인이 완료된상태이다.
            (결제 취소시 수수료가 발생한다.)

 . 등 여러상태가더있지만 이것 까지만 알아도 충분할듯하다..


※ 환불

. 환불은 두종류가있다. void, refund

. void는 수수료를 물지않으며 결제정보가 카드사로 넘어가지 않은상태에서 호출하는 api이다. (Authorized 상태에서 호출하는 API이다)

. refund는 수수료를 물어야한다. 카드사로 결제정보가 넘어갔다( Settled에서는 refund API를 호출해야한다.)

이두가지 API는 모두 서버에서 구현해야한다. 지금은 이런것만 있다고 알아두고...

서버 구현사항은 다음에 시간날때 포스팅 해야겠군.. 점심시간이 끝났다...


Posted by 부르마