메인 메뉴로 바로가기
본문으로 바로가기
로그인
회원가입
[공지]
[SDK] iOS v1.5.12 업데이트 안내
PAYCO 로그인 개발자센터
소개
개발가이드
애플리케이션 관리
고객지원
본문영역
개발 가이드
시작하기
PAYCO 로그인
서비스 설계
Server(Web)
Android
iOS
부가 기능(고급)
PAYCO 바로가입
new
서비스 설계
동의 약관 확인
이미지 리소스
SDK 다운로드
PAYCO 로그인
연동 가이드
Server(Web)
Android
iOS
※ PAYCO로 로그인을 적용하려시면 먼저
애플리케이션을 등록
해야 합니다. --- # 1. Authorization code 발급 ## 1.1 설명 - PAYCO 사용자의 인증을 요청합니다. - 사용자의 인증에 성공하면 콜백 URL로 인증 코드(authorization code)를 반환받습니다. - 페이지를 호출하는 URL이므로 사용자의 브라우저 등에서 요청되어야 합니다. - 이 요청으로 PAYCO 로그인 혹은 회원가입 페이지가 호출됩니다.
페이지가 정상적으로 호출되지 않는 경우, 요청 URL과 등록한 애플리케이션 정보가 일치하는지 확인해 주세요. - 처음 로그인하는 사용자의 경우 이용약관 및 개인정보 제공 동의 페이지가 노출됩니다. (PAYCO 로그인 개발자센터에서 설정한 개인정보 수집 항목이 노출됩니다.) ## 1.2 요청 URL - URL : `https://id.payco.com/oauth2.0/authorize` ## 1.3 프로토콜 - HTTPS ## 1.4 HTTP 메서드 - GET - POST ## 1.5 파라미터 | 파라미터 | 타입 |필수 여부 |설명 | |----------------|---------|---------|-----------------| |response_type |String |Y |인증 과정에 대한 구분값 (code 로 고정) | |client_id |String |Y |발급받은 CLIENT ID | |redirect_uri |String |Y |Authorization Code를 발급받은 후 요청될 Callback URL (URL 인코딩 필요) | |scope |String |N |접근 권한 적용 범위, 현재는 DB에 설정된 값으로 동작 | |state |String |N |CSRF를 방지하기 위해 사용하는 Client 측 인증값 (URL 인코딩 필요)
* CSRF : [링크](https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8_%EA%B0%84_%EC%9A%94%EC%B2%AD_%EC%9C%84%EC%A1%B0) 참고 | |serviceProviderCode |String |Y |서비스 구분 코드 (FRIENDS로 고정) | |viewType |String |N |mobile_app : 설정 시 모바일 화면용 로그인 페이지가 노출됩니다. | |userLocale |String |Y |서비스 Locale code (ko_KR로 고정) | ## 1.6 요청 예 ```json https://id.payco.com/oauth2.0/authorize?response_type=code&client_id=3RDFqGCaAaaAaA61dhVbp&serviceProviderCode=FRIENDS&redirect_uri=http%3A%2F%2Fwww.ticketlink.co.kr%2Fcallback&state=ab42ae&userLocale=ko_KR ``` ## 1.7 응답 - 성공 | 파라미터 | 타입 |설명 | |----------|---------|-------------------| |code |String |인증 성공 시에 반환하는 인증 코드, access_token으로 교환하기 위한 값 | |state |String |CSRF를 방지하기 위해 사용하는 Client 측 인증값 | |serviceExtra |String |바로가입 서비스의 약관 동의 결과 (URL 인코딩된 JSON) | ## 1.8 응답 예 ```json http://www.ticketlink.co.kr/callback?code=sQVddf0e808eKt01&state=ab42ae&serviceExtra=%7B%22TERMS_PROMOTION_YN%22%3A%22Y%22%2C%22TERMS_MANDATORY%22%3A%22Y%22%7D ``` --- # 2. Access Token 발급 ## 2.1 설명 - PAYCO API를 사용하기 위한 접근 토큰의 발급을 요청합니다. - PAYCO API는 사용자의 기본 정보를 조회하거나 API를 호출할 때 사용됩니다. - 서버에서 요청해야 하는 API입니다. - API 호출에 필요한 client_secret 파라미터는 노출되면 안되는 중요 정보이므로,
server-to-server 호출을 권장
합니다. ## 2.2 요청 URL - URL : `https://id.payco.com/oauth2.0/token` ## 2.3 프로토콜 - HTTPS ## 2.4 HTTP 메서드 - GET - POST ## 2.5 파라미터 - authorization_code | 파라미터 | 타입 |필수 여부 |설명 | |----------------|---------|---------|-----------------| |grant_type |String |Y | 인증 과정에 대한 구분값 (authorization_code) | |client_id |String |Y |발급받은 CLIENT ID | |client_secret |String |Y |발급받은 CLIENT Secret | |code |String |Y |인증 코드 | |state |String |N |CSRF를 방지하기 위해 사용하는 Client 측 인증값 (URL 인코딩 필요)
* CSRF : [링크](https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8_%EA%B0%84_%EC%9A%94%EC%B2%AD_%EC%9C%84%EC%A1%B0) 참고 | - refresh_token | 파라미터 | 타입 |필수 여부 |설명 | |----------------|---------|---------|-----------------| |grant_type |String |Y | 인증 과정에 대한 구분값 (refresh_token) | |client_id |String |Y |발급받은 CLIENT ID | |client_secret |String |Y |발급받은 CLIENT Secret | |refresh_token |String |Y |access_token을 재발급받기 위한 토큰 | |state |String |N |CSRF를 방지하기 위해 사용하는 Client 측 인증값 (URL 인코딩 필요)
* CSRF : [링크](https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8_%EA%B0%84_%EC%9A%94%EC%B2%AD_%EC%9C%84%EC%A1%B0) 참고 | ## 2.6 요청 예 - authorization_code ```json https://id.payco.com/oauth2.0/token?grant_type=authorization_code&client_id=3RDFqGCaAaaAaA61dhVbp&client_secret=YzaaeAAEp&state=ab42ae&code=sQVddf0e808eKt01 ``` - refresh_token ```json https://id.payco.com/oauth2.0/token?grant_type=refresh_token&client_id=3RDFqGCaAaaAaA61dhVbp&client_secret=YzaaeAAEp&state=ab42ae&refresh_token=AAAAbMeHAoUaIcx91lScAO%2BtcmxEXMfV0tZT0F3KQzq6WfRtCb%2FN9Y7bU2FyHb7CtvN2TMbTMPA+Mi8UQ8nAJJHe3ZInkUZCHWTURpFS%2Bh9KEbJ2PnxNz3FphGUS%2FSmCuqqprrvUXA7g8cFPwvcwV%2FwQ0sSU%3D ``` ## 2.7 응답 - JSON 타입의 응답이 리턴됩니다. | 파라미터 | 타입 |설명 | |----------|---------|-------------------| |access_token |String |접근 토큰 | |access_token_secret |String |접근 토큰 키 | |refresh_token |String |access_token이 만료되었을 때 재발급을 받기 위한 token | |token_type |String |토큰의 접근 타입 (Bearer만 지원) | |expires_in |String |access_token 만료 시간 | |state |String |CSRF를 방지하기 위해 사용하는 Client 측 인증값 (URL 인코딩 필요) | ## 2.8 응답 예 ``` { "access_token_secret":"IOssJffssdop4aN", "state":"ab42ae", "token_type":"Bearer", "expires_in":"7200", "refresh_token":"AAAAby7JpeAgRfaswOSFf0X4PoHjDykdaaaaaA3Kzt4z5G93BZtIrq2wVLWj30UiDfujyvAckYbuQ4J GpTnabcydaMIIS2lYV8e1W1DYtW/EizpK85alLbbbbbbbbbD8TPkG7VyrAKH3ZE1I+8xCu6WIV5u0=", "access_token":"AAAA40idYfcSIj21hm+p5/oSp4/ElE 6vaaaaaaaaaCjHEUInFCtp5yQA2y+ 5ckpD5Y B74VzJqnk+8ldvsC+0z+0qpX4+KareQ8A4vezrkrsDYtunn5BQzpMalMfleO3y_gj50fPCE4jS72C7BwMaozywP1s+9f5C+69xkWFVVbhs+dHVeP4I+fDgRZZsrmB/74qu3W0dAC2PG3X+i1i+b7rl3bbbbbbbbbMNMv9yyAtMg73uBAPgIkERV75/fFAJOXfOlXl+BQIDQ+HueZF3+UPwabeSJfUWYlaK8qI0d/WmA80cM+YI1lqAdgRcJw7D5An8oQSw==" } ``` --- # 3. Access Token 삭제 ## 3.1 설명 - 발급받은 Access Token을 더 이상 사용하지 않거나 사용자의 요구에 의해 만료시킬 경우(logout), Token 삭제 API를 통해 Token을 삭제(만료) 할 수 있습니다. - 서버에서 요청해야 하는 API입니다. ## 3.2 요청 URL - URL : `https://id.payco.com/oauth2.0/logout` ## 3.3 프로토콜 - HTTPS ## 3.4 HTTP 메서드 - GET - POST ## 3.5 파라미터 | 파라미터 | 타입 |필수 여부 |설명 | |---------------|---------|---------|-----------------| |token |String |Y |access_token (URL 인코딩 필요)| |client_id |String |Y |발급받은 CLIENT ID | |client_secret |String |Y |발급받은 CLIENT Secret | ## 3.6 요청 예 ```json https://id.payco.com/oauth2.0/logout?client_id=3RDFqGCaAaaAaA61dhVbp&client_secret=YaaaeAAEp&token=AAAA40idYfcSIj21hm%2Bp5%2FoSp4%2FElE6vztD4tww0jvJaR6TsCjHEUInFCtp5yQA2y%2B5ckpD5YB74VzJqnk8ldvsCbbbbbbbbbYtunn5BQzpMalMfleO3ygj50fPCE4jS72C7BccccccccxkWFVVbhsdHVeP4IfDgRZZsrmB%2F74qu3W0dAC2PG3Xi1ib7rl3KCykoHF3z0wMNMv9yyAtMg73uBAPgIkERV75%2FfFAJOXfOlXlBQIDQ%2BHueZF3UPwabeSJfUWYlaK8qI0d%2FWmA80cM%2BYI1lqAdgRcJw7D5An8oQSw%3D%3D ``` ## 3.7 응답 - JSON 타입의 응답이 리턴됩니다. | 파라미터 | 타입 |설명 | |----------|---------|-------------------| |rtn_data |String |loginStatus:0이면 성공 | |rtn_msg |String |API 호출 결과 메세지 | |rtn_cd |Integer |API 호출 결과 코드 | ## 3.8 응답 예 ``` { "rtn_data":{"loginStatus":0 }, "rtn_msg":"success", "rtn_cd":0 } ``` --- # 4. 회원 정보 조회 ## 4.1 설명 - 토큰에 해당하는 회원 정보를 제공합니다. - 파라미터는 JSON 타입으로 전달해야합니다. - HTTP Header에는 client_id와 access_token 정보를 포함해야합니다. - 유저가 제공동의한 정보만 반환합니다. ## 4.2 요청 URL - URL : `https://apis-payco.krp.toastoven.net/payco/friends/find_member_v2.json` ## 4.3 프로토콜 - HTTPS ## 4.4 HTTP 메서드 - POST ## 4.5 파라미터 - Request Headers Parameters | 파라미터 | 타입 |필수 여부 |설명 | |----------|---------|---------|-----------------| |client_id |String |Y |발급받은 CLIENT ID | |access_token|String |Y |access token | ## 4.6 요청 예 - URL : `https://apis-payco.krp.toastoven.net/payco/friends/find_member_v2.json` - Request Headers Parameters : ``` client_id : 3RDtTePsdfd8dgggPcD access_token : AAAA1EPalGCz5FbclikH2G/Z3PHKn3aaaaaaaaaywr51hVXJE+c2JIyJY/6EbxvjY96zYkuJ1mLgN7jSrW81CHL6X+Pjk vdFWiUrbgGmbI2Bg0kAM0b7hWlngA5RSTRnrTaVfasdNh3Rd6cSfqqzV3cA0zTC2mltDgneZYQYV o1pR5hWuruW GFdYi16db//5bhW0k/Lqm 0HYOHqpKcl Bbbbbbbbbq69EHQ6d8FcW4u3hm6Y 0Y1xOWY 0U+mcKmS/jl+Y 78Hfkvt VqIyyWbdBHZIUkzlS5IXoV2Sx6Klt/io9m2Ol ``` ## 4.7 응답 - JSON 타입의 응답이 리턴됩니다. | 키 | 타입 | 설명 | | --- | --- | --- | | header | object | 공통 반환 값 | | data | object | 데이터 정보 | - Header | 키 | 타입 | 설명 | | --- | --- | --- | | isSuccessful | boolean | 성공 여부 (true : 성공, false : 실패) | | resultCode | int | 결과 코드 | | resultMessage | string | 결과 메세지 (SUCCESS : 성공, 그 외 메세지) | - Data | 키 | 타입 | 설명 | | --- | --- | --- | | member | object | 회원 개인 정보 | - Member | 키 | 타입 | 필수 여부 | 설명 | 참고 | | --- | --- | --- | --- | --- | | idNo | string | Y | 회원 번호 | | | email | string | N | 이메일 주소 | | | mobile | string | N | 휴대폰 번호 | | | maskedEmail | string | N | 마스킹된 이메일 주소 | | | maskedMobile | string | N | 마스킹된 휴대폰 번호 | | | name | string | N | 이름 | | | genderCode | string | N | 성별(FEMALE: 여성, MALE: 남성) | | | ageGroup | string | N | 연령대(0: 0-10세 미만, 10, 20, 30, ...) | | | birthdayMMdd | string | N | 생일(MMDD) | | | birthday | string | N | 생년월일(YYYYMMDD) | 바로가입 서비스만 이용가능 | | ci | string | N | 연계정보 (CI) | 바로가입 서비스만 이용가능 | | isForeigner | string | N | 내국인/외국인 여부 (true/false) | 바로가입 서비스만 이용가능 | | contactNumber | string | N | 연락처(휴대폰 번호) | 바로가입 서비스만 이용가능 | | address | object | N | 주소
- zipCode : 우편번호
- address : 주소
- addressDetail : 상세주소 | 바로가입 서비스만 이용가능 | ## 4.8 응답 예 -
개인정보 수집 설정한 항목만 결과 member JSON Object에 포함합니다.
- 서비스에서 개인정보 수집 항목을 이메일 주소, 이름, 성별, 연령대, 생일로 설정하고
사용자가 이메일 주소, 이름, 성별, 연령대, 생일 제공 동의한 경우 ```json { "header": { "isSuccessful": true, "resultCode": 0, "resultMessage": "SUCCESS" }, "data": { "member": { "idNo": "00000000-0000-0000-0000-00000000000", "email": "abcde@payco.com", "maskedEmail": "ab***@payco.com", "name": "페이코", "genderCode": "MALE", "birthdayMMdd": "0101", "ageGroup": "30" } } } ``` -
개인정보 수집 설정한 항목 중 사용자가 제공 동의한 항목만 결과 member JSON Object에 포함합니다.
-
제공 동의는 하였으나 정보가 없는 경우는 값이 null로 반환됩니다.
- 서비스에서 개인정보 수집 항목을 이메일 주소, 휴대폰 번호, 이름, 성별, 연령대, 생일로 설정하고
사용자가 이메일 주소, 휴대폰 번호, 이름, 성별, 생일 제공 동의 (연령대는 미동의) 하였으나 사용자의 성별, 생일 정보가 없는 경우 ```json { "header": { "isSuccessful": true, "resultCode": 0, "resultMessage": "SUCCESS" }, "data": { "member": { "idNo": "00000000-0000-0000-0000-00000000000", "email": "abcde@payco.com", "mobile": "821000000000", "maskedEmail": "ab***@payco.com", "maskedMobile": "010-00**-00**", "name": "페이코", "genderCode": null, "birthdayMMdd": null } } } ```
맨위로 이동